Skip to main content

Zcash Naming Service (ZNS)

Send ZEC to alice.zec instead of u1qr5e...7xk4

ZNS is a naming system for Zcash. Users register human-readable names by sending a single shielded transaction with a signed memo to a deterministic registrar address. Indexers scan the blockchain, build a registry, and prove each registration correct using zero-knowledge proofs (SP1).

How It Works

  1. Alice generates an Ed25519 keypair and sends 0.01 ZEC to the registrar with memo: ZNS:v1:REGISTER:alice:<address>:<pubkey>:<signature>
  2. Scanner validates: name is valid, not taken, signature verifies, fee sufficient
  3. Bob calls GET /v1/resolve/alice and gets Alice's address + Merkle proof
  4. Bob sends ZEC to that address. He never sees the 213-character unified address.

Key Features

  • Name registration via shielded Zcash memos (single transaction)
  • Ed25519 ownership with signed API management (UPDATE, TRANSFER, LIST, DELIST, CONFIRM_SALE)
  • Escrow marketplace for buying/selling names with shielded payments
  • SP1 zero-knowledge proofs for every registration
  • Sparse Merkle Tree with verifiable state roots

Name Rules

RuleValue
Allowed charactersa-z, 0-9, hyphens
Length3-63 characters
CaseCase-insensitive (stored lowercase)
HyphensNo leading/trailing/consecutive
TLD.zec (implied, not stored)

Registration Fees

Name lengthFee
8+ characters0.01 ZEC
5-7 characters0.1 ZEC
3-4 characters1 ZEC

Fees are burned (sent to registrar, nobody holds the spending key). Names are permanent.

Live Deployment

ResourceURL
Frontendzecname.xyz
APIzns-server-production.up.railway.app
NetworkZcash testnet