Pre-launch preview · contract addresses

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

  1. You board. You send HYPE to ExitEscrow on Elysium with board(recipient), naming any HyperEVM address. The escrow records the crossing: ID, amount, toll, recipient, and boarding time.
  2. The ferryman sees you. The ferryman watches the escrow for new crossings and takes them in order.
  3. 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.
  4. 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.
  5. 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.
  6. 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.settle accepts 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:

  1. Queued unstakes come first, because they have first claim on incoming settlements.
  2. Then every waiting crossing ahead of yours, then yours.
  3. 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:

  1. Request a reclaim with requestReclaim(id).
  2. Wait out the reclaim delay (1 hour).
  3. 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