Docs

Resolve spec.

One lookup, one JSON object. Wallets and sites need nothing else to pay a name.

Grammar
  • label = 3–20 chars
  • charset = a–z 0–9 -
  • no leading or trailing hyphen
  • fqn = label + ".zec"
Record keys
zec
required · payment address
sol
optional
zmail
inbox
zpay
store URL
site
website
avatar
image URL
note
free text
Resolution order
  1. Normalize input, strip the suffix, lowercase.
  2. Validate against the grammar. Invalid names never resolve.
  3. Read the registry entry. Expired names resolve as unregistered.
  4. Return records. Wallets pay the zec key.
Economics
Register
burn 12,000 $ZNAME
Split
50% destroyed / 50% treasury
Resale
20% of ask to holders in ZEC

Treasury · zec1treasury0znameq7f3k9wq2m4v8xr6pl0n5dhs2yut4c

GET /resolve/alice.zec
{
  "name": "alice.zec",
  "status": "registered",
  "expires": "2028-04-11",
  "primary": true,
  "records": {
    "zec":    "zec1q8f3k9wq2m4v8xr6pl0n5dhs2yut4c",
    "sol":    "So1aliceKq7f3k9wq2m4v8xr6pl0n5dhs",
    "zmail":  "alice@zmail.zec",
    "zpay":   "zpay.store/alice",
    "site":   "alice.site",
    "avatar": "https://alice.site/plate.png",
    "note":   "Correspondence only."
  }
}
SDK sketch
import { resolve } from "@zname/resolver";

const { records } = await resolve("alice.zec");
send(records.zec, amountZec);
Chrome extension