Name Service
For registry pricing and lease lifecycle (initialize registry, purchase, renew, claim expired), use the
registrarcommands.
Prerequisites
Section titled “Prerequisites”- CLI setup with keys and RPC endpoint configured
- Name service program ID available (defaults to config value)
- Fee payer funded for signer costs
Command Overview
Section titled “Command Overview”Init Root Registrar
Section titled “Init Root Registrar”Set up a base registrar on the name service program for a root (for example, thru). The registrar address can be derived automatically from the root name.
thru nameservice init-root $root_name [OPTIONS]root_name · string · required
Root segment to manage (1-64 characters)
string
Override base name service program address
string
Explicit registrar account address; derived from the root name if omitted
string
Authority address for root management, formatted as a 46-char ta... address or 64-char hex pubkey.
Key names are not accepted. Must match the fee payer address because only the fee payer signature is included.
string
Hex state proof for registrar account creation; auto-generated if omitted
string
Signer for the transaction
Example:
thru nameservice init-root thruRegister Subdomain
Section titled “Register Subdomain”Create a subdomain under a parent registrar or domain. The CLI can derive the domain account address from the parent and name.
thru nameservice register-subdomain \ $domain_name \ $parent_account \ [OPTIONS]domain_name · string · required
Subdomain segment (1-64 characters)
parent_account · string · required
Registrar or parent domain address
string
Override base name service program address
string
Explicit domain account address; derived if omitted
string
Domain owner address, formatted as a 46-char ta... address or 64-char hex pubkey.
Key names are not accepted. Must match the fee payer address because only the fee payer signature is included.
string
Authority address for subdomain registration, formatted as a 46-char ta... address or 64-char hex pubkey.
Key names are not accepted. Must match the fee payer address because only the fee payer signature is included.
string
Hex state proof for domain creation; auto-generated if omitted
string
Signer for the transaction
Manage Records
Section titled “Manage Records”Append or delete records on a domain.
thru nameservice append-record \ $domain_account \ $key \ $value \ [--owner $owner] [--fee-payer $fee_payer] [--name-service-program $program]
thru nameservice delete-record \ $domain_account \ $key \ [--owner $owner] [--fee-payer $fee_payer] [--name-service-program $program]domain_account · string · required
Domain account address
key · string · required
Record key (<= 32 bytes)
value · string · required
Record value (<= 256 bytes) for append-record
string
Owner address authorizing the record change, formatted as a 46-char ta... address or 64-char hex pubkey.
Key names are not accepted. Must match the fee payer address because only the fee payer signature is included.
string
Signer for the transaction
string
Override base name service program address
Unregister Subdomain
Section titled “Unregister Subdomain”Delete a subdomain under a registrar or domain.
thru nameservice unregister-subdomain \ $domain_account \ [--owner $owner] [--fee-payer $fee_payer] [--name-service-program $program]domain_account · string · required
Domain account address to remove
string
Owner address authorizing unregister, formatted as a 46-char ta... address or 64-char hex pubkey.
Key names are not accepted. Must match the fee payer address because only the fee payer signature is included.
string
Signer for the transaction
string
Override base name service program address
Resolve and List
Section titled “Resolve and List”Fetch domain metadata and records.
thru nameservice resolve $domain_account [--key $key] [--name-service-program $program]thru nameservice list-records $domain_account [--name-service-program $program]domain_account · string · required
Domain account to inspect
string
Record key to fetch when resolving
string
Override base name service program address
Derive Addresses
Section titled “Derive Addresses”Helpers to compute deterministic addresses.
thru nameservice derive-domain-account $parent_account $domain_name [--name-service-program $program]thru nameservice derive-registrar-account $root_name [--name-service-program $program]thru nameservice derive-config-account [--thru-registrar-program $program]thru nameservice derive-lease-account $domain_name [--thru-registrar-program $program]parent_account · string · required
Registrar or parent domain address for domain derivation
domain_name · string · required
Domain segment (1-64 characters)
root_name · string · required
Root segment (for registrar derivation)
string
Override base name service program address for derive-domain-account and derive-registrar-account
string
Override thru registrar program address for derive-config-account and derive-lease-account
Common Flow
Section titled “Common Flow”- Use
thru registrar initialize-registryandpurchase-domainto create a .thru lease (see Registrar Commands). - (Optional) Register subdomains with
thru nameservice register-subdomain. - Manage and query records with
append-record,delete-record,resolve, andlist-records.