Add the destination to the external wallet whitelist: POST /v1/external_wallets with {"name": "<label>"}, then POST /v1/external_wallets/{walletId}/assets/{assetId} with {"address": "<onchain_address>"}
Wait for address verification; GET /v1/external_wallets/{walletId}/assets/{assetId} until status is APPROVED
Poll GET /v1/transactions/{txId} until txStatus is COMPLETED or FAILED; check subStatus and errorDescription on failure
Reconcile using the txHash field in the response to verify settlement on-chain via a block explorer or your own node
Known gotchas
One-time addresses (not whitelisted) require setting treatAsGrossAmount and may trigger extra TAP approval steps or be blocked outright depending on policy
Fee estimation uses POST /v1/transactions/estimate_fee; failing to estimate before submission can result in underfunded gas and a STUCK transaction status on EVM chains
The Fireblocks legacy API base (api.fireblocks.io) is distinct from the newer developer reference base; some SDK versions default to the wrong host — verify with the SDK changelog
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