The SPL Name Service is a program designed for issuing and managing ownership of various identifiers, including domain names, Solana Pubkeys, URLs, Twitter handles, and IPFS CIDs.
Core Concepts:
- Name: A string that maps to a Program Derived Account (PDA) containing data.
- Class: A category for names. Each class has an authority (pubkey) that must sign for the issuance of names within that class.
- Owner: The pubkey that owns the name.
- Hierarchy: Names can have a parent name (identified by the parent's record address). Issuing a child name requires the signature of the parent name's owner.
- Data Control: Data within a name registry is controlled by the class keypair. If the class is set to
Pubkey::default(), the data is controlled by the name owner keypair. - Deletion: Only the owner can delete a name registry.