POST /v2/trade/withdraw
Initiates an ERC20 transfer from your Bravado deposit wallet to a destination address on Polygon. Omit thetoken field to withdraw pUSD. Pass any ERC20 contract address in token to withdraw that asset instead, useful for recovering airdrops or other tokens that have accumulated in the wallet.
Required headers
Request body
string
required
Destination Polygon wallet address. Must be a valid checksummed or lowercase Ethereum-format address (
0x followed by exactly 40 hex characters). Bravado does not validate that the destination is a smart contract; verify the address carefully before submitting.string
required
Decimal amount to withdraw as a string (e.g.
"10.5", "250.00"). The value is interpreted in human-readable units, do not pass base units. For pUSD this is a dollar amount; for other tokens the unit matches the token’s standard denomination.string
ERC20 contract address of the token to withdraw. Omit this field to withdraw pUSD (the default). To withdraw any other token, pass its Polygon contract address, you can find the address in the
token field returned by GET /v2/trade/balances/withdrawable.Response
string
Polygon transaction hash of the on-chain transfer. Present as soon as the transaction is broadcast.
string
Transaction confirmation state.
STATE_CONFIRMED means the transaction was included in a block within the latency budget. STATE_PENDING means it was broadcast but not yet confirmed, reconcile via GET /v2/trade/activity.string
Echo of the destination address.
string
Echo of the amount submitted.
string
Contract address of the token withdrawn. Returns the pUSD contract address even when the
token field was omitted in the request.If the on-chain transaction does not confirm within the Bravado latency budget, the response returns
state: "STATE_PENDING" along with the broadcast transaction_hash. The transfer is still in flight, poll GET /v2/trade/activity?type=WITHDRAW and match on transaction_hash to confirm the final outcome. Do not resubmit with the same Idempotency-Key.