Namespace Protocol

A name is no longer a handle.
It is a namespace.

Own artist.btc. Create shop.artist.btc, vault.artist.btc, and archive.artist.btc. Bitcoin L1 anchors the record. BNRP resolves the current state.

Permanent history. Current state. Latest valid inscription wins.
Explore names BNRP protocol

What is a namespace?

A namespace is a name that can organize other names beneath it. If you own artist.btc, you could create records like shop.artist.btc, vault.artist.btc, or prints.artist.btc. Each subname can point to its own address, avatar, inscription, website, or identity record.

On Bitcoin, these records are Bitcoin-native, not smart-contract subdomains. Each record is anchored to Bitcoin L1 through an inscription or Bitcoin-native record event, and resolved through BNRP.

Identity root

Your BTC-native name becomes the root of your public identity. One name. Every record beneath it.

Provenance tree

Subnames can carry records, ownership history, inscription links, and verification data, all traceable to the Bitcoin root.

Marketplace layer

Names and future subnames can be searched, verified, collected, listed, and traded on BTCNative.

One root. Many branches.

A parent name can become the root of an entire identity system. Each subname is independently resolvable, can carry its own records, and traces its provenance back to the parent on Bitcoin.

shop.artist.btc storefront
vault.artist.btc cold storage
prints.artist.btc edition drops
001.artist.btc token #001
archive.artist.btc provenance record

Subname issuance is a roadmap feature. Records shown are examples.

artist.btc namespace root
shop.artist.btc
vault.artist.btc
prints.artist.btc
music.artist.btc
archive.artist.btc

How to inscribe a namespace record

Every BNRP namespace operation is a Bitcoin inscription. You own the key. You control the namespace.

Own the root name

You must own the Bitcoin name inscription (e.g. artist.btc) in a wallet that can inscribe. UniSat wallet supports this.

The inscription must be in the wallet you will inscribe from. BNRP validates ownership by checking the current holder of the name inscription.

Build the event JSON

Use the tool below to generate the correct BNRP event JSON for your operation (register a subname, update records, revoke, or delegate).

Every event must include: p: "bnrp", op, name (your root name), nonce (must be higher than your last accepted nonce), and v: 1.

The nonce must strictly increase. Use the "Fetch nonce" button in the tool to pull your current nonce from the live BNRP resolver.

Inscribe on Bitcoin

Go to UniSat Inscribe. Select "Text" mode.

Paste your BNRP event JSON exactly as generated.

Set content-type to application/json.

Inscribe from the wallet that holds your root name.

After confirmation (1-2 blocks), the BNRP indexer will pick it up automatically.

Verify

Use the namespace dashboard on this page or call GET https://api.bnrp.name/v1/names/yourname.btc/namespace to confirm the record was indexed.

The /history endpoint shows all events. The /current-record endpoint shows the latest valid state.

BNRP does not hold your keys. Records are on Bitcoin. You can verify any record by looking up the inscription on ordinals.com.

Build a BNRP event

Select an operation, fill the fields, and copy the ready-to-inscribe JSON.

Shared fields

Set your name's public identity records. This is how resolvers display your avatar, name, and addresses. Inscribe from the wallet that holds the root name.

Use an Ordinal inscription ID. Format: txid...i0
Handle only, no @ symbol.

subname_update changes the records for an existing subname. It does not change the owner.

Revoking a subname removes it from the active namespace. The inscription remains on Bitcoin permanently, but BNRP will mark this subname as revoked.

A delegate can register and revoke subnames on your behalf. They cannot transfer your root name. Delegate rights are tied to this address until you inscribe a delegate_revoke event.

This removes the currently active delegate. The delegate_revoke event must be inscribed from the wallet holding the root name.

JSON output (live preview)
{
  "p": "bnrp",
  "op": "subname_register",
  "name": "",
  "sub": "",
  "to": "",
  "nonce": 1,
  "v": 1
}

Inscribe this JSON with content-type application/json from the wallet that holds your root name.

Namespace dashboard

Enter a name to see its namespace status, active subnames, and event history.

Namespace policy

Namespace policy controls how subnames are authorized, updated, and revoked. Policy is set by the parent name owner.

Locked
Locked subnames

Subnames remain active even if the parent changes ownership, unless the subname owner updates or revokes them. For long-term identity records and communities.

Expiring
Expiring

Subnames require periodic renewal or reauthorization after parent transfer. For time-bounded namespace grants.

Subname policy affects user trust. Do not enable transferable or locked subnames without clear rules and user education. Always verify policy before relying on a subname.

Trust and verification

When interacting with namespaces and subnames, be aware of these trust states.

Unauthorized subname

This subname is not authorized by the current parent owner. Do not trust records from unauthorized subnames.

Revoked subname

This subname has been revoked by the parent owner or subname holder. It no longer resolves as active.

Parent transferred

This subname was created before the parent name changed ownership. Verify the namespace policy before trusting this record.

Stale resolver data

Resolver data is stale. Reverify before purchase or interaction. Stale data may not reflect the current owner or record.

Delegated manager active

This namespace uses a delegated manager. Review delegate permissions before interacting.

Newer inscription unauthorized

A newer inscription exists, but it is not authorized by the current owner or delegate. The previous valid record remains active.