Namespace Delegation BNRP-IP-13

Sub-registry Delegation

Delegate namespace control to an operator. Issue subnames at scale. Maintain root security.

01

What is a sub-registry?

A name like company.btc is a namespace. The person who holds that inscription UTXO controls the entire *.company.btc space. They decide who can hold a subname, what the rules are, and whether to charge a fee.

A sub-registry operator is an address that the root owner designates to issue and manage subnames on their behalf. This is useful for collections, organizations, teams, and any scenario where a single owner does not want to sign every individual subname registration. The operator can issue subnames, but cannot transfer the root name or override security-critical operations.

The root owner retains full override authority at all times. By default, inherit: false is in effect: if the root name is ever sold or transferred, all subnames under that namespace are invalidated and the new owner starts with a clean slate. This protects buyers from inheriting unknown subname obligations. Setting inherit: true explicitly allows subnames to survive a transfer.

02

Roles and capabilities

Capability Root Owner Sub-registry Operator Subname Holder
Register subnames Yes Yes No
Revoke subnames Yes Yes No
Set namespace policy Yes No No
Transfer root name Yes No No
Override operator actions Yes No No
Delegate to operator Yes No No
Revoke delegation Yes No No
Update own subname records Yes If authorized If permitted by policy
Transfer own subname Yes If authorized If permitted by policy

Yellow entries depend on the namespace policy set by the root owner.

03

Inscription schemas

Two inscription operations control sub-registry delegation. Both are BNRP-protocol inscriptions that must be signed by the root owner's address.

namespace_policy — set mode and subregistry config
{
  "p": "bnrp",
  "op": "namespace_policy",
  "name": "company.btc",
  "nonce": 1,
  "v": 1,
  "policy": {
    "mode": "delegated",
    "subregistry": {
      "operator": "bc1p<operator_address>",
      "fee_sats": 10000,
      "fee_address": "bc1p<fee_address>",
      "max_subnames": 10000,
      "inherit": false
    }
  }
}
delegate — point to a specific operator address
{
  "p": "bnrp",
  "op": "delegate",
  "name": "company.btc",
  "nonce": 2,
  "v": 1,
  "to": "bc1p<operator_address>"
}

To revoke delegation, inscribe a delegate_revoke op from the root owner's address. The nonce must be strictly higher than the previous inscription.

04

Security model

Root always wins

The root owner can override or revoke any sub-registry action at any time by inscribing from the address that holds the root name UTXO. No operator action can supersede a valid root-owner inscription.

Clean slate on sale

When inherit: false (the default), all subnames are invalidated if the root name changes hands. The new owner is not encumbered by any subnames issued under the previous owner.

Operator cannot transfer root

A delegated sub-registry operator can issue and revoke subnames but has no authority to transfer the root name inscription. Only the address holding the root UTXO can do that.

Inherit flag is explicit

Setting inherit: true must be an explicit choice by the root owner. It is never the default. When set, subnames survive a transfer and remain valid under the new owner.

Revoke at any time

The root owner can inscribe a delegate_revoke op to immediately revoke the operator's authority. Any subname operations by that operator after the revocation block height are considered invalid.

Nonce strictly increases

Every inscription op for a given name must have a nonce value strictly higher than the previous. This prevents replay attacks and establishes an unambiguous ordering for all namespace operations.

05

How resolution works

When resolving a subname like user.company.btc, the BNRP resolver follows this sequence:

1
Resolve company.btc to its current namespace policy. Read the subregistry.operator field.
2
Check whether a delegated operator is set. If the mode is delegated, both the root owner and the operator address are authorized signers.
3
Look for a subname_register or subname_update op matching the label user, signed by the root owner or the delegated operator.
4
Apply the latest-valid-wins rule. The newest authorized, unrevoked, conforming inscription with a strictly increasing nonce is the active record.
5
If inherit: false and the root name has changed ownership since the subname was issued, the subname is invalid regardless of its inscription state.
06

Manage your namespace

Connect your wallet to manage your namespace
Connect to view your .btc namespaces, check their delegation status, and generate inscription JSON for policy changes.
Connected address
bc1p…
Your Namespaces
Fetching your names from BNRP API...
07

Protocol status

Draft
BNRP-IP-13 is in draft. Spec is open for comment on GitHub. Implementation is in progress. Do not use for production high-value operations without independent verification.

Related specs: BNRP Resolution Protocol  |  Subname issuance  |  Full spec on GitHub