The bridge is a smart contract and Ripio does not intermediate in bridge transactions. To bridge from a browser instead of code, use bridge.ripio.com.
How it works
1
Deposit on the source chain
You call
depositForBridge() on the source chain. The token amount, minus the route’s fixed fee, is burned and a BridgeDepositInitiated event is emitted.2
Finality
The bridge operator observes the event and waits for source-chain finality.
3
Mint on the destination chain
The operator mints the bridged amount to your recipient on the destination chain and emits
BridgeMintFulfilled. Minting is idempotent: exactly one mint per deposit.BridgeDeposit contract is deployed at the same address on every supported chain and is verified on every explorer. Source code: BridgeDeposit.sol on GitHub.
Addresses
BridgeDeposit
on every chain:Stablecoins
Each token uses the same address on every chain that supports it, and all of them have 18 decimals.HyperEVM only supports wARS and wBRL on the bridge so far. Check
routeConfigs before assuming a token and chain pair is live.Quickstart
The examples below use viem, but any EVM tooling works.0. Constants and ABI
1. Check the route and its fee
Every route (token and destination chain) must be enabled, and carries a fixed fee that is deducted from the deposited amount. Check it before depositing:check-route.ts
2. Approve and deposit
The caller must first approve theBridgeDeposit contract for at least amount: the contract burns through burnFrom and pulls the fee through transferFrom.
deposit.ts
3. Watch for fulfillment on the destination chain
watch.ts
4. Check mint capacity before large transfers
Minting is subject to a daily cap per token, per chain. Check the capacity on the destination chain before large transfers: deposits above the remaining capacity are queued until the cap resets.capacity.ts
Function reference
depositForBridge
Requirements
- The ERC-20 allowance for the
BridgeDepositcontract must be greater than or equal toamount. - The
(token, destChainId)route must be enabled. Check it withrouteConfigs. - Minting on the destination chain is subject to a daily cap. Check
remainingMintCapacity(token)on the destination chain: deposits above the remaining capacity are queued until the cap resets.
routeConfigs
destChainId is enabled for token, and its fixed fee in token units (18 decimals).
remainingMintCapacity
token on the current chain, the daily maximum and the amount minted today. Capacity resets daily.
Events
BridgeDepositInitiated
Emitted on the source chain.BridgeMintFulfilled
Emitted on the destination chain.
Fulfillment is idempotent: exactly one mint per
(sourceChainId, sourceDepositId) pair.
Tracking and status API
For off-chain correlation, generate a uniqueclientDepositId per transfer, for example keccak256(abi.encodePacked(sender, timestamp, yourInternalId)), and match it against the BridgeDepositInitiated event.
You can also poll the public status API with the deposit transaction hash:
GET /api/operations/{txHash} — 200
status field follows this lifecycle: