This post is part of a larger effort to discuss potential features to be included in an upgraded version of BNS. Please see the megathread for more information.
Proposal: implement a mechanism for registration fees to be paid in sBTC
With the upcoming launch of sBTC, Stacks will have a native tokenized Bitcoin asset available for use in smart contracts. Using sBTC (in addition to STX) for registrations can bring BNS back to its Bitcoin-native roots, where all registrations were paid for with BTC.
Making BNS (the Bitcoin Name System) more Bitcoin-native is crucial to maintaining its dominance as the de-facto Bitcoin-based naming system.
There are a few ways this change could be implemented:
- Use some kind of “oracle” (such as one based on recent Stacking rewards) to determine the sBTC-equivalent price for a name
- Use only sBTC as the payment token for some or all namespaces, like
.btc
- Use sBTC as the underlying pricing token, but allow STX through an exchange rate
Regardless of whether this change is implemented, it will always be possible for a smart contract to “wrap” registration to allow registrations with sBTC. This contract would swap sBTC for STX and then immediately register the name.
While a swap-based mechanism at least partially reaches the goal of a more Bitcoin-native experience, it will have flaws due to the moving exchange rate of STXBTC. If a user knows they can always buy a certain name for an exact price in Sats, the user move an exact amount of BTC into sBTC. With a moving exchange rate, it’s possible for a registration to fail because the user doesn’t have enough sBTC.
A change to price names in Sats also wouldn’t be unheard of - the first versions of BNS had names priced in Sats. It wasn’t until the launch of Stacks 2.0, where there wasn’t a tokenized BTC asset, that paying for names in Sats was removed. Moving towards pricing in sBTC would simply be bringing BNS back towards its roots.