What is Bitcoin Name System (BNS)?

General Wallet Use

15 min

Bitcoin Name Service (BNS), like the website domains we know today, are designed to make navigating crypto and web3 easier. Users can now interact with the Bitcoin blockchain and Stacks ecosystem using easily readable .btc domain names instead of long strings of letters and numbers.

If you’ve ever tried to type a long, complicated wallet address, you know why BNS is an important innovation. As more people understand BNS, it’s becoming an integral part of the crypto and web3 experience. Ultimately, BNS simplifies complex alphanumerical wallet addresses, organizes them in a decentralized name registry, and makes interacting with the decentralized web simple.

What is BNS?

The Bitcoin Name System (BNS) is a protocol for creating user-friendly names that people can understand to interact with the blockchain. This gives users complete ownership of their blockchain identities in a simpler and more usable way. BNS names are registered through a smart contract on Stacks, which is a Bitcoin L2, and can look similar to a web address. For example, you could register a .id, .stx, or .btc domains

BNS names have three key characteristics of global uniqueness, human-meaningfulness, and strong ownership.

  • Global Uniqueness: BNS names are completely unique, ensuring no two people register the same name and creating conflicts for identification. 

  • Human-Meaningfulness: They’re also human-meaningful and easy for people to understand and remember. Think of usernames on social media or website domains.

  • Strongly Owned: BNS names belong to the user, meaning only the owner can change what the name does.There is no need to trust a system administrator to control an identity.

BNS names are special because they have these three important qualities. Other types of name systems used in the current web have some of these attributes but not all. Website domain names are unique and human-readable, but not strongly owned. Git clients are human-readable and strongly owned but not unique. And a Pretty Good Privacy (PGP) key, which is a public encryption key used for email, has global uniqueness and is strongly owned, but it is not readable. 

This new kind of name system for cryptographic keys is really useful for all sorts of things, like making sure identities and wallet addresses can't be stolen, preventing conflicts in software projects, and making it simple for people to share their public keys securely.

In the Bitcoin Name System, names are organized in a special way — think of it like addresses organized in a big directory.


  • Namespaces: These are like DNS top level domains or the biggest categories in a directory. They control things like how much it costs to register .btc names and how long the name lasts before you have to renew it.

  • BNS names: The unique names people register, like social media usernames or website addresses. They're stored directly on the blockchain, which you can think of as directory entries in our analogy.

  • BNS subdomains: Think of subdomains as smaller categories inside the main ones. These are not stored directly on the blockchain but are connected to it. 

Each part of this organization has its own rules and properties, like whether the name has to be renewed and who gets the registration fees. Overall, this system makes it easy for people to create and manage their own names in a secure and organized way.

How Does BNS Work?

Subdomains in the Bitcoin Name System (BNS) offer a way to manage names more efficiently. Unlike regular BNS names, which require costly blockchain transactions for updates, subdomain records are stored off-chain. Subdomains are cheaper and faster because they're bundled into batches and broadcast to the BNS network together. 

The BNS node's consensus rules ensure that only valid subdomain operations get stored. Subdomains are linked to BNS names through something called DNS zone files and every subdomain has its own state and public keys.

To understand how subdomains work, imagine "verified.podcast" as the main BNS name. Inside it, you might have subdomains like "1yeardaily.verified.podcast" or "2dopequeens.verified.podcast." These subdomains would be managed with separate private keys from the main BNS name. 

When the owner makes changes to a subdomain, like updating its address, the changes update the DNS zone file and anchor it to the blockchain with a transaction. This ensures the integrity and security of the subdomain operations without slowing them down.

Subdomains have their own lifecycle, starting with creation and potentially involving updates and transfers. Each operation is carefully ordered and verified to prevent conflicts. For example, if two conflicting updates are detected, the one recorded earlier in the blockchain is accepted.

One of the best benefits of subdomains is how they simplify usernames or application-specific identifiers. Developers can run subdomain registrars to help users register and manage their subdomains more conveniently without sacrificing ownership.

Subdomains are also compliant with decentralized identity (DID) standards, providing eternal identifiers for public keys. 

Each subdomain has its own unique decentralized identifiers, making it easy to resolve and manage identities across different systems. This means BNS domains could become a universal login across many platforms. Instead of having separate usernames like we currently do for things like email, social media, and banking, DIDs can maintain security and uniqueness across the entire Bitcoin ecosystem.

How Can I Register for a BNS Name?

Registering a BNS name is simple through the website. Just visit the website, check if the name you want to register is available, and claim it. The process is similar to picking a username for a social media account or a website domain. 

Once you've chosen an available BNS name, follow the steps to buy and register your new BNS name using STX tokens. The process should involve linking your Stacks wallet, providing some details, and making a payment. 

It’s important to note that, like website domains, BNS names can expire. This means they should be renewed. Their expiration block is determined by the namespace. For example, .id names should be renewed yearly and .btc names every 5 years. Make sure to check that any BNS names you own do not expire. If it’s time to renew, you can do that here.

Why are BNS/.btc Names Good for Web3 Users?

BNS (Bitcoin Name System) and .btc names are an advantage because they simplify user experience. If you have a .btc name and you want to send STX peer-to-peer or access a dApp, you can simply share a handle that’s short and sweet rather than a complicated, long wallet address. 

Essentially, it’s like having a username for your digital assets. This not only makes the wallet experience easier for users to understand, it can also help reduce errors and mistakes. This is especially true for anyone who feels frustrated with the sometimes complicated user experience of crypto.

BNS names the simplicity we know with social media usernames to blockchain. Plus, BNS names are globally unique, meaning no \two people can have the same name. They also remain a very secure, censorship resistant, and reliable way to interact with the decentralized web. 

A global naming system als promotes interoperability and integration across various decentralized platforms and protocols. By creating a standardized naming system, BNS can allow seamless communication and interaction between dApps, fostering a more connected and cohesive decentralized web.

Connect to web3 applications built on Bitcoin with the Leather browser extension. Install Leather – the only wallet you need to tap into the multilayered Bitcoin economy – today.