zns — ~/how-it-works
Zcash Naming Service
Human-readable names for Zcash. alice.zec instead of u1qr5e...7xk4 (213 chars).
── what is ZNS ──────────────────────────────────
$ what problem does ZNS solve?
Zcash unified addresses are ~213 characters long. Nobody can memorize or verify them visually. ZNS lets you register a short, human-readable name like alice.zec and point it at your address. Senders type the name — wallets look up the address automatically.
$ how is it decentralized?
The registrar address is derived from a public hash — no one holds the spending key. Registration memos are readable by anyone with the public incoming viewing key (IVK). Anyone can run their own indexer and rebuild the full registry from scratch in ~3–10 minutes. No central authority controls the data.
$ what happens to the registration fee?
ZEC sent to the registrar is effectively burned. The registrar address was derived from SHA-256("ZNS Registrar v1 - Zcash Naming Service") — the spending key exists mathematically but no one knows it. Fees are tiered: 0.01 ZEC (8+ chars), 0.1 ZEC (5–7 chars), 1 ZEC (3–4 chars).
── registration ──────────────────────────────────
Registration is a single transaction. Send the registration fee to the registrar address with a signed memo — the scanner validates and registers your name within seconds.
1.
Send REGISTER transaction
Send at least the registration fee in ZEC to the registrar address with memo:
ZNS:v1:REGISTER:<name>:<your_address>:<pubkey_hex>:<signature_hex>
The signature covers REGISTER:name:address and proves you control the Ed25519 keypair.
2.
Scanner validates and registers
The scanner checks: name validity, fee paid, name not already taken, signature valid. On success, name.zec resolves to your address within seconds.
── ownership ──────────────────────────────────
$ how does ownership work?
All names are owned by Ed25519 public keys. Your pubkey and signature are included in the REGISTER memo. Management (update address, transfer, list, delist, confirm sale) is done via signed HTTP API calls— no extra on-chain transactions. Works with any wallet including Zashi.
Use the identity page to generate and store your keypair in-browser.
$ are names permanent?
Yes. Once registered, a name is yours forever — no renewals, no expiry. You can transfer it or list it for sale on the marketplace at any time.
── marketplace ──────────────────────────────────
$ how do I sell a name?
List it via the manage page (pubkey-owned names) or by sending a LIST memo on-chain (transparent-owned names). While listed, UPDATE and TRANSFER are blocked to protect buyers.
$ how do I buy a name?
For pubkey-owned names, contact the seller and pay off-protocol; the seller confirms via a signed API call. For transparent-owned names, pay the seller's transparent address directly, then send a BUY memo to the registrar with the payment txid.
── name rules ──────────────────────────────────
charactersa–z, 0–9, hyphens
min length3 characters
max length63 characters
caselowercase only
TLD.zec (implied)
leading/trailing –not allowed
consecutive ––not allowed
unicodenot supported (v1)
── verification & trust ──────────────────────────────────
$ do I have to trust the indexer?
No. The ZNS system is designed for trustless verification. Anyone with the public IVK can scan the Zcash blockchain and reconstruct the full registry independently. Cross-check multiple indexers by comparing their state roots — if they agree, the data is correct.
$ what stays private?
Registration is public — names, resolved addresses, and ownership info are all visible (that's the point). What stays private: payment amounts, payment senders, and Alice's full transaction history. All ZEC actually sent to alice.zec goes to her shielded unified address— fully private.
── getting started (testnet) ──────────────────────────────────
ZNS is currently running on the Zcash testnet. Testnet ZEC (TAZ) is free — grab some from the faucet and try it out.
1.
Get free TAZ from the testnet faucet:testnet.zecfaucet.com ↗
2.
Generate an Ed25519 identity on the identity page.
3.
Register your name on the register page. The UI generates the correct memos — copy them into your Zcash wallet.
4.
Resolve any name on the home page.