Whitelist the destination address in the Prime console under Address Book before calling the API — Prime blocks withdrawals to non-whitelisted addresses by default
POST https://api.prime.coinbase.com/v1/portfolios/{portfolio_id}/wallets/{wallet_id}/withdrawals with body: {"amount": "<amount>", "currency_symbol": "BTC", "destination_type": "EXTERNAL", "blockchain_address": {"address": "<destination>", "destination_tag": "<memo_if_required>"}}
Capture activity_id from the response; poll GET /v1/portfolios/{portfolio_id}/activities/{activity_id} until status transitions from PENDING to COMPLETED or FAILED
On FAILED status inspect the error_code field; common values: INSUFFICIENT_FUNDS, COMPLIANCE_HOLD, ADDRESS_NOT_WHITELISTED
For COMPLIANCE_HOLD, the transaction requires manual review in the Prime console; the API does not expose a programmatic approval path for compliance holds
Reconcile using the transaction_id field to look up the on-chain txHash once COMPLETED
Known gotchas
Withdrawals are processed asynchronously; polling intervals shorter than 5 seconds can exhaust rate limits (Prime REST limits are separate from Exchange limits)
destination_tag is mandatory for XRP, XLM, and other memo-chain assets — omitting it sends funds to the exchange hot wallet with no recovery path
Prime enforces daily withdrawal limits configurable per portfolio; exceeding the limit returns 400 WITHDRAWAL_LIMIT_EXCEEDED and requires console adjustment by an admin
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp