Primary name
Your primary name is the one apps show instead of your address. You can own many names but only one is primary.
Set it when you claim, or later from My names. It only shows when the name also points to your address.
Everything you need to claim, use and build with .ely names.
A .ely name replaces your 0x address and gives you a public page at elyname.com/yourname. You need a wallet with a little HYPE on Elysium.
Ready? Find your name.
One price per year, set by length. Pay for 1 to 5 years at once.
One and two character names are sold only through launch auctions. Highest bid wins and gets the name for a year.
Anyone can renew a name, at the same yearly price, from My names or any wallet.
After expiry the owner keeps a 30 day grace period to renew. The name then opens to everyone with a premium that starts at 100 HYPE, halves every day and reaches zero after 21 days.
Your primary name is the one apps show instead of your address. You can own many names but only one is primary.
Set it when you claim, or later from My names. It only shows when the name also points to your address.
Records are what your profile shows: avatar, X, Telegram, site, Discord and GitHub. They live on chain and any app can read them.
Keys follow ENS conventions: avatar, url, com.twitter, org.telegram, com.discord, com.github, description.
Elyname is ENS compatible: ask the registry for the resolver of a name, then ask the resolver. There is no universal resolver, so call them directly.
0xf315ea757625d7bc103f6d002ef84e1a409698fa0xa23591153ab8a9b1b4f2413b33bd16803df5aef7import { createPublicClient, http, namehash, parseAbi } from "viem";const client = createPublicClient({ transport: http("https://rpc-live.boxa.club") });const abi = parseAbi([ "function resolver(bytes32 node) view returns (address)", "function addr(bytes32 node) view returns (address)", "function text(bytes32 node, string key) view returns (string)",]);const registry = "0xf315ea757625d7bc103f6d002ef84e1a409698fa";// alice.ely → 0x addressconst node = namehash("alice.ely");const read = (address, functionName, args) => client.readContract({ address, abi, functionName, args });const resolver = await read(registry, "resolver", [node]);const address = await read(resolver, "addr", [node]);const x = await read(resolver, "text", [node, "com.twitter"]);// 0x address → primary nameconst rnode = namehash(`${address.slice(2).toLowerCase()}.addr.reverse`);const rres = await read(registry, "resolver", [rnode]);const name = await client.readContract({ address: rres, abi: parseAbi(["function name(bytes32 node) view returns (string)"]), functionName: "name", args: [rnode],});// show it only if name resolves back to the same addressRead only JSON, no key needed, rate limited per IP. All prices are in HYPE.
GET /api/names/[label]Availability, price for one year, owner and records of a name.GET /api/names?sort=recentLatest registrations. Use sort=expiring for names expiring soon.GET /api/resolve?name=alice.elyThe address and records a name points to.GET /api/resolve?address=0x…The primary name of an address.GET /api/profile/[label]Public profile: records, owner, other names, expiry.GET /api/account/[address]Every name a wallet owns, and its primary name.GET /api/avatar/[label]The avatar image of a name, or a generated placeholder.GET /api/auctionsLive, upcoming and ended short-name auctions.GET /api/pricingYearly price per length, grace and premium rules.GET /api/statsNames registered, owners, volume.Your name is waiting.
Claim my name