Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Transfer a domain

See Domains for what a transfer conveys — mail-serving control of the domain, not the mailboxes that reference it — and why it’s a delegate-only operation. This page covers the sithbit domain transfer command.

sithbit domain transfer <domain> <new_authority> \
  [--keypair <delegate keypair>] \
  [--skip-preflight]

Arguments

  • <domain> (required) — the domain to transfer.
  • <new_authority> (required) — a bare address (or alias/keypair path the CLI can resolve to one) of the wallet that becomes the domain’s new authority. It does not sign: the new operator need not be online, and no signature from the outgoing authority is required either. It may be any wallet, including one that has never held a domain before.
  • --keypair <delegate keypair> — the delegate’s signing keypair. Required on every invocation: a signer that isn’t the postoffice’s standing delegate is refused with error 66, NotDelegate. Also pays the transaction fee. Defaults to your configured default keypair when omitted.
  • --skip-preflight (optional) — submits the transaction without a local simulation pass first.

This command requires the CLI’s domain feature, which is enabled by default.

What changes on-chain

Transfer rewrites a single field — authority — on the existing MailDomain PDA. Its is_active flag, rent_payer, and domain name are all left untouched, and no account is created or closed. Consequences:

  • The domain keeps serving mail without interruption; only the key that may sign SendMail for it changes.
  • Because rent_payer is unchanged, a later domain close still refunds the account rent to whoever originally funded it — transferring authority does not move the rent claim.
  • A domain must already exist and be program-owned to be transferred; transferring a domain that was never created is rejected.

Refused while listed

A domain with an open marketplace listing (domain list) cannot be transferred. Repointing the authority under a live listing would leave a stale holder recorded as the listing’s seller — able to collect the sale proceeds the moment a buyer paid for a domain they no longer own. The instruction carries the domain’s listing account read-only and refuses while a listing stands, with The domain has an open listing; cancel it before closing, transferring, or deactivating on stderr. The authority must cancel the listing first; then the delegate transfers.

Deactivation is the asymmetric case: requesting a deactivation proceeds while a listing is open — the delegate’s safety brake on a rogue domain is never blocked by a sale — and it is the purchase that then refuses while the deactivation timelock is pending. See Deactivate a domain.

Example

sithbit domain transfer sithbit.net maiLtdkxym8CCmo9TwDuXywqd9DXaK3tB6toKFVeBFR

After it lands, SendMail for sithbit.net must be signed by maiLtdkxym8…VeBFR, and that key earns the operator settlement share (see Economics). Confirm the new value any time with domain get, which prints the domain’s current authority.

Errors

  • NotDelegate (error 66) — the signing --keypair isn’t the postoffice’s recorded standing delegate. Transfer is a delegate-only operation, same as create and deactivate.
  • Transferring a domain that was never created, or is not program-owned, is rejected.
  • Transferring a domain with an open marketplace listing is refused; see Refused while listed above.

Note: don’t confuse this with handing over the postoffice itself — see Delegate and postmaster administration. domain transfer changes who administers one domain; installing a new postmaster or repointing the standing delegate changes who administers every domain in the deployment.

See also