.btc domains are live!

Hey everyone,

Today I registered muneeb.btc and changed my Twitter name to muneeb.btc. Marvin has been working on the .btc app for some months and looks like it’s stable enough for community members to register domains.

What are .btc domains?

.btc domains are registered through a smart contract on Stacks. You can see the smart contract deployment here. It’s 917 lines of code written in Clarity language. The smart contracts runs on the Stacks chain, which has full smart contracts, and all transactions automatically settle on Bitcoin.

How .btc domains work?

Let’s look at an example name registration. Let’s say you wanted to register muneeb.id. You will:

  1. Send a name-preorder transaction to the BNS smart contract. This transaction will contain a hashed name (argument called “hashed-salted-fqn”, fqn means fully-qualified-name). All Stacks transaction settle on Bitcoin i.e., every Stacks block has a corresponding Bitcoin block and Stacks block hashes are broadcasted on the Bitcoin main chain by miners. A single hash on Bitcoin can contain thousands of Stacks transactions. This is how you scale operations.

  2. After your name-preorder transaction has enough confirmation, you will send a name-register transaction that reveals the name you registered. You include the name (e.g., muneeb) and the namespace (e.g., .btc) in this transaction. An example transaction is below:


Stacks transactions follow the probabilistic finality of Bitcoin i.e., once enough Bitcoin blocks have passed since the Stacks transaction that settled on a Bitcoin block then the Stacks transaction is considered (probabilistically) final.

You can learn more about the BNS contract here.

Benefits of .btc domains:

The benefit of this approach is that all additional data about smart contract language and data on registered domains is kept outside of the main Bitcoin chain (avoids spamming the main BTC chain) yet it benefits from the security of Bitcoin. To rewrite the history of Stacks, an attacker will need to rewrite Bitcoin blockchain history, which is extremely hard (almost impossible) to do.

You also don’t need to modify the Bitcoin main chain to introduce smart contracts. Such modifications cannot realistically happen given Bitcoin is durable/immutable and does not drastically change.

With the capabilities of Stacks, a relatively simple 917 lines of code implemented decentralized domains functionality. For those who remember Namecoin, Namecoin had to fork Bitcoin and run an entirely separate chain (merged mined with Bitcoin) to implement such functionality. With the design of Stacks any developer can deploy new types of smart contracts without the need to fork Bitcoin or run separate chains. Stacks transactions automatically settles on Bitcoin and smart contracts on Stacks automatically see all BTC state and can react to it and make it programmable.

What’s next for .btc?

We’re at an early stage of the .btc domains. Right now you can either directly interact with the BNS smart contract and register a domain or use a decentralized web registrar btc.us to register. With btc.us you are in control of your keys and can pay for the domain either in USD or using cryptocurrencies.

You can also set your zone file to redirect a subdomain like muneeb.btc.us to your favorite traditional DNS domain. You are of course trusting the owner of btc.us for the redirection in that case.

It’d be great to have .btc domains integrations with browsers like Brave and Opera (which have integrated other decentralized name systems before). Eventually I’d love to see direct support for .btc domains in web browsers so you can bypass the DNS system and directly use these domains, powered by Bitcoin!


I preordered (tx confirmed) two domains before I realized I could only register 1 domain per account. The registering transaction for the second domain has failed. When I try to preorder the second domain from another account, I get an error saying it’s unavailable. Is there any way for me to get the second domain now? I tried transferring the first domain away from my main account and registering the second domain from my main account but it didn’t work.

1 Like

.BTC App Update:

  • The .BTC app was released yesterday. The thought was we could have a small community focused launch. Muneeb has a fair amount of reach so when he tweeted it out we started seeing incredibly high volumes in the app and particularly with USD payments.
  • There was a lot of network traffic with many transactions in the mempool, and the way the registrar was working with them and the payment processor caused some nonce issues requiring rebroadcasting the transactions.
  • There were also some UI updates, particularly around multiple name registrations per address.
  • Folks that registered via credit card and BTC payment ran into some more issues than those that went the fully STX route.
  • This is not traditional DNS, they are decentralized and won’t work as DNS. We appreciate all the feedback and use thus far!


  • We updated UI to make it harder to register multiple names via the same STX address. BNS has guidelines of one address per name. Perhaps we can update that moving forward — but folks that registered multiple names to one address will not receive multiple names to that one STX address. They will be refunded.
  • We temporarily paused new registrations on the app.
  • We started to replace-by-fee the older transactions to help them go through the queue.
  • Refunds will likely be processed by early next week (we increased the timing so that we could try to get folks the names they registered).

There are a lot of corner cases to USD and BTC payment options. While many folks successfully registered, we have a number of transactions that have not yet fully registered and their name transactions are in a queue. Outlining some potential situations below:

  • Folks tried registering multiple names from one address via credit card or BTC payment. The majority of these folks will be automatically refunded.
    • There are some corner cases in which instance folks may have tried to register multiple names via credit card or BTC payment and the name would have been associated with a different address. In this instance, some names might have been registered by the payment processor and will need to be manually transferred out. Hiro can assist. This is likely a minority of users. Please email [email protected] if you don’t see a refund by early next week.
  • Folks that paid via STX transactions alone might have successfully sent the pre-registration tx that includes the name burn fee (2 STX). In some instances their second required name registration tx might not go through — in which case they are out 2 STX. Hiro can assist. Please email [email protected] if you sent the pre-registration and don’t see your name by early next week.

Next steps:

  • Please hang tight. We’re here to help via [email protected]. Please be patient as it was a very small team! We hear you! We’re working on getting TXs through and we’ll get through the support queue by early next week. We can’t guarantee that names will be registered, but we want everyone who is interested to get their names.
  • We are growing stronger as a community through this small grassroots launch. We all remain on the same page — we’re bitcoiners and early adopters and can build the future together. The Stacks ecosystem is stronger due to independent developers and projects like the .BTC app coming to life and we’re excited to smooth things out moving forward. Thanks everyone.

Hi Gina! My successful USD purchase of grok.btc has been pending for 8+ hours now. I understand you guys are overloaded by the demand and will be patient. Please let me know when you sort this out. Thanks :slight_smile:

Here’s a screenshot-

1 Like

Hi Grok! Thank you for bearing with us, I guess it’s a good issue to have (hehe…). The backlog is slowly clearing up but what basically happened was that more people ordered than the payment processor could process in time. It should get there eventually. If you don’t have it by tomorrow or so then please reach out on Discord.

Hello Gina,

I created a Stacks wallet via Chrome and opened several accounts and bought several .BTC domains, it has been about 40 hours from my first purchase and none of the domains are in any of my accounts.

Additionally I do not have any confirmation (e-mail nor any other) of the purchase, nor have a historical within the account of any of any of the transactions. Will this be updated soon to include these features? It’s a little worrisome that we cannot see any trace of the domain/transaction performed.

I purchased more than 1 domain with the first account prior to the restriction being enforced by your system update. I understand only the first one will clear and the others will be rejected and the money be refunded. Will we be given a chance to register the rejected domains in a different account prior to being offered again in the market?

Thank you!


Hey Alex, sounds like you paid via USD is that correct? This is a fully decentralized system so we’re not able to “hold” names per se, but we are working on getting transactions through the queue to successfully purchase the names or not so that things can proceed and money refunded.

Hello Gina,

I appreciate your answer although I’m not clear on it. Even though I paid with USD I presume that on any account where I bought only 1 domain, the transaction will be executed and I will be the owner of the domain(s)? If this is not the case how could we trust the system and stacks?

I presume your answer was related to the additional domains purchased under 1 account prior to your system update and not related with all purchases done in USD under a unique account/domain. Could you please clarify?

Thank you!


Just want to confirm. I successfully purchased a domain using USD. Got payment confirmation, but had not shown up in my account. My domain should show up as the backlog is cleared. Is that correct?

Just want to confirm as well. I set up several accounts and purchased one .btc name for each account via fiat gateway through stripe. I am currently not seeing any of the accounts showing the new domain registration. I am guessing they have been delayed as others are experiencing. Just want to know when this backlog should be cleared and we will know whether the domains have been transferred?

Hello Gina,

I just wanted to provide an update that it has been +48 hours since my first purchase and none of the domains appear in any of the accounts. Could you please let us all know what is the status? I am a bit concerned at this point as I invested a lot of time carefully selecting the domains I wanted to purchase. All the transactions that I purchased the first day have cleared my bank.

Thank you


Hi all,

I want to add my example as well. I bought a domain paying by credit card in USD but even after 48h nothing happened. the transaction of purchase has been accepted and money left my bank. Don’t want the refund, just the domain. How long should I wait in order to get it?
thanks for your help

Good day!
I’ve received the domain. Thanks.
But From 4 registered (miners.btc, your.btc , etc) got the juice.btc - the weakest. Does somebody choose names ? Is there any way to choose name that I want ?

Hey all - USD orders have been backlogged but should be making their way through the queue and faster now. In most instances folks will be refunded for additional names that they tried to purchase from the same Stacks account. In some corner cases, the names have been successfully bought and can either be transferred or refunded. Please email [email protected] and we’ll get back by early next week! Thank you.


Hello Gina,

Thank you for your answer. To update the community, from all the domains purchased in USD (more than 100) I have been confirmed 68% of them so far. Now that the system only allows stacks and although the process is a bit cumbersome, they are confirmed much faster!

Gina, I have two questions

  1. Is there any way to see which domain was ordered with a specific account that used USD as a payment? I don’t find a way of doing so.

  2. When using the STX payment process there are 2 steps, the first “Preorder” and then “Register”. Once the preorder is approved, is there any way of seeing which was the domain approved on that preorder? Haven’t been able to do this either.

Thank you


1 Like

Hi Gina,

Good afternoon, I bought my domain name early in the week and it has been more then 72 hours and I have not received the domains name that I bought using my debit card. I read through your explanation here and I understand with a small team things can be challenging but would you be able to provide a timeline on when you expect this to be resolved? Thank you in advance.


Hey Gina, this is now showing up in my Account page now, it’s been more that 72h, happy to keep waiting, just wanted to confirm something didn’t change on my end

Screen Shot 2021-06-07 at 20.29.34

Update: Paid with fiat, 1 domain only

1 Like

Same here!

Paid with fiat, 1 domain only.


Hello All,

Just wanted to provide an update, from the domains purchased (+100) with FIAT, I have received 95% of them so far.


1 Like

Any update on best practices for setting up domain redirects? Tried the basic and advanced ways (with different .btc addresses) and still can’t redirect via .btc.us for either. Thanks!