Skip to main content
POST
Initiate a withdrawal

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string<uuid>
required

Wallet ID

Body

application/json
requestId
string<uuid>
required

Client-generated idempotency key (UUID v4).

token
enum<string>
required

Stablecoin lane used to validate, fund, rebalance, and withdraw an allocation independently from other token lanes.

Available options:
usdc,
usdt
destinationChain
enum<string>
required

Destination chain for the withdrawal. Production chains are arbitrum, base, ethereum, polygon, and solana; sandbox accepts ethereum_sepolia and solana_devnet.

Available options:
arbitrum,
base,
ethereum,
ethereum_sepolia,
polygon,
solana,
solana_devnet
amountUsd
number<double>
required

Gross wallet value to withdraw before execution fees. The destination receives this amount minus reported fees.

destinationAddress
string
required

On-chain destination address. Use an EVM hex address for EVM chains or a base58 address for solana.

sources
object[]

Optional exact gross source split when automatic rebalancing is disabled. Amounts must sum to amountUsd.

Minimum array length: 1
partnerFeeAmountUsd
number<double>

Optional partner-calculated fee deducted from the gross EVM USDC or USDT withdrawal. Supports up to 6 decimal places, must be smaller than amountUsd, and must be supplied with partnerFeeRecipientAddress.

Required range: x > 0
partnerFeeRecipientAddress
string

EVM address that receives the partner fee. Must be supplied with partnerFeeAmountUsd and differ from destinationAddress.

Response

Withdrawal initiated (or existing withdrawal returned for idempotent retry)

id
string<uuid>
amountRequestedUsd
string | null

Requested withdrawal amount in USD as a formatted string.

amountPaidUsd
string | null

Completed payout amount in USD as a formatted string. Null until at least one payout completes.

amountPaidToPartnerUsd
string | null

Confirmed amount paid to the partner in USD as a formatted string. Null until at least one partner payout completes.

feeUsd
string | null

Execution and protocol fees charged for the withdrawal, as a formatted string.

destinationChain
enum<string>

Destination chain for the withdrawal.

Available options:
arbitrum,
base,
ethereum,
ethereum_sepolia,
polygon,
solana,
solana_devnet
destinationAddress
string
destinationToken
enum<string> | null
Available options:
usdc,
usdt
status
enum<string>

Simplified withdrawal status. partially_completed means at least one payout leg delivered value and at least one leg failed or was cancelled.

Available options:
processing,
completed,
partially_completed,
failed,
cancelled
legsCompleted
integer
legsTotal
integer
payoutLegs
object[]

Source-to-destination payout workflow legs.

failureReason
string | null

Human-readable reason for failure (only present when status is failed or partially_completed). insufficient_proceeds_after_partner_fee means realized proceeds could not cover the committed partner fee while leaving a positive customer payout, so no payout or partner fee was sent.

createdAt
string<date-time>
completedAt
string<date-time> | null