Skip to main content

Overview

New to USDC Gateway? See the USDC Gateway Overview for a product introduction to the Circle Gateway integration and a console overview, before following this API guide. USDC Gateway connects your Fireblocks vault accounts to Circle Gateway, a cross-chain liquidity layer for USDC. Each vault account can have one Gateway wallet that holds a unified USDC balance across supported chains. You deposit USDC from a vault asset wallet into Gateway, then withdraw to any supported chain without managing per-chain inventory yourself. Deposits can also be put on a recurring schedule instead of submitted manually — see Automate deposits. This guide covers the full API flow: activate a Gateway wallet, deposit USDC, check balance, withdraw USDC, and archive the wallet. Deposits and withdrawals use the standard Create a new transaction endpoint with subType: VIRTUAL_ACCOUNT on the source or destination.
Beta feature: USDC Gateway is currently in beta and available through the Fireblocks API and Console. Behavior, endpoints, and limits may change. To request access, contact your Customer Success Manager, or enable it yourself from Labs in the Fireblocks Console (Settings → Labs).

Requirements

See Prerequisites in the USDC Gateway Setup Guide for full workspace requirements, including policy rules, vault account setup, USDC asset wallets, and native gas balance.

API flow

The integration follows this order: Activate → Deposit → Check balance → Withdraw.

Step 1: Activate the Gateway wallet

Activation creates the Gateway wallet bound to the vault account. No funds move. See Activate a USDC Gateway wallet. Request body
Response
Re-run the activate endpoint on an archived wallet to reactivate it.

Step 2: Deposit USDC into Gateway

Submit a deposit using the Create a new transaction endpoint. Set subType: VIRTUAL_ACCOUNT on the destination to route funds into the Gateway wallet instead of a standard asset wallet. POST /v1/transactions Request body
Field notes:
  • assetId: the USDC asset ID for the source chain. For the current list of Gateway-supported chains, see the Gateway supported blockchains.
  • source.id and destination.id: the same vault account ID that hosts the Gateway wallet.
  • destination.subType: must be VIRTUAL_ACCOUNT for Gateway deposits.
The deposit reaches COMPLETED once your workspace’s transaction confirmation policy is satisfied — either a policy you’ve defined, or the Fireblocks default if you haven’t set one. Track status via the Transactions API or transaction webhooks.
Because completion is driven by your confirmation policy rather than by Circle Gateway’s own balance-credit confirmation, a deposit can occasionally show as COMPLETED slightly before on-chain finality and the Gateway balance update are fully reflected.
The first deposit from a vault address on a given chain triggers an automatic APPROVE transaction for Gateway smart contract approval. If your workspace Policies do not already cover this, add an APPROVE rule (see Setting up policy rules for USDC Gateway) before initiating your first deposit on each chain. Once approved, subsequent deposits on the same chain proceed without an additional approval step.

Step 3: Check Gateway balance

Retrieve your total balance and per-chain breakdown. See Get USDC Gateway wallet info. Response fields

Step 4: Withdraw USDC from Gateway

Submit a withdrawal using the Create a new transaction endpoint. Set subType: VIRTUAL_ACCOUNT on the source to draw from the Gateway wallet instead of a standard asset wallet. POST /v1/transactions Request body (one-time address destination)
Request body (vault account destination)
Field notes:
  • assetId: the USDC asset ID for the destination chain.
  • source.subType: must be VIRTUAL_ACCOUNT for Gateway withdrawals.
  • destination: another Fireblocks vault account or a one-time address.
Fireblocks selects which chain to draw from based on your current Gateway balance. The transaction reaches COMPLETED when destination-chain delivery is confirmed.

Step 5: Archive the Gateway wallet (optional)

Archiving stops using Gateway on a vault account. It does not move funds. Any USDC already held in Circle Gateway remains and is accessible again by re-activating. See Deactivate a USDC Gateway wallet.

Automate deposits

Instead of submitting each deposit manually (Step 2), you can configure a deposit automation that sweeps USDC from a vault account’s asset wallets into its Gateway wallet on a recurring schedule, once the balance clears a threshold you set.

Set up a deposit automation

POST /vault/accounts/{vaultAccountId}/virtual_asset_wallet/usdc_gateway/deposit_automation See Set up a USDC Gateway deposit automation for a vault account. Returns an error if an automation already exists for this vault account and asset — use PATCH to change an existing one instead. Request body
Field notes:
  • automationType: must be USDC_GATEWAY_DEPOSIT.
  • assetId: optional. Scopes the automation to a single Fireblocks asset ID; omit to cover all supported USDC Gateway assets.
  • timeBased.intervalValue / timeBased.intervalUnit: how often the automation runs. intervalUnit is one of MINUTES, HOURS, or DAYS.
  • timeBased.balanceThreshold: minimum USDC balance required before a deposit runs. Set to "0" to sweep the full available balance every time, with no minimum.
Response

Read configured automations

GET /vault/accounts/{vaultAccountId}/virtual_asset_wallet/usdc_gateway/deposit_automation See Read the USDC Gateway deposit automations for a vault account. Response

Change an automation

PATCH /vault/accounts/{vaultAccountId}/virtual_asset_wallet/usdc_gateway/deposit_automation/{automationId} See Change a USDC Gateway deposit automation. Only the schedule (timeBased) can be changed; automationType and assetId are fixed for the lifetime of the automation. Request body

Stop an automation’s schedule

DELETE /vault/accounts/{vaultAccountId}/virtual_asset_wallet/usdc_gateway/deposit_automation/{automationId} See Stop a USDC Gateway deposit automation’s schedule. This stops the schedule without deleting the automation’s configuration — turn it back on later with PATCH, without setting it up again from scratch.

Supported chains

For the current list of chains supported by USDC Gateway, refer to the Gateway supported blockchains.

Limits and fees

For current limits and fees, see Limits and Fees in the USDC Gateway Setup Guide.