Administration
Unpause Market
Calldata that resumes new listings, purchases and liquidations
POST
/
seller-financing
/
api
/
markets
/
{marketId}
/
unpause
curl -X POST "https://api.trusset.org/seller-financing/api/markets/cmsg4x7k20003sf9q1d8v6b2e/unpause" \
-H "X-API-Key: trusset_your_key_here" \
-H "Content-Type: application/json" \
-d '{"from": "0xCD421aBbA2b9b047eC069215Df5C49c97C96f895"}'
const res = await fetch(
`https://api.trusset.org/seller-financing/api/markets/${marketId}/unpause`,
{
method: 'POST',
headers: { 'X-API-Key': 'trusset_your_key_here', 'Content-Type': 'application/json' },
body: JSON.stringify({ from: await operator.getAddress() })
}
);
const { data } = await res.json();
const step = data.steps[0];
await (await operator.sendTransaction({ to: step.to, data: step.data, value: 0, gasLimit: step.gasLimit })).wait();
{
"success": true,
"data": {
"action": "SIGN_TRANSACTIONS",
"chainId": 11155111,
"steps": [
{
"to": "0xc35e5f74eC4C1dfB8cE2b8798D6161B706F9B5E1",
"data": "0x3f4ba83a",
"value": "0",
"functionName": "unpause",
"label": "Resume new listings, purchases and liquidations",
"description": "Resume new listings, purchases and liquidations",
"gasLimit": "47712",
"chainId": 11155111
}
],
"confirmStepIndex": 0,
"preflight": {
"simulated": true,
"gasEstimate": "36702"
},
"signer": {
"role": "OPERATOR_ROLE",
"holders": ["0xCD421aBbA2b9b047eC069215Df5C49c97C96f895"],
"holdersComplete": true
}
},
"error": null,
"metadata": {
"timestamp": "2026-10-19T09:12:04.318Z",
"requestId": "3f7c2a91-6d84-4b0e-9a15-c2e8f4d7b603",
"instanceId": "inst_abc123"
}
}
{
"success": false,
"data": null,
"error": {
"code": "TX_WOULD_REVERT",
"message": "The market is not paused.",
"details": {
"action": "unpause",
"error": "ExpectedPause",
"args": [],
"revertData": "0x8dfc202b"
}
},
"metadata": {
"timestamp": "2026-10-19T09:12:04.318Z",
"requestId": "3f7c2a91-6d84-4b0e-9a15-c2e8f4d7b603",
"instanceId": "inst_abc123"
}
}
Seller Financing is in beta and runs on Ethereum Sepolia instances only for now (
DEVELOPMENT instances on Ethereum). A PRODUCTION instance, or one on another network, answers 503 SELLER_FINANCING_UNAVAILABLE. See Seller Financing.unpause on the market for a holder of the operator role to sign. Once mined, the market takes new listings and purchases again, and sellers can liquidate loans in default again. A loan that fell into default during the pause can be liquidated at once.
Path Parameters
string
required
The market’s record ID, as
id on List Markets.Body Parameters
string
required
The wallet that signs: a holder of
OPERATOR_ROLE on the market, the operator named at deployment unless the admin moved the role. Without it the answer is 400 FROM_REQUIRED. Any other wallet answers 409 TX_WOULD_REVERT with AccessControlUnauthorizedAccount, and details.requiredRole and details.roleHolders name the role and the wallets that hold it now.Response Fields
object
Show child attributes
Show child attributes
string
SIGN_TRANSACTIONS.integer
The chain the step is built for.
array
One step,
unpause on the market, with gasLimit.integer
0.object
{ simulated: true, gasEstimate }.object
{ role, holders, holdersComplete }. role is OPERATOR_ROLE. holders lists the wallets that hold it now, null when they could not be read. holdersComplete is false when the market’s role history was read in part, so a holder may be missing.curl -X POST "https://api.trusset.org/seller-financing/api/markets/cmsg4x7k20003sf9q1d8v6b2e/unpause" \
-H "X-API-Key: trusset_your_key_here" \
-H "Content-Type: application/json" \
-d '{"from": "0xCD421aBbA2b9b047eC069215Df5C49c97C96f895"}'
const res = await fetch(
`https://api.trusset.org/seller-financing/api/markets/${marketId}/unpause`,
{
method: 'POST',
headers: { 'X-API-Key': 'trusset_your_key_here', 'Content-Type': 'application/json' },
body: JSON.stringify({ from: await operator.getAddress() })
}
);
const { data } = await res.json();
const step = data.steps[0];
await (await operator.sendTransaction({ to: step.to, data: step.data, value: 0, gasLimit: step.gasLimit })).wait();
{
"success": true,
"data": {
"action": "SIGN_TRANSACTIONS",
"chainId": 11155111,
"steps": [
{
"to": "0xc35e5f74eC4C1dfB8cE2b8798D6161B706F9B5E1",
"data": "0x3f4ba83a",
"value": "0",
"functionName": "unpause",
"label": "Resume new listings, purchases and liquidations",
"description": "Resume new listings, purchases and liquidations",
"gasLimit": "47712",
"chainId": 11155111
}
],
"confirmStepIndex": 0,
"preflight": {
"simulated": true,
"gasEstimate": "36702"
},
"signer": {
"role": "OPERATOR_ROLE",
"holders": ["0xCD421aBbA2b9b047eC069215Df5C49c97C96f895"],
"holdersComplete": true
}
},
"error": null,
"metadata": {
"timestamp": "2026-10-19T09:12:04.318Z",
"requestId": "3f7c2a91-6d84-4b0e-9a15-c2e8f4d7b603",
"instanceId": "inst_abc123"
}
}
{
"success": false,
"data": null,
"error": {
"code": "TX_WOULD_REVERT",
"message": "The market is not paused.",
"details": {
"action": "unpause",
"error": "ExpectedPause",
"args": [],
"revertData": "0x8dfc202b"
}
},
"metadata": {
"timestamp": "2026-10-19T09:12:04.318Z",
"requestId": "3f7c2a91-6d84-4b0e-9a15-c2e8f4d7b603",
"instanceId": "inst_abc123"
}
}
Error Codes
| Code | HTTP | Cause |
|---|---|---|
VALIDATION_ERROR | 400 | from is malformed, or the body carries another field. error.details names it |
FROM_REQUIRED | 400 | from is missing. The message names who signs: a wallet that holds OPERATOR_ROLE on the market |
MARKET_NOT_FOUND | 404 | No market with this ID that your instance reaches on its network |
TX_WOULD_REVERT | 409 | ExpectedPause when the market is not paused, or AccessControlUnauthorizedAccount when from lacks the operator role, with details.requiredRole and details.roleHolders |
CHAIN_UNAVAILABLE | 503 | The chain could not be read. Nothing was built. Retry shortly |
SELLER_FINANCING_UNAVAILABLE | 503 | The instance is a PRODUCTION instance or not on Ethereum |
UNPAUSE_BUILD_FAILED | 500 | Unexpected failure. Nothing was built. Retry, or contact support with the request ID |
⌘I
curl -X POST "https://api.trusset.org/seller-financing/api/markets/cmsg4x7k20003sf9q1d8v6b2e/unpause" \
-H "X-API-Key: trusset_your_key_here" \
-H "Content-Type: application/json" \
-d '{"from": "0xCD421aBbA2b9b047eC069215Df5C49c97C96f895"}'
const res = await fetch(
`https://api.trusset.org/seller-financing/api/markets/${marketId}/unpause`,
{
method: 'POST',
headers: { 'X-API-Key': 'trusset_your_key_here', 'Content-Type': 'application/json' },
body: JSON.stringify({ from: await operator.getAddress() })
}
);
const { data } = await res.json();
const step = data.steps[0];
await (await operator.sendTransaction({ to: step.to, data: step.data, value: 0, gasLimit: step.gasLimit })).wait();
{
"success": true,
"data": {
"action": "SIGN_TRANSACTIONS",
"chainId": 11155111,
"steps": [
{
"to": "0xc35e5f74eC4C1dfB8cE2b8798D6161B706F9B5E1",
"data": "0x3f4ba83a",
"value": "0",
"functionName": "unpause",
"label": "Resume new listings, purchases and liquidations",
"description": "Resume new listings, purchases and liquidations",
"gasLimit": "47712",
"chainId": 11155111
}
],
"confirmStepIndex": 0,
"preflight": {
"simulated": true,
"gasEstimate": "36702"
},
"signer": {
"role": "OPERATOR_ROLE",
"holders": ["0xCD421aBbA2b9b047eC069215Df5C49c97C96f895"],
"holdersComplete": true
}
},
"error": null,
"metadata": {
"timestamp": "2026-10-19T09:12:04.318Z",
"requestId": "3f7c2a91-6d84-4b0e-9a15-c2e8f4d7b603",
"instanceId": "inst_abc123"
}
}
{
"success": false,
"data": null,
"error": {
"code": "TX_WOULD_REVERT",
"message": "The market is not paused.",
"details": {
"action": "unpause",
"error": "ExpectedPause",
"args": [],
"revertData": "0x8dfc202b"
}
},
"metadata": {
"timestamp": "2026-10-19T09:12:04.318Z",
"requestId": "3f7c2a91-6d84-4b0e-9a15-c2e8f4d7b603",
"instanceId": "inst_abc123"
}
}
