Administration
Pause Market
Calldata that stops new listings, purchases and liquidations
POST
/
seller-financing
/
api
/
markets
/
{marketId}
/
pause
curl -X POST "https://api.trusset.org/seller-financing/api/markets/cmsg4x7k20003sf9q1d8v6b2e/pause" \
-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}/pause`,
{
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": "0x8456cb59",
"value": "0",
"functionName": "pause",
"label": "Pause new listings, purchases and liquidations",
"description": "Pause new listings, purchases and liquidations",
"gasLimit": "178218",
"chainId": 11155111
}
],
"confirmStepIndex": 0,
"preflight": {
"simulated": true,
"gasEstimate": "137091"
},
"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 paused for new business.",
"details": {
"action": "pause",
"error": "EnforcedPause",
"args": [],
"revertData": "0xd93c0665"
}
},
"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.pause on the market for a holder of the operator role to sign. A paused market refuses new listings, purchases and liquidations with EnforcedPause. Everything that settles existing business stays open: cancellations, repayments, asset claims and withdrawals. See Pausing.
Resume with Unpause Market.
A pause also stops liquidation. Interest keeps accruing on a loan in default while the market is paused, but the seller cannot withdraw from the sale until the market is unpaused.
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,
pause 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/pause" \
-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}/pause`,
{
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": "0x8456cb59",
"value": "0",
"functionName": "pause",
"label": "Pause new listings, purchases and liquidations",
"description": "Pause new listings, purchases and liquidations",
"gasLimit": "178218",
"chainId": 11155111
}
],
"confirmStepIndex": 0,
"preflight": {
"simulated": true,
"gasEstimate": "137091"
},
"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 paused for new business.",
"details": {
"action": "pause",
"error": "EnforcedPause",
"args": [],
"revertData": "0xd93c0665"
}
},
"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 | EnforcedPause when the market is already 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 |
PAUSE_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/pause" \
-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}/pause`,
{
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": "0x8456cb59",
"value": "0",
"functionName": "pause",
"label": "Pause new listings, purchases and liquidations",
"description": "Pause new listings, purchases and liquidations",
"gasLimit": "178218",
"chainId": 11155111
}
],
"confirmStepIndex": 0,
"preflight": {
"simulated": true,
"gasEstimate": "137091"
},
"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 paused for new business.",
"details": {
"action": "pause",
"error": "EnforcedPause",
"args": [],
"revertData": "0xd93c0665"
}
},
"metadata": {
"timestamp": "2026-10-19T09:12:04.318Z",
"requestId": "3f7c2a91-6d84-4b0e-9a15-c2e8f4d7b603",
"instanceId": "inst_abc123"
}
}
