Skip to content

feat(bridge): Elysium routes for USDC - #131

Closed
Vasanthdev2004 wants to merge 3 commits into
feat/bridge-cctpfrom
feat/bridge-elysium
Closed

Vasanthdev2004 wants to merge 3 commits into
feat/bridge-cctpfrom
feat/bridge-elysium

Conversation

@Vasanthdev2004

Copy link
Copy Markdown
Collaborator

Phase 6 of the bridge update. Stacked on #130 (Circle CCTP); the base branch retargets as the lower PRs merge.

The whole stack (#118 to #130) was merged with main first, so it now carries Elysium (chain 99901). Those merges were clean, with no force pushes.

What it does

Elysium is now a bridge network like Base, Robinhood and Arc. USDC moves through Relay from every other network into Elysium, and from Elysium to every launch chain. HYPE, Elysium's gas token, is not carried.

  • The asset: USDC 0xb47c4C8F73F009CC0C0d3f92B388d13E293F0B65.
    • Symbol and name USDC, 6 decimals, checked on-chain.
    • The same contract the launch form quotes on Elysium.
    • The one ERC-20 that Relay lists as bridgeable there.
    • Relay only: Elysium has no Circle CCTP domain.
  • Why HYPE is left out. Relay marks HYPE as not bridgeable, and the live probes match that:
    • Quotes into HYPE refund on Elysium in USDC, not HYPE. The validator requires a destination refund in the output currency, so they fail closed.
    • Quotes out of HYPE take USDC through Relay's router with a different call, not the depository deposit this bridge verifies.
    • HYPE routes need their own design and review.
  • Chain check:
    • Every other chain still needs its native currency listed as bridgeable.
    • Elysium is the only chain whose native currency the bridge never sends or receives. For Elysium alone, Relay must instead list exactly this USDC (address, symbol and decimals) as bridgeable.
    • The depository, router, status and VM checks still apply.
  • Quote checks are unchanged: exact currencies both ways, refunds in those currencies, gas paid in the origin's native currency (HYPE from Elysium), and an exact approval of Elysium USDC to the pinned depository.
  • UI:
    • Elysium's mark in the network pickers, and an ELYS code on the signal board (new L and Y glyphs, HYPE's mint colour).
    • A route notice: only USDC moves to and from Elysium, and HYPE is needed there for gas.
    • "For gas" shows the HYPE balance when sending from Elysium.
    • The /bridge page lists Elysium.
  • Bridge, then buy:
    • Reads the HYPE balance on Elysium, and counts Elysium USDC as a source only when there is some HYPE beside it.
    • A buy paid in HYPE gets no bridge offer. A buy paid in Elysium USDC does.
  • Launch gate: the bridge offers Elysium whether or not NEXT_PUBLIC_LAUNCH_FACTORY_ELYSIUM is set, so funds can be moved there before its first launch.

Live cost, 2026-11-10 (read-only, 25 USDC or USDG, or 0.01 ETH)

All sixteen Elysium routes passed the server validator.

Route Receives Cost
Base, Ethereum, Arbitrum or Optimism USDC to Elysium 24.9718 USDC 0.11%
Robinhood USDG to Elysium 24.9628 USDC 0.13%
Arc USDC to Elysium 24.9618 USDC 0.15%
ETH from Base, Robinhood, Ethereum, Arbitrum or Optimism to Elysium 20.59 to 20.61 USDC 0.21% to 0.30%
Elysium to Base USDC 24.6642 USDC 1.34%
Elysium to Arc USDC 24.6620 USDC 1.35%
Elysium to Robinhood USDG 24.6533 USDG 1.36%
Elysium to Base or Robinhood ETH 0.011893 ETH 1.76%
  • Cost is Relay's fee as a share of the amount sent. Where ETH converts, it is Relay's own total estimate.
  • Leaving Elysium costs more than ten times as much as arriving.
  • Sending from Elysium also used about 0.000043 HYPE in gas.

Changes

  • lib/bridge/types.ts:
    • Elysium added to the chains and launch destinations, with ELYSIUM_USDC.
    • defaultBridgeAsset returns the chain's first bridge asset, so nothing changes for the other chains.
    • New bridgesNativeCurrency and bridgeTokens.
  • validation.ts: the Elysium chain check; gas check typed as the native symbol.
  • chains.ts: the wallet chain is the launchpad's own CHAINS.elysium.
  • signal.ts: ELYS, the L and Y glyphs, and a colour.
  • fund.ts:
    • the native pay asset is derived from the registry;
    • HYPE is read for gas on Elysium.
  • cctp-server.ts: a 99901 entry (no Circle route).
  • BridgeDialog: Elysium's mark and route notice.
  • /bridge page: Elysium in the copy and lists.
  • /ui-review-bridge: an Elysium history row and an Elysium bridge-then-buy scene.
  • docs/bridge.md: "Elysium (2026-11-10)".

Not built

  • HYPE routes in either direction, including a gas top-up that delivers some HYPE with the USDC.

Verification

  • New tests:
    • registry;
    • Relay's Elysium listing, and each way it can be wrong;
    • the exemption staying Elysium's alone;
    • ten Elysium routes through the validator;
    • HYPE refunds, HYPE outputs and non-HYPE gas, all refused;
    • HYPE requests refused;
    • approvals;
    • Relay history rows;
    • links;
    • the board code;
    • the bridge-then-buy source rule;
    • UI guards.
  • Updated route counts: sixty-two deposit routes, thirty-six from the funding networks.
  • Opt-in live test (RUN_BRIDGE_LIVE_TESTS=1): all sixteen Elysium routes quote and pass.
  • Full suite: 1525 tests, 28 failures. All 28 match the existing baseline on main; none are new.
  • tsc and eslint are clean.
  • Browser: checked /ui-review-bridge and /bridge?from=elysium&to=base on desktop and at phone width, with no horizontal overflow.
  • Not yet exercised: no wallet signed anything. A small real transfer each way is still needed before this is described as exercised.

Elysium (99901) is now a bridge network like the other launch chains.
Its USDC moves through Relay from every other network and to every
launch chain. HYPE, its gas token, is not carried.

- Registry: Elysium USDC 0xb47c...0B65 (symbol USDC, 6 decimals,
  checked on-chain) both ways. A chain's default asset is now its first
  bridge asset, so Elysium defaults to USDC and every other chain keeps
  its gas token.
- Chain check: Relay lists HYPE as not bridgeable. For Elysium alone,
  the check requires Relay to list exactly this USDC as bridgeable
  instead. Every other chain still needs its native currency listed as
  bridgeable, and the quote checks are unchanged, with gas paid in HYPE
  when sending from Elysium.
- Dialog: Elysium's mark, an ELYS board code (new L and Y glyphs), and
  a route notice that HYPE is not bridged and is needed on Elysium for
  gas. The /bridge page lists Elysium.
- Bridge, then buy: reads HYPE on Elysium and suggests Elysium USDC as a
  source only beside some. A buy paid in HYPE gets no bridge offer.
- Tests cover the registry, Relay's Elysium listing and each way it can
  be wrong, every Elysium route, HYPE refunds and outputs (refused), HYPE
  gas, approvals, history, links, the board and the source rule. The
  opt-in live test quotes all sixteen Elysium routes through the server
  validator.
@coderabbitai

coderabbitai Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: 514c340c-b1cd-4172-88a5-4cd355cd0ab6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Keep Enter on the quote path and require an explicit wallet action.
Bundle both network marks, show the HYPE gas requirement beside USDC,
and give users a direct link to their transfer history.
@Vasanthdev2004

Copy link
Copy Markdown
Collaborator Author

Closed in favour of #135, which holds the whole bridge update in one PR. The commits from this PR are in it unchanged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant