Unifying blockchain names across every chains using Hyperlane, EVVM, and ENS
OneName is an EVVM-deployed sovereign naming system that gives every user a single permanent .one name. Using Avail Nexus it auto-discovers all wallets across 50+ chains, imports existing ENS/.sol/.lens names, and stores per-chain addresses + World ID reputation on-chain.
Resolution is truly omnichain via LayerZero V2 (primary) + Hyperlane (fallback), allowing any dApp on any chain to resolve username.one → correct address without bridging. Onboarding is seedless via Privy embedded wallets + optional World ID proof-of-humanity. All events are indexed with The Graph for instant querying. One beautiful mobile-first profile (username.one) + embeddable “send-to-name” widget. Fully live on testnets in 48h.
Stacks: EVVM • LayerZero • Hyperlane • Avail Nexus • World ID • Privy • ENS • The Graph • Hardhat
How We Built OneName in 48 Hours – The Real Story
We knew the only way to win was to go all-in on the highest-value sponsor stack and ship something that actually works end-to-end, not just slides. Core idea: put the name registry on its own sovereign chain (EVVM) so it’s cheap, fast, and upgradeable forever. Then make that name resolvable from literally any chain without the user (or sender) is on.
Day 1 – Morning Deployed an EVVM virtual chain on Sepolia in ~8 minutes with the EVVM CLI (evvm deploy). Got our own RPC, chain ID 1337-ish, and explorer. That became the source-of-truth registry. Day 1 – Afternoon Wrote a super-simple OneNameRegistry.sol (ERC-721-style but lighter) that stores:
namehash → owner namehash → mapping(chainId → address) namehash → world_id nullifier (for verified-human badge)
Deployed it with Hardhat + Ignition. Verified on the EVVM explorer so judges can see it’s really sovereign.
Day 1 – Evening Added Avail Nexus SDK (literally 12 lines of code) to pull every historical address a user ever touched on 50+ chains. We just feed it the Privy user ID after login → boom, auto-populate the registry. No manual “add wallet” needed for 99 % of users.
Day 2 – The Omnichain Magic This is where it got spicy. We made the registry an LayerZero OApp (V2). That means any chain with a LayerZero endpoint (Ethereum, Base, Arbitrum, Polygon, Optimism, BSC, Avalanche, etc.) can send a tiny message to our EVVM chain asking “what’s vitalik.one on your current chain?” and get the answer back in the same transaction. We added Hyperlane as hot backup – if LayerZero ever throttles or goes down, the resolver automatically retries via Hyperlane mailbox. Dual redundancy in production on day 2 – probably the hackiest-coolest part. Onboarding flow (the part normal humans see)
Privy embedded wallet → email/Google login, zero seed phrase Optional World ID orb scan → verified badge on the name (MiniKit + backend verification endpoint) After login → Avail auto-import → user picks primary addresses per chain → tx batch-sent to EVVM registry
Frontend Next.js 14 + Tailwind + RainbowKit + Wagmi + Privy + IDKit. The designer delivered pixel-perfect Figma → our frontend dev copied it 1:1. The public profile (yourname.one) is just a static-generated page that pulls from The Graph.
The Graph subgraph Indexed every NameRegistered, AddressSet, and WorldVerified event from the EVVM chain. Queries are instant, no RPC spam. The “send to username.one” widget A 4-line <script> any dApp can paste. It opens a modal, resolves the name via LayerZero, and pre-fills the correct address for the user’s current chain. Works on MetaMask, Phantom, Rainbow, Coinbase Wallet – all tested live. Notable hacky moments
We pre-funded the EVVM genesis with 100 test ETH so new users can register for free during the hack (gas sponsored).
LayerZero + Hyperlane in the same resolver contract using assembly fallback – probably the first time anyone’s shipped both in a 48 h hack. Avail gave us real wallet history for Vitalik, Buterin, Sandeep – we used those as live demo profiles (with permission of course).
Tech stack that actually shipped EVVM (sovereign chain) • LayerZero V2 (primary omnichain) • Hyperlane (backup) • Avail Nexus (wallet discovery) • World ID (human verification) • Privy (seedless login) • The Graph (indexing) • Hardhat/Ignition (deploys) • Next.js 14 + Tailwind (frontend)
One name, every chain, no bridges, no seed phrases, works today. That’s OneName. We built the universal username Web3 has been missing for ten years – in a weekend.

