Withdraw an asset to an address on any supported chain
Both live withdrawals and dry: true previews require X-Grant-Token and Idempotency-Key; a live withdrawal also needs an account policy allowing withdrawal to the destination. An archived, deleted or frozen account, or one whose applied policy does not parse (policy_not_ready), gets no preview, and an asset GET /v1/tokens does not list (unsupported_token) or a recipient that is not a valid address (invalid_address) is refused before any provider call, as a live withdrawal is, consuming no preview attempt. The account’s rules never refuse a preview: it answers with spend (USD value and budget left), fee (on chain near, the provider’s estimate when stated in the withdrawn asset, otherwise amount minus quote.amount_out; null for a bridged route, whose quote.amount_out is in a destination asset the preview does not name) and warnings, which list each rule the live withdrawal would fail under its code (policy_action_denied, policy_destination_denied, policy_asset_denied, schedule, USD budget, per-asset limits, actions per hour, policy_usage_unavailable when unreconciled history keeps the limits from being judged, or insufficient_balance with available_amount) beside high_fee (above 5%, only where fee is valued) and asset_delivered_as_is (a non-USDC asset to hypercore). Identical previews reuse a result for 60 seconds; an expired preview needs a new key. At most 20 provider preview attempts are admitted per agent per rolling 24 hours. A preview the provider refuses (for example route_unavailable), an outage and an uncertain attempt stay counted; only an answer the provider gives before running anything (its rate limiter’s 429, wallet_busy, provider_limit_reached) gives its attempt back. NEAR (nep141:wrap.near, or near) withdrawn to chain near always arrives as native NEAR, public or confidential.
Authorizations
Token of the owner grant a delegated request runs under. The partner creates it and the owner signs its commitment; keep it on your backend.
Headers
Stable key for one logical request. Replays with the same key and body return the original result; a different body is refused with idempotency_conflict.
8 - 128^[A-Za-z0-9._:-]+$Path Parameters
^[0-9a-f]{64}$Body
1 - 256^(?!0+$)[0-9]{1,78}$1 - 641 - 128256Response
Success
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
- Option 9
- Option 10
- Option 11
- Option 12
- Option 13
- Option 14
- Option 15
- Option 16
- Option 17
- Option 18
- Option 19
^op_[A-Za-z0-9_-]{43}$^[0-9a-f]{64}$PENDING_SIGNATURE, QUEUED, PENDING_APPROVAL, PENDING_DEPOSIT, PROCESSING, SUCCESS, REFUNDED, FAILED, UNCERTAIN, NEEDS_REVIEW "agent_create"