Skip to main content
POST
Withdraw funds

Authorizations

x-app-id
string
header
required

Your application ID. Required for all app-tier and user-tier routes.

Authorization
string
header
required

JWT access token returned by POST /auth/verify. Required for user-tier routes.

Body

application/json
amountRaw
string
required

Positive integer string in the token's native decimals.

Pattern: ^[1-9][0-9]*$
tokenSymbol
enum<string>
required

Stable-coin symbol the withdrawal is denominated in.

Available options:
USDC,
USDC.e,
USDT
destinationAddress
string
required

Recipient address. EVM destinations: 0x-prefixed 20-byte hex. Solana: base58 (32–44 chars).

Pattern: ^(0x[a-fA-F0-9]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$
destinationChainId
integer
required

Chain ID where the recipient address should receive funds.

Required range: x >= 1
max
boolean

Cap to the deliverable maximum (withdraw-max intent).

Response

200

withdrawalId
string
required
status
enum<string>
required

DB-backed withdrawal status. Mirrors the WithdrawalStatus Prisma enum.

Available options:
pending,
bridging,
transferring,
completed,
partial,
failed
requested
object
required
completedAmountRaw
string | null
required
destination
object
required
legs
object[]
required
expected
object
required
pricingStatus
enum<string>
required

Withdrawal pricing state. 'quoted' rows have a fresh preflight quote; 'unviable' means at least one source leg is too small for required fees.

Available options:
unquoted,
quoting,
quoted,
unviable
errorMessage
string | null
required
sources
object[]
required