Let your user move a position to a new chain in one SDK call.
Source burn, CCIP-validated message, destination mint, all in one call. Chainlink CCIP with the Risk Management Network: two independent oracle networks validate every message, with the RMN running on a separate codebase as an independent kill switch. Settlement time on each route is set by CCIP and the source chain's finality, not by Flo.
The full Bridge spec lives in the docs
Source burn, CCIP-validated message, destination mint, all in one call. Route matrix, failure semantics, and the Risk Management Network detailed in the reference. Python and Node.js tabs, copy-ready.
How bridging works
Burn on source, validate via CCIP, mint on destination. The supply accounting stays balanced throughout, every bridge is a net-zero change to total Flo token supply.
Source burn
Flo burns the Flo tokens on the origin chain. The burn is recorded in the Flo Capital SPC ledger so the supply accounting stays balanced.
CCIP message · Committing DON + RMN
Flo posts a Chainlink CCIP message from the source chain to the destination. The Committing DON commits the message; the Executing DON delivers it on the destination; the Risk Management Network runs in parallel on a separate codebase and can curse the lane if anomalous activity is detected. No single network can sign a fraudulent bridge.
Destination mint
On the destination chain, Flo mints the Flo tokens to the wallet you specified. End-to-end settlement time is set by Chainlink CCIP and the source chain's finality requirements, not by Flo.
What bridge gives you
No multi-step UX, no router contracts to integrate, no liquidity fragmentation across chains. Same token, same holder, new chain.
Every Flo token, every supported chain
Bridge AAPL, TLT, APCI, or any other Flo token. The same API works across every supported origin and destination.
Chainlink CCIP · Risk Management Network
Flo bridges run on Chainlink CCIP. Two independent oracle networks validate every cross-chain message; the Risk Management Network runs in parallel and can curse a lane if it detects malicious activity.
One call, one transaction
The user signs once. Flo orchestrates the source burn, the CCIP message, and the destination mint. No multi-step UX.
Developer pays gas
You cover gas on both chains, which keeps costs transparent. L2s keep the bill low. No hidden fees from Flo.
Full lifecycle webhooks
Subscribe to bridge.queued, bridge.committed, bridge.delivered, bridge.requires_manual_execution, and bridge.lane_cursed events to drive in-app progress indicators, alert on stuck messages, and trigger operator-assisted recovery.
Symmetric routes
Every route is bidirectional. If you can bridge A → B, you can bridge B → A with the same API shape.
Supported routes
Live across Base, Arbitrum, and Ethereum, every route bidirectional. If you need Flo on a chain that isn't here, drop us a line at chains@flo.finance , we move based on developer pull.
| From | To | Provider |
|---|---|---|
| Ethereum | Base | Chainlink CCIP |
| Ethereum | Arbitrum One | Chainlink CCIP |
| Base | Arbitrum One | Chainlink CCIP |
| Base | Ethereum | Chainlink CCIP |
| Arbitrum One | Ethereum | Chainlink CCIP |
| Arbitrum One | Base | Chainlink CCIP |
Settlement time on each route is set by Chainlink CCIP and the source chain's finality, not by Flo. See CCIP execution latency for live, per-lane numbers.
Build once. Ship on every chain.
Let your users mint on one chain and move anywhere the API supports, without breaking the underlying Flo Capital SPC accounting.