alice.sigil to DIDs and records (mailbox, website, weave). Registration uses a commit-reveal scheme to prevent front-running: you publish a salted hash first, wait one epoch, then reveal.
When to use this
- Reserve a human-readable alias for your DID.
- Bind an SNS name to your website, mailbox, or Weave node.
- Front-run-proof registration of contested names.
Prerequisites
- A funded DID.
- A name that passes
normalize_name(lowercase ASCII letters, digits, and hyphens; no leading/trailing hyphen).
Recipe
Commit
Pick a 32-byte random salt. The commitment is
BLAKE3("sns/commit/v1" || name || salt || owner_did). The Rust SDK exposes sns::compute_namehash and sns::normalize_name; for other languages compute it manually.Wait one epoch
The chain enforces a one-epoch (1,000-block, ~100 min on testnet) cool-down. Query the activation status to confirm.Compare the returned
current_epoch with the epoch in which your commit landed.Resolving a name
Common errors
| Symptom | Cause | Fix |
|---|---|---|
commitment not found | Reveal before commit, or wrong salt | Re-derive the commitment locally and compare |
cool-down not elapsed | Revealed within one epoch | Wait until current_epoch advances |
name normalization rejected | Disallowed characters | Stick to [a-z0-9-] and pass normalize_name first |
name already reserved | Reserved system name (e.g. admin) | Pick a different name |
See also
- Primitive: Sigil Name System
- Cookbook: Claim a username — for
@-style handles. sns.rs— Rust helpers for namehash and record encoding.