5042002). The transfer always originates from the signed-in consumer’s own FlareHQ-created Circle developer-controlled wallet — never from a shared platform wallet and never from an address supplied in the request body. The route returns immediately with a bridge_... reference and runs the bridge in the background; poll GET /api/cctp/transfer/status with that reference to track progress.
Because this endpoint bridges from the caller’s own wallet, authentication is consumer-session based (an consumer_token cookie), not an API key.
Endpoint
Request
Headers
Body Parameters
string
required
Source chain identifier. Must be one of the supported source chain IDs:
"Arbitrum_Sepolia"— Arbitrum Sepolia"Base_Sepolia"— Base Sepolia"Optimism_Sepolia"— Optimism Sepolia"Ethereum_Sepolia"— Ethereum Sepolia"Polygon_Amoy_Testnet"— Polygon Amoy
string
required
Destination chain identifier. Must be
"Arc_Testnet" — Arc is the only destination this endpoint bridges into.string
required
USDC amount to bridge, as a decimal string (e.g.
"100.00"). Pass the human-readable value, not raw atomic units.string
required
The
0x... Arc Testnet wallet address that will receive the minted USDC on the destination chain.Response
boolean
true when the bridge transfer was initiated successfully.string
Always
"pending" on the initial response. Poll the status endpoint to track progress.string
Unique transfer identifier with the prefix
bridge_. Pass it as the reference query parameter to GET /api/cctp/transfer/status.Example: "bridge_lx4m9q2t7w8k3p0ab5".string
Human-readable instruction pointing at the status endpoint.Example:
"Bridge started — poll /api/cctp/transfer/status?reference=... to check progress."Listing Supported Chains
AGET to the same path returns the current lists of supported source and destination chains without authenticating:
boolean
true.array
Array of
{ id, label, testnet, circleBlockchain } objects for every supported source chain.array
Array of
{ id, label, testnet } objects for every supported destination chain (always Arc_Testnet).Examples
Success Response
Chain Listing Response
Error Responses
Notes
The bridge runs asynchronously and is not awaited inside the request — the HTTP response is returned as soon as the transfer is registered. Progress is tracked in process memory, so on a single-instance deployment the reference stays queryable until the transfer settles or the server restarts. If the server restarts before completion, the status endpoint reports the transfer as not found.

