Mint USDC via Circle Mint API (wire USD in, receive USDC balance); on mint_confirmed webhook, initiate transfer to Fireblocks vault address via Circle POST /v1/businessAccount/transfers with destination.address set to the Fireblocks vault deposit address
On USDC arrival in Fireblocks (detected via TRANSACTION_CONFIRMED webhook), screen the source address via TRM Labs POST /public/v2/screening/addresses; block or flag if riskLevel is HIGH or SEVERE
For approved USDC, store in the Fireblocks vault under a designated treasury vault account; configure TAP policy to require dual approval for transfers above a defined USD threshold
For outbound disbursements, pre-screen the destination address via TRM Labs before initiating the Fireblocks transfer; log TRM riskScore and riskLevel in the disbursement record
For redemptions, transfer USDC from Fireblocks to your Circle Mint address via POST /v1/transactions in Fireblocks, then trigger Circle redemption via POST /v1/businessAccount/payouts once the transfer arrives
Reconcile the full flow daily: match Circle balance snapshots (GET /v1/businessAccount/balances), Fireblocks vault balances (GET /v1/vault/accounts), and your internal ledger; alert on discrepancies above a tolerance threshold
Known gotchas
Gas fees for ERC-20 USDC transfers require a funded ETH balance in the Fireblocks vault; the USDC vault wallet and the ETH gas wallet are separate — depleted ETH causes USDC transfers to fail with INSUFFICIENT_FEE status
Circle and Fireblocks each have their own idempotency/deduplication mechanisms; a transfer visible in Fireblocks as COMPLETED may not yet appear in Circle's balance due to on-chain confirmation lag — build reconciliation tolerances around the slower of the two systems
Regulatory requirements in some jurisdictions mandate that Travel Rule data be exchanged before USDC is moved on-chain; ensure the Notabene ACK_ACCEPTED confirmation gates the Fireblocks transfer initiation for cross-VASP disbursements
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