The Canton Name Service (CNS) maps human-readable names to party IDs on the Canton Network, similar to how DNS maps domain names to IP addresses. The underlying code is called the Amulet Name Service — you will see this term in package names likeDocumentation Index
Fetch the complete documentation index at: https://cantonfoundation-issue-365-details-history.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
splice-amulet-name-service.
What CNS provides
- Allows parties to buy a globally unique, human readable name for a time period mapped to their party (similar to DNS)
- Allows each party to declare one of their entries as the primary entry which is used to provide a human readable name to their party (similar to reverse DNS)
- Provides APIs for resolution in both directions that can be used by other apps (e.g., the wallet) to display and accept CNS names instead of party ids
How names work
CNS entries are purchased for a time period and mapped to a party ID. The core guarantees are:- Entry names are globally unique
- Entries are never archived before they expire
- The owner of an entry can always renew it before expiry
- Anyone can purchase an entry for a name that is not yet allocated
- Expired entries are archived by Super Validator automation
splice-wallet-payments package.
Primary entry
Each party can designate one of their CNS entries as their primary entry. The primary entry works like reverse DNS — given a party ID, the system can resolve it back to a human-readable name. Other applications (including the Splice Wallet) use primary entries to display readable names instead of raw party IDs.Resolution
CNS supports resolution in both directions:- Forward resolution (name to party ID) — Given a CNS name, return the party ID it maps to
- Reverse resolution (party ID to name) — Given a party ID, return its primary CNS entry name
Party metadata
Beyond CNS name mapping, parties on the network can associate metadata with their identity. Party metadata provides additional context about a party that other applications can query and display. The Scan API exposes party metadata for publicly visible data.Operator considerations
As a validator operator:- CNS for your parties — Parties hosted on your validator can purchase CNS names through the wallet UI or programmatically through the Ledger API
- Renewal — CNS entries expire. Ensure your parties are aware of expiry dates and renew entries before they lapse. Once expired, the name becomes available for anyone to purchase.
- Primary entry — Encourage your parties to set a primary entry so that other users see a readable name in wallet UIs and application interfaces
- Costs — CNS entry purchases and renewals cost CC. These transactions consume traffic from your validator’s balance.
Daml implementation
CNS is implemented across two Daml packages:splice-amulet-name-service— Implements the name service logic (entry creation, renewal, resolution)splice-dso-governance— Implements the decentralized automation for entry lifecycle management (expiry, archival)