Skip to main content
For registry pricing and lease lifecycle (initialize registry, purchase, renew, claim expired), use the registrar commands.

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

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-cli nameservice init-root <root_name> [OPTIONS]
root_name
string
required
Root segment to manage (1-64 characters)
--name-service-program
string
Override base name service program address
--registrar-account
string
Explicit registrar account address; derived from the root name if omitted
--authority
string
default:"fee payer"
Authority that can manage subdomains under this root
--proof
string
Hex state proof for registrar account creation; auto-generated if omitted
--fee-payer
string
default:"default"
Signer for the transaction
Example:
thru-cli nameservice init-root thru

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-cli 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
--name-service-program
string
Override base name service program address
--domain-account
string
Explicit domain account address; derived if omitted
--owner
string
default:"fee payer"
Domain owner pubkey
--authority
string
default:"owner"
Authority that can manage the domain
--proof
string
Hex state proof for domain creation; auto-generated if omitted
--fee-payer
string
default:"default"
Signer for the transaction

Manage Records

Append or delete records on a domain.
thru-cli nameservice append-record \
  <domain_account> \
  <key> \
  <value> \
  [--owner <owner>] [--fee-payer <fee_payer>] [--name-service-program <program>]

thru-cli 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
--owner
string
default:"fee payer"
Owner pubkey authorizing the record change
--fee-payer
string
default:"default"
Signer for the transaction
--name-service-program
string
Override base name service program address

Unregister Subdomain

Delete a subdomain under a registrar or domain.
thru-cli nameservice unregister-subdomain \
  <domain_account> \
  [--owner <owner>] [--fee-payer <fee_payer>] [--name-service-program <program>]
domain_account
string
required
Domain account address to remove
--owner
string
default:"fee payer"
Owner pubkey authorizing the unregister
--fee-payer
string
default:"default"
Signer for the transaction
--name-service-program
string
Override base name service program address

Resolve and List

Fetch domain metadata and records.
thru-cli nameservice resolve <domain_account> [--key <key>] [--name-service-program <program>]
thru-cli nameservice list-records <domain_account> [--name-service-program <program>]
domain_account
string
required
Domain account to inspect
--key
string
Record key to fetch when resolving
--name-service-program
string
Override base name service program address

Derive Addresses

Helpers to compute deterministic addresses.
thru-cli nameservice derive-domain-account <parent_account> <domain_name> [--name-service-program <program>]
thru-cli nameservice derive-registrar-account <root_name> [--name-service-program <program>]
thru-cli nameservice derive-config-account [--thru-registrar-program <program>]
thru-cli 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)
--name-service-program
string
Override base name service program address
--thru-registrar-program
string
Override thru registrar program address for config/lease derivations

Common Flow

  1. Use thru-cli registrar initialize-registry and purchase-domain to create a .thru lease (see Registrar Commands).
  2. (Optional) Register subdomains with thru-cli nameservice register-subdomain.
  3. Manage and query records with append-record, delete-record, resolve, and list-records.