Funding

Quote withdrawable amount

POST
/execution/withdrawable/quote

Authorization

appIdbearerAuth
headerx-app-id<token>

Your application ID. Required on app-tier and user-tier routes. Omitted on routes that authenticate with x-app-api-key only.

headerAuthorizationBearer <JWT>

JWT access token from POST /auth/verify. Required with x-app-id on user routes. On the smart-route quote it is optional and turns a preview into an executable quote.

Request Body

application/json
  1. body
tokenSymbol*string

Stable-coin symbol the withdrawal is denominated in.

Value in"USDC""USDC.e""USDT"
destinationChainId*integer

Chain ID where the recipient would receive funds.

Range1 <= value
signingAddress?string

Self-custody: quote the Max of this linked EVM wallet (the amount it can debit). Omit for managed custody.

Length42 <= length <= 42
approveMode?string

Self-custody only (ignored without signingAddress): what the signing wallet can sign. Send the same value to the quote, preview and withdraw. sponsored (default): the wallet can sign an EIP-7702 authorization and Calibur batch, so every source is available. user_broadcast: it cannot (e.g. MetaMask). The withdrawal still never asks it to send a transaction or hold gas; sources that would need a batch (an approve, a same-chain swap, or a same-chain transfer of anything but native Circle USDC; decided by token) are left out of Max, preview and selection. A same-chain native USDC transfer is then two EIP-3009 signatures (amount less the network fee, and the fee).

Value in"sponsored""user_broadcast"

Response Body

200

application/json
  1. response
tokenSymbol*string

Stable-coin symbol the withdrawal is denominated in.

Value in"USDC""USDC.e""USDT"
destinationChainId*integer

Echo of the request.

Range1 <= value
maxDeliverableRaw*string

Most the user can receive on the destination, after estimated fees and excluding balances too small to move. Integer string in the destination token's atomic units (6 decimals, so 1000000 = 1 USDC; 18 decimals on BNB Chain).

Match^[0-9]+$
rawBalanceRaw*string

Total eligible balance before those deductions. Integer string in the destination token's atomic units (6 decimals, so 1000000 = 1 USDC; 18 decimals on BNB Chain).

Match^[0-9]+$
decimals*integer

Decimals of the destination token; scales the *Raw fields.

Range0 <= value <= 36
Example Request
curl -X POST 'https://api.t.sufwankhalid.com/execution/withdrawable/quote' \  -H 'Content-Type: application/json' \  -d '{  "tokenSymbol": "USDC",  "destinationChainId": 8453}'
Example Response
{  "tokenSymbol": "USDC",  "destinationChainId": 8453,  "maxDeliverableRaw": "124880000",  "rawBalanceRaw": "125000000",  "decimals": 6}