Quote.Trade MCP Adapter
REMOTE · QUOTE.TRADE · SCANNED AUG 19
Quote.Trade MCP: login, deposit address, market data, orders, and withdraws.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (quote_trade_place_order). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability74
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2411 tokens (~150/item across 16 items; 16 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management47
- Stability observed for 14 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · quote.trade
claude mcp add --transport http trade-quote-mcp https://quote.trade/mcp
[mcp_servers.trade-quote-mcp] url = "https://quote.trade/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"trade-quote-mcp": {
"type": "remote",
"url": "https://quote.trade/mcp",
"enabled": true
}
}
} openclaw mcp add trade-quote-mcp --url https://quote.trade/mcp --transport streamable-http
mcp_servers:
trade-quote-mcp:
url: "https://quote.trade/mcp" {
"mcpServers": {
"trade-quote-mcp": {
"type": "http",
"url": "https://quote.trade/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 19 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.
- 14 Aug 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “quote_trade_exchange_info” rewrote its description, which is the text the model reads security
- Tool “quote_trade_get_challenge” rewrote its description, which is the text the model reads security
- Tool “quote_trade_instruments” rewrote its description, which is the text the model reads security
- Tool “quote_trade_logon” rewrote its description, which is the text the model reads security
- Tool “quote_trade_place_order” rewrote its description, which is the text the model reads security
- Tool “quote_trade_withdraw” rewrote its description, which is the text the model reads security
- Tool “quote_trade_withdraw_preview” rewrote its description, which is the text the model reads security
- Schema quality: 134 → 150 ▼ functional
- Server version: 1.5.6 → 1.5.8 functional
- “quote_trade_exchange_info” added an optional parameter “limit” cosmetic
- “quote_trade_exchange_info” added an optional parameter “skip” cosmetic
- “quote_trade_exchange_info” added an optional parameter “symbols” cosmetic
- “quote_trade_instruments” added an optional parameter “skip” cosmetic
- “quote_trade_instruments” reworded the description of “limit” cosmetic
- “quote_trade_withdraw” reworded the description of “symbol” cosmetic
- “quote_trade_withdraw_preview” reworded the description of “symbol” cosmetic
- 13 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Aug 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 10 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
- 8 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 19 Aug 2026 · Probed https://quote.trade/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=quote.trade | CN=WE1,O=Google Trust Services,C=US | 15 Jul 2026 | 13 Oct 2026 | ECDSA 256 | ECDSA-SHA256 | c79fd99838c181800e4097c850c48ade |
| SANs: quote.trade, *.quote.trade | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC insecure
Validation of quote.trade. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| trade. | present | 64969 | 8 | Verified |
| quote.trade. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| x-content-type-options | nosniff |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://quote.trade/mcp | Verified | 400 | |
| http (plaintext) | http://quote.trade/mcp | HTTPS enforced | 301 | https://quote.trade/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
quote_trade_account Quote.Trade account summary ~43
Withdraw step 1 / anytime account check. GET /api/account with per-request X-MBX-APIKEY. Inspect available balances before withdraw. No live trading action.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | yes | Parsed JSON response body when valid JSON; otherwise the raw text. |
| endpoint | string | yes | Quote.Trade API endpoint path. |
| method | string | yes | HTTP method used against Quote.Trade. |
| raw | string | yes | Raw JSON response body. |
| status | integer | yes | HTTP status code. |
No examples provided.
quote_trade_api_manifest Quote.Trade API/MCP manifest ~36
Explains that MCP is only a tool/schema adapter around the existing Quote.Trade APIs, and returns local servlet guardrail configuration.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| adapter | string | yes | MCP adapter name. |
| allowLeverage | boolean | – | Server-side leverage allowance. |
| allowedSymbols | array | yes | Symbol allowlist. Empty=deny-all; *=all instruments; else explicit symbols. |
| allowedSymbolsMode | string | yes | deny-all | all-quote-trade-instruments (*) | allowlist. |
| apiBase | string | – | Quote.Trade REST API base. |
| approvalFrictionOnly | boolean | yes | True when humanApproved/approvalText are friction only. |
| approvalTextRequired | string | – | Exact approval friction text for live orders. |
| canonicalBehavior | string | – | Adapter behavior summary. |
| credentialScoping | string | – | Wallet login optional. Trade-only key: no withdraw. Full-access key (trade+withdraw): withdraw allowed. |
| credentialStatus | object | yes | – |
| depositAssets | array | – | Supported deposit asset symbols (USDC, USDT, XUSDC). |
| depositsExposedThroughMcp | boolean | yes | True when deposit-address tools are registered in tools/list. |
| liquidityApiBase | string | – | Quote.Trade liquidity API base used for withdraw. |
| liveTradingExecutable | boolean | yes | True when server-side enableTrading allows live orders. |
| liveWithdrawExecutable | boolean | yes | True when server-side enableTrading allows live withdraws. |
| maxNotionalMode | string | yes | capped when maxNotionalUsd>0; disabled-fail-closed otherwise. |
| maxNotionalUsd | number | yes | Server-side max USD notional. Must be > 0 for live order/withdraw. |
| mcpEndpointPath | string | – | Local MCP path. |
| mcpHostSeesApiSecret | boolean | – | True when private tools accept X-MBX-APISECRET at this MCP host. |
| mcpProtocolVersion | string | – | MCP protocol version. |
| mcpPublicUrl | string | – | Public MCP URL. |
| ordersExposedThroughMcp | boolean | yes | True when order tools are registered in tools/list. |
| requireMcpAuth | boolean | – | Whether MCP bearer auth is required. |
| servletOnly | boolean | – | True when this adapter is servlet-hosted only. |
| tools | array | yes | Registered tool names. |
| tradingEnabled | boolean | yes | Server-side live trading/withdraw enablement. |
| version | string | yes | Adapter version. |
| walletLoginOptional | boolean | – | True: agents can trade with a web-app API key without wallet logon. |
| withdrawApprovalTextRequired | string | – | Exact approval friction text for live withdraws. |
| withdrawAssets | array | – | Supported withdraw asset symbols (stablecoins only: USDC, USDT, XUSDC). |
| withdrawAssetsOnly | string | – | stablecoins-only |
| withdrawalsExposedThroughMcp | boolean | yes | True when withdraw tools are registered in tools/list. |
| wsBase | string | – | Quote.Trade WebSocket base. |
No examples provided.
quote_trade_depth Quote.Trade order depth ~81
Trade step 3. GET /api/depth?symbol=SYMBOL&limit=N. Use depth quantity to choose a suitable limit price before placing an order.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Optional depth limit, for example 100 or 1000. |
| symbol | string | yes | Instrument symbol from quote_trade_instruments, such as BTC or ETH. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | yes | Parsed JSON response body when valid JSON; otherwise the raw text. |
| endpoint | string | yes | Quote.Trade API endpoint path. |
| method | string | yes | HTTP method used against Quote.Trade. |
| raw | string | yes | Raw JSON response body. |
| status | integer | yes | HTTP status code. |
No examples provided.
quote_trade_exchange_info Quote.Trade exchange info ~137
Call GET /api/exchangeInfo and return a paginated slice of trading symbols plus rate limits/server time. Upstream has no pagination, so this adapter filters/slices locally. Default limit=50, max=200. Prefer quote_trade_instruments for compact tradable-pair discovery.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max symbols to return. Default 50, max 200. |
| skip | integer | – | Number of matching symbols to skip before returning. Default 0. |
| symbols | string | – | Optional comma-separated symbol filter, e.g. BTC,ETH,SOL. When set, pagination applies to the filtered list. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | yes | Parsed JSON response body when valid JSON; otherwise the raw text. |
| endpoint | string | yes | Quote.Trade API endpoint path. |
| method | string | yes | HTTP method used against Quote.Trade. |
| raw | string | yes | Raw JSON response body. |
| status | integer | yes | HTTP status code. |
No examples provided.
quote_trade_get_challenge Quote.Trade get wallet auth challenge ~119
Optional wallet login/register step 1 (not required for trading with an existing API key). POST /api/getChallenge with a wallet address (login). Returns challenge text and isNewUser. Step 2: sign the challenge with the wallet outside MCP. Step 3: quote_trade_logon. No API key required.
| Name | Type | Req | Description |
|---|---|---|---|
| login | string | yes | Wallet address used as login, e.g. 0x15b65a49faf9a4047e912d7de4a77fe24c7cf483. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | yes | Parsed JSON response body when valid JSON; otherwise the raw text. |
| endpoint | string | yes | Quote.Trade API endpoint path. |
| method | string | yes | HTTP method used against Quote.Trade. |
| raw | string | yes | Raw JSON response body. |
| status | integer | yes | HTTP status code. |
No examples provided.
quote_trade_get_deposit_address Quote.Trade get deposit address ~104
Deposit step 1. GET /api/getDepositAddress?symbol=ASSET and return chain + contract/address. Supported assets: USDC and USDT (mainnet), XUSDC (USDC on XDC). Step 2 is transferring funds to that address outside MCP (no backend call).
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | yes | Deposit asset symbol: USDC or USDT (mainnet), or XUSDC (USDC on XDC network). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | yes | Parsed JSON response body when valid JSON; otherwise the raw text. |
| endpoint | string | yes | Quote.Trade API endpoint path. |
| method | string | yes | HTTP method used against Quote.Trade. |
| raw | string | yes | Raw JSON response body. |
| status | integer | yes | HTTP status code. |
No examples provided.
quote_trade_instruments Quote.Trade instruments ~94
Trade step 1. GET /api/getInstrumentPairs — paginated tradable symbols/instruments. Default limit=50, max=200. Use skip to page. Pick a symbol from this response for ticker/depth/order calls.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max instruments to return. Default 50, max 200. |
| skip | integer | – | Number of instruments to skip before returning. Default 0. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | yes | Parsed JSON response body when valid JSON; otherwise the raw text. |
| endpoint | string | yes | Quote.Trade API endpoint path. |
| method | string | yes | HTTP method used against Quote.Trade. |
| raw | string | yes | Raw JSON response body. |
| status | integer | yes | HTTP status code. |
No examples provided.
quote_trade_liquidity_sample Quote.Trade liquidity WebSocket sample ~91
Open wss://app.quote.trade/ws/liquidity, subscribe to a symbol, collect a bounded number of messages, then close.
| Name | Type | Req | Description |
|---|---|---|---|
| messageLimit | integer | – | Max messages to collect. Default 3. Max 20. |
| symbol | string | yes | Symbol such as BTC or ETH. |
| timeoutMs | integer | – | WebSocket collection timeout in milliseconds. Default 8000. |
| Name | Type | Req | Description |
|---|---|---|---|
| endpoint | string | yes | WebSocket endpoint path. |
| messageCount | integer | yes | Number of collected messages. |
| messages | array | yes | Parsed WebSocket messages. |
| raw | array | yes | Raw WebSocket message strings. |
| subscription | object | yes | Subscription payload with secrets redacted. |
No examples provided.
quote_trade_logon Quote.Trade wallet logon / register ~175
Optional wallet login/register step 3 (not required if the agent already has an API key). Pass challenge + wallet signature from steps 1–2. isNewUser=true -> POST /api/registerUser; else POST /api/logon. On success, map body.requestToken/requestSecret to X-MBX-APIKEY / X-MBX-APISECRET; use body.id as account. Wallet signing stays outside MCP.
| Name | Type | Req | Description |
|---|---|---|---|
| challenge | string | yes | Challenge text returned by quote_trade_get_challenge (Sign auth token: ...). |
| isNewUser | boolean | – | From quote_trade_get_challenge. true -> registerUser; false -> logon. If omitted, logon is tried first then registerUser on failure. |
| signature | string | yes | Wallet signature of the challenge text (0x-prefixed hex). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | yes | Parsed JSON response body when valid JSON; otherwise the raw text. |
| endpoint | string | yes | Quote.Trade API endpoint path. |
| method | string | yes | HTTP method used against Quote.Trade. |
| raw | string | yes | Raw JSON response body. |
| status | integer | yes | HTTP status code. |
No examples provided.
quote_trade_order_preview Quote.Trade order preview ~185
Optional before live trade. Normalize/validate a BUY/SELL order locally without sending it.
| Name | Type | Req | Description |
|---|---|---|---|
| account | integer | – | Quote.Trade account/user id. Optional for preview (defaults to account init-param, QUOTE_TRADE_ACCOUNT, or 0). Required for live place_order. |
| disableLeverage | integer | – | 1 disables leverage; 0 enables leverage/shorting only if server allowLeverage is true. |
| paymentCurrency | string | – | Payment currency such as USDT. |
| price | number | yes | Limit price chosen after quote_trade_depth. |
| quantity | number | yes | Order quantity. |
| side | string | yes | BUY or SELL. |
| symbol | string | yes | Instrument symbol from quote_trade_instruments, such as BTC. |
| timestamp | integer | – | Optional client timestamp in milliseconds. |
| type | string | – | LIMIT only in this adapter. |
| Name | Type | Req | Description |
|---|---|---|---|
| approvalFrictionOnly | boolean | yes | True when approval fields are friction only. |
| approvalTextRequired | string | – | Exact approval friction text. |
| credentialsPresent | boolean | yes | Whether per-request trading credentials are present. |
| endpoint | string | yes | Target Quote.Trade order endpoint. |
| estimatedNotional | number | yes | Estimated notional in USD (orders: price×qty; withdraws: USD price×human quantity). |
| estimatedNotionalUsd | number | – | Withdraw USD notional. Present on withdraw previews when priced. |
| estimatedQuantity | number | – | Withdraw human quantity only (quantity / 10^quantity_scale). Present on withdraw previews. |
| priceSource | string | – | How priceUsd was obtained (stablecoin-peg|ticker|ticker-unavailable). |
| priceUsd | number | – | USD unit price used for withdraw notional. |
| requestBody | object | yes | Normalized order request body that would be posted. |
| safety | string | yes | Preview safety notes. |
| symbolAllowed | boolean | yes | Whether the symbol passes the allowlist (empty=deny-all; *=all). |
| tradingEnabled | boolean | yes | Server-side trading enablement. |
| willSend | boolean | yes | Whether this preview would send a live order. |
| withinMaxNotional | boolean | yes | Whether USD notional is within maxNotionalUsd (>0 required; else false). |
No examples provided.
quote_trade_place_order Quote.Trade place live order ~299
Trade step 4. POST /api/order with a suitable price after instruments/ticker/depth. Requires tradingEnabled, allowedSymbols (* or explicit list; empty denies), maxNotionalUsd>0, and API credentials. Sending X-MBX-APISECRET to this MCP host grants it full signing authority. humanApproved/approvalText are agent friction only.
| Name | Type | Req | Description |
|---|---|---|---|
| account | integer | yes | Quote.Trade account/user id. Optional for preview (defaults to account init-param, QUOTE_TRADE_ACCOUNT, or 0). Required for live place_order. |
| approvalText | string | yes | Agent-supplied confirmation friction (not a security control). Must exactly equal: APPROVE QUOTE.TRADE LIVE ORDER |
| disableLeverage | integer | – | 1 disables leverage; 0 enables leverage/shorting only if server allowLeverage is true. |
| humanApproved | boolean | yes | Agent-supplied confirmation friction (not a security control). Must be true; enableTrading remains authoritative. |
| paymentCurrency | string | – | Payment currency such as USDT. |
| price | number | yes | Limit price chosen after quote_trade_depth. |
| quantity | number | yes | Order quantity. |
| side | string | yes | BUY or SELL. |
| symbol | string | yes | Instrument symbol from quote_trade_instruments, such as BTC. |
| timestamp | integer | – | Optional client timestamp in milliseconds. |
| type | string | – | LIMIT only in this adapter. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | yes | Parsed JSON response body when valid JSON; otherwise the raw text. |
| endpoint | string | yes | Quote.Trade API endpoint path. |
| method | string | yes | HTTP method used against Quote.Trade. |
| raw | string | yes | Raw JSON response body. |
| status | integer | yes | HTTP status code. |
No examples provided.
quote_trade_private_events_sample Quote.Trade private WebSocket sample ~114
Open wss://app.quote.trade/ws/listenKey using the caller's per-request X-MBX-APIKEY, collect bounded account/order/risk messages, then close. No live trading action is performed.
| Name | Type | Req | Description |
|---|---|---|---|
| account | string | – | Optional account id. Defaults to account init-param or QUOTE_TRADE_ACCOUNT. |
| messageLimit | integer | – | Max messages to collect. Default 3. Max 20. |
| timeoutMs | integer | – | WebSocket collection timeout in milliseconds. Default 8000. |
| Name | Type | Req | Description |
|---|---|---|---|
| endpoint | string | yes | WebSocket endpoint path. |
| messageCount | integer | yes | Number of collected messages. |
| messages | array | yes | Parsed WebSocket messages. |
| raw | array | yes | Raw WebSocket message strings. |
| subscription | object | yes | Subscription payload with secrets redacted. |
No examples provided.
quote_trade_status Quote.Trade status ~29
Call GET /api/status and return system status, server time, contracts URL, and feature flags.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | yes | Parsed JSON response body when valid JSON; otherwise the raw text. |
| endpoint | string | yes | Quote.Trade API endpoint path. |
| method | string | yes | HTTP method used against Quote.Trade. |
| raw | string | yes | Raw JSON response body. |
| status | integer | yes | HTTP status code. |
No examples provided.
quote_trade_ticker Quote.Trade ticker ~66
Trade step 2. GET /api/ticker?symbol=SYMBOL for a symbol from quote_trade_instruments. Returns last price, bid, ask, lastUpdateId.
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | yes | Instrument symbol from quote_trade_instruments, such as BTC or ETH. |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | yes | Parsed JSON response body when valid JSON; otherwise the raw text. |
| endpoint | string | yes | Quote.Trade API endpoint path. |
| method | string | yes | HTTP method used against Quote.Trade. |
| raw | string | yes | Raw JSON response body. |
| status | integer | yes | HTTP status code. |
No examples provided.
quote_trade_withdraw Quote.Trade live withdraw ~287
Withdraw step 3. POST /api/sendWithdrawWithVTokenRequest for stablecoins only (USDC|USDT|XUSDC) to the user's own login wallet (no toAddress). Not available for BTC/ETH/other assets. Requires a full-access API key with withdraw entitlement (trade-only keys are rejected by Quote.Trade), tradingEnabled, allowedSymbols, and maxNotionalUsd>0. humanApproved/approvalText are agent friction only.
| Name | Type | Req | Description |
|---|---|---|---|
| account | integer | yes | Quote.Trade account/user id. Optional for preview (defaults to account init-param, QUOTE_TRADE_ACCOUNT, or 0). Required for live withdraw. |
| approvalText | string | yes | Agent-supplied confirmation friction (not a security control). Must exactly equal: APPROVE QUOTE.TRADE LIVE WITHDRAW |
| humanApproved | boolean | yes | Agent-supplied confirmation friction (not a security control). Must be true; enableTrading remains authoritative. |
| quantity | string | yes | Scaled integer quantity as string (API format). Example: "20000000" with quantity_scale=6 means 20 USDC. |
| quantity_scale | integer | yes | Decimal scale for quantity. Example: 6 for USDC. |
| symbol | string | yes | Stablecoin to withdraw: USDC, USDT, or XUSDC only (not BTC/ETH/other). |
| Name | Type | Req | Description |
|---|---|---|---|
| body | – | yes | Parsed JSON response body when valid JSON; otherwise the raw text. |
| endpoint | string | yes | Quote.Trade API endpoint path. |
| method | string | yes | HTTP method used against Quote.Trade. |
| raw | string | yes | Raw JSON response body. |
| status | integer | yes | HTTP status code. |
No examples provided.
quote_trade_withdraw_preview Quote.Trade withdraw preview ~195
Optional before live withdraw. Stablecoins only: USDC, USDT, or XUSDC (not BTC/ETH/other). Own login wallet only (no toAddress). estimatedNotional is USD at $1 peg. Trade-only API keys cannot withdraw — use a full-access key with withdraw entitlement.
| Name | Type | Req | Description |
|---|---|---|---|
| account | integer | – | Quote.Trade account/user id. Optional for preview (defaults to account init-param, QUOTE_TRADE_ACCOUNT, or 0). Required for live withdraw. |
| quantity | string | yes | Scaled integer quantity as string (API format). Example: "20000000" with quantity_scale=6 means 20 USDC. |
| quantity_scale | integer | yes | Decimal scale for quantity. Example: 6 for USDC. |
| symbol | string | yes | Stablecoin to withdraw: USDC, USDT, or XUSDC only (not BTC/ETH/other). |
| Name | Type | Req | Description |
|---|---|---|---|
| approvalFrictionOnly | boolean | yes | True when approval fields are friction only. |
| approvalTextRequired | string | – | Exact approval friction text. |
| credentialsPresent | boolean | yes | Whether per-request trading credentials are present. |
| endpoint | string | yes | Target Quote.Trade order endpoint. |
| estimatedNotional | number | yes | Estimated notional in USD (orders: price×qty; withdraws: USD price×human quantity). |
| estimatedNotionalUsd | number | – | Withdraw USD notional. Present on withdraw previews when priced. |
| estimatedQuantity | number | – | Withdraw human quantity only (quantity / 10^quantity_scale). Present on withdraw previews. |
| priceSource | string | – | How priceUsd was obtained (stablecoin-peg|ticker|ticker-unavailable). |
| priceUsd | number | – | USD unit price used for withdraw notional. |
| requestBody | object | yes | Normalized order request body that would be posted. |
| safety | string | yes | Preview safety notes. |
| symbolAllowed | boolean | yes | Whether the symbol passes the allowlist (empty=deny-all; *=all). |
| tradingEnabled | boolean | yes | Server-side trading enablement. |
| willSend | boolean | yes | Whether this preview would send a live order. |
| withinMaxNotional | boolean | yes | Whether USD notional is within maxNotionalUsd (>0 required; else false). |
No examples provided.