Bridge Webapp Refresh

Project Name: Bridge Front End Rebuild and EVM Swaps

Description: The bridge site shipped as a compiled build with no source (DexterLabZ/bridge.mainnet.zenon.community). This project recovered the source, rebuilt the app, and added swaps between EVM assets that do not depend on the orchestrators. It is delivered and live at https://bridge.zenon.foo.

Why it matters for Zenon: The mainnet bridge is not signing; the oldest request has waited over a month (live status, derived on chain). The old site gave no sign of that and offered nothing else. The new one says so on every page and still lets a holder move between ETH, BNB, wZNN and wQSR in seconds.

URL:

Team:

  • sol: recovery, rebuild, swaps, tests, lab, docs, deployment
  • edgepillar: review. PR #3 (6 commits, 89 files): a transfer is recorded before the wallet signs, a reverted EVM receipt is no longer reported as success, and an unknown outcome stays unresolved instead of being retried

Delivered

Original Now
Source compiled bundle only Vue 3, TypeScript, Vite; builds on GitHub Pages (PR #1, PR #2)
Flows wrap, unwrap, redeem, liquidity, affiliate all kept, plus live status and countdowns, history without a wallet, and fee and time estimates
Bridge health none; the status monitor is offline read from the bridge contract’s own blocks: signing, stalled, halted, key generation (Orchestrator status)
Wallets Syrius, MetaMask only, WalletConnect Syrius extension, plus any EIP-6963 wallet (MetaMask, Rabby, Phantom). WalletConnect dropped: it needs a project id and a remote relay
Networks and tokens hardcoded, BNB shown as testnet read from embedded.bridge.getAllNetworks
Recipient with no plasma not detected detected, with one-click fusing through the zenonhub plasma bot
Referral a first-visit code the orchestrator could not parse, so it earned nothing a z1 address the orchestrator accepts; bonus proven on the lab
Swaps none ETH, BNB and the bridge’s EVM tokens, on one chain or between two, EVM wallet only, custom recipient (Swaps)
Remote scripts Twitter pixel, Google Tag Manager none; the build fails if it references a CDN

Swap routing. KyberSwap on one chain, Across between chains, LI.FI as fallback. Measured 2026-10-13, this pays 0.17% to 0.91% more than LI.FI alone (table). Each router’s contract is pinned; a quote naming any other contract or amount is refused. Approvals are for the amount, never unlimited.

Tests.

  • 77 unit tests, with fixtures read from mainnet (tests/unit)
  • A bridge lab: go-zenon devnet with the bridge active, anvil, and HyperCore’s bridge.sol; wrap, unwrap, both redeems and the referral bonus run end to end (e2e)
  • Swaps executed through the UI on a fork of Ethereum mainnet (swap.fork.mjs)

Funding

Total Requested Funding = 1,500 ZNN and 15,000 QSR, one phase, delivered.

ZNN QSR
sol 1,000 10,000
edgepillar (review) 500 5,000

Project Duration: 2026-10-12 to 2026-10-13.


Other Information

Not yet proven:

  • A swap sent from a real wallet on the live site. Swaps ran on a mainnet fork with a mock wallet, and the cross-chain half only as far as the sending transaction.
  • The liquidity flows against a chain; they are unit-tested for call data only.
  • PR #3 is a draft and not merged.

Risks and dependencies:

  • Wrap and unwrap complete only when the orchestrators sign again. That is outside this project.
  • Swaps depend on three third-party routers, used without keys and rate limited.
  • The site is a fork under sol-znn. Moving it to the official domain is the domain holder’s call.

Previous proposals:

Thanks sol, the rebuild looks solid and the stalled-signing banner is useful. Before voting, what’s the plan for edgepillar’s PR #3 (Preserve bridge operation identity and qualify safety boundaries)? Will it be merged or addressed before any phase payout is requested? -SoS

I’m glad you like it :slight_smile:

I’ll handle any existing PRs and feedback before merging upstream.