How a crossing works
A standard withdrawal from Elysium waits out the river: an optimistic challenge period, community-reported at about 6 days. CHARON pays you your HYPE on HyperEVM from its exit pool, takes assignment of the Elysium-side withdrawal, and collects it when the window clears. The toll is 1%.
You can't take it with you. CHARON can.
The three parts
| Part | Contract | Chain | Job |
|---|---|---|---|
| The escrow | ExitEscrow |
Elysium | Takes your deposit, records the crossing, checks the pool's confirmation, and hands confirmed crossings to the standard bridge. |
| The exit pool | RelayPool |
HyperEVM | Holds staked HYPE, fronts crossings, confirms each payout back to the escrow, and receives settlements. |
| The ferryman | Relay service | Both | Watches the escrow and tells the exit pool which crossing to front next. It holds no pool funds. |
The river: why standard exits wait
Elysium is an optimistic rollup that settles to HyperEVM. It posts its state to HyperEVM, and a standard withdrawal becomes claimable there only after that state survives the challenge period. The community reports that period at about 6 days. The authoritative value is confirmPeriodBlocks in Elysium's rollup contract on HyperEVM, and once the exit pool is deployed, the app reads it from there and shows it on the pool status page.
The wait is what keeps the bridge honest. CHARON doesn't shorten it. CHARON carries it for you.
A crossing, step by step
- You board. You send HYPE to
ExitEscrowon Elysium withboard(recipient), naming any HyperEVM address. The escrow records the crossing: ID, amount, toll, recipient, and boarding time. - The ferryman sees you. The ferryman watches the escrow for new crossings and takes them in order.
- You land. The exit pool sends your HYPE, less the 1% toll, to your recipient on HyperEVM. It doesn't wait for the challenge period. The ferry's target is about 30 seconds from deposit to payout, and the measured average is on the pool status page.
- The pool confirms. In the same transaction, the exit pool contract sends a confirmation to the escrow over Elysium's canonical parent-to-child messaging. It carries the crossing ID, the recipient, the amount paid, and the boarding time.
- CHARON takes assignment. The escrow checks the confirmation against its own record. On an exact match, it marks the crossing confirmed, then sweeps confirmed crossings in batches into a standard Elysium withdrawal addressed to the exit pool. From that point the withdrawal belongs to the pool.
- Settlement. When the challenge period clears, the withdrawal is executed on HyperEVM and lands in the exit pool. The fronted HYPE comes back, and the toll stays with stakers.
| Step | What happens | Chain | Timing |
|---|---|---|---|
| Board | You deposit into the escrow | Elysium | When your transaction confirms |
| Land | The exit pool pays your recipient | HyperEVM | Target ~30 seconds; measured average shown live |
| Confirm | The pool's confirmation reaches the escrow | Elysium | Elysium's parent-to-child message delivery |
| Assign | The escrow sweeps the crossing into a standard withdrawal | Elysium | The next sweep batch |
| Settle | The withdrawal lands in the exit pool | HyperEVM | At least the challenge period after the sweep |
Your part ends at the second row.
Assignment, in detail
"Assignment" means the Elysium-side withdrawal is made out to the exit pool instead of to you.
- You don't start a standard withdrawal. You deposit into the escrow, and the escrow starts one later, on the pool's behalf, once the pool has paid you.
- The escrow batches confirmed crossings into a single withdrawal. That withdrawal carries a call to
RelayPool.settle(batchId, total). - On HyperEVM,
RelayPool.settleaccepts a settlement only when it arrives through Elysium's bridge from the escrow's address. No other caller can credit the pool.
Batching keeps settlement gas low, and because each batch has an ID, every crossing on the receipt page shows which batch carries it.
Worked example
You cross 1,000 HYPE.
- Toll: 10 HYPE (1%).
- You receive: 990 HYPE on HyperEVM, when the exit pool fronts your crossing.
- When the challenge period clears: the escrow's 1,000 HYPE settles into the exit pool. 990 replaces what the pool fronted, and 10 accrues to stakers.
You pay Elysium gas for your deposit. The ferryman pays HyperEVM gas for your payout and for the confirmation.
The pool and the queue
The exit pool fronts each crossing from its idle liquidity: the HYPE that isn't already out on the river. When idle liquidity can't cover a crossing, the crossing waits in the queue, first in, first out.
The pool keeps a river schedule: how much fronted HYPE is outstanding, by the hour it was fronted. Each hour's HYPE is expected back one settlement window later. The queue page uses that schedule to give every waiting crossing an ETA:
- Queued unstakes come first, because they have first claim on incoming settlements.
- Then every waiting crossing ahead of yours, then yours.
- Your ETA is the moment idle liquidity plus scheduled settlements cover all of that.
The ETA leaves new stake out, even though new stake shortens the wait.
Reclaiming a crossing
Until the exit pool's confirmation arrives, your HYPE stays in the escrow and you can take it back:
- Request a reclaim with
requestReclaim(id). - Wait out the reclaim delay (1 hour).
- Withdraw your full deposit with
reclaim(id). Reclaimed crossings pay no toll.
If the pool's confirmation for your crossing arrives during the delay, you've already been paid on HyperEVM. The crossing completes as a ferried crossing and the reclaim closes.
Security model
Travelers
- Your deposit moves only on proof of payment. The escrow releases a crossing only on a confirmation that the exit pool contract itself sent, delivered over Elysium's canonical messaging, and only when the recipient, amount, and boarding time match the crossing exactly. The ferryman can't redirect a deposit, and the escrow has no admin withdrawal.
- Unferried crossings come back. Any crossing without a matching confirmation can be reclaimed in full.
- The toll can't change under you. It's a constant in the escrow contract: 100 basis points.
Stakers
- The ferryman is a permissioned key. The exit pool fronts HYPE on the ferryman's instruction, before any proof arrives from Elysium. The pool caps each crossing and the total fronted per hour, and a guardian can pause ferrying.
- The ferryman acts on sequencer confirmation. If Elysium's sequencer drops a crossing after the pool has fronted it, the pool carries that loss.
- Confirmations have to arrive in time. If a payout's confirmation hasn't reached the escrow by the end of a traveler's reclaim delay, the traveler can reclaim a deposit that was already paid out, and the pool carries that loss.
- Settlement runs through Elysium's canonical bridge. HYPE on the river returns to the pool only when Elysium's standard withdrawals finalize.
All of these are covered in Risks.
Parameters
| Parameter | Value |
|---|---|
| Route | Elysium (chain 99901) → HyperEVM (chain 999) |
| Testnet route | Elysium testnet (99801) → HyperEVM testnet (998) |
| Asset | HYPE |
| Toll | 1% of the crossing amount (ExitEscrow.TOLL_BPS = 100) |
| Crossing time | Target ~30 seconds; the measured average is on the pool status page |
| Challenge period | Community-reported ~6 days; read from Elysium's rollup contract once the pool is deployed |
| Reclaim delay | 1 hour (ExitEscrow.RECLAIM_DELAY) |
| Crossing limits | minCrossing and maxCrossing on the escrow; per-crossing and hourly caps on the pool |