Withdraw funds
Withdraws funds to an external address and returns submitted transfer details.
Withdraws funds to an external address and returns submitted transfer details.
Authorizations
API key passed in the header.
Body
amountRawstringrequiredPositive integer string in the token's native decimals.
^[1-9][0-9]*$tokenSymbol"USDC" | "USDC.e" | "USDT"requiredStable-coin symbol the withdrawal is denominated in.
"USDC" | "USDC.e" | "USDT"destinationAddressstringrequiredRecipient address. EVM destinations: 0x-prefixed 20-byte hex. Solana: base58 (32–44 chars).
^(0x[a-fA-F0-9]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$destinationChainIdintegerrequiredChain ID where the recipient address should receive funds.
x >= 1maxbooleanCap to the deliverable maximum (withdraw-max intent).
Response
200
withdrawalIdstringrequiredstatus"pending" | "bridging" | "transferring" | "completed" | "partial" | "failed"requiredDB-backed withdrawal status. Mirrors the WithdrawalStatus Prisma enum.
"pending" | "bridging" | "transferring" | "completed" | "partial" | "failed"requestedobjectrequiredrequested.tokenSymbol"USDC" | "USDC.e" | "USDT"requiredStable-coin symbol the withdrawal is denominated in.
"USDC" | "USDC.e" | "USDT"requested.amountRawstringrequired^[1-9][0-9]*$completedAmountRawstringrequireddestinationobjectrequireddestination.chainIdintegerrequiredx >= 1destination.addressstringrequired^(0x[a-fA-F0-9]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$destination.tokenSymbol"USDC" | "USDC.e" | "USDT"requiredStable-coin symbol the withdrawal is denominated in.
"USDC" | "USDC.e" | "USDT"legsarray<object>requiredlegs.type"transfer" | "bridge"requiredtransfer: same-chain managed-wallet → recipient. bridge: cross-chain via Relay.
"transfer" | "bridge"legs.status"planned" | "submitted" | "confirmed" | "failed"requiredPR-A only emits 'planned'; lifecycle pipeline advances downstream.
"planned" | "submitted" | "confirmed" | "failed"legs.sourceChainIdintegerrequiredlegs.destChainIdintegerrequiredlegs.amountRawstringrequired^[1-9][0-9]*$legs.txHashstringrequiredlegs.bridgeOperationIdstringrequiredlegs.sourceTokenSymbolstringlegs.errorMessagestringexpectedobjectrequiredexpected.outputRawstringrequiredexpected.feeRawstringrequiredexpected.etaSecondsintegerrequiredpricingStatus"unquoted" | "quoting" | "quoted" | "unviable"requiredWithdrawal pricing state. 'quoted' rows have a fresh preflight quote; 'unviable' means at least one source leg is too small for required fees.
"unquoted" | "quoting" | "quoted" | "unviable"errorMessagestringrequiredsourcesarray<object>requiredsources.sourceIdstringrequiredsources.chainIdintegerrequiredsources.tokenSymbol"USDC" | "USDC.e" | "USDT" | "pUSD" | "USD1"requiredStable-coin symbol held by a selected withdrawal source.
"USDC" | "USDC.e" | "USDT" | "pUSD" | "USD1"sources.tokenAddressstringrequiredSource token address: EVM ERC-20 address or Solana SPL mint.
^(0x[a-fA-F0-9]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$sources.decimalsintegerrequiredx >= 0, x <= 36sources.amountRawstringrequired^[1-9][0-9]*$sources.status"pending" | "submitted" | "confirmed" | "failed"requiredPer-source progression. PR-A only emits 'pending'; PR-B/PR-C drive transitions.
"pending" | "submitted" | "confirmed" | "failed"sources.txHashstringrequiredsources.bridgeOperationIdstringrequired