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: allow a Stacks principal to own more than one name
The current BNS contract requires that any Stacks principal cannot own more than one name at a time. For users that wish to own more than one name, this requirement results in a user experience with more friction. BNS users use various workarounds, including scripts and using multiple addresses, to custody multiple names.
Additionally, the single name requirement adds significant limitations or difficulties to the ability for smart contracts to be built on top of BNS.
There are various arguments in favor of keeping the âone name per addressâ rule:
Providing a âcanonical nameâ
Only allowing an address to own a single name simplifies the answer to determine what the âcanonical nameâ is for a given address. For apps like wallets, there is a benefit to this simplicity and can result in reduced confusion. When an address owns more than one name, this becomes more complicated.
Counterargument: To preserve the ability to determine a âcanonical nameâ for a given address, a new version of BNS will provide a contract-based mechanism for keeping track of an addressâs âprimary nameâ. Addresses with one name will have this set automatically, and addresses with multiple names can call a method to update their primary name. Functionality will be included to automatically update an addressâs primary name in the case that the primary name is transferred.
Reducing âname squattingâ and other speculative use cases
A separate argument in favor of preserving one-name-per-address is that it makes it harder for speculators and name squatters to buy and own many names. The argument is that such behavior worsens the overall utlity of BNS, because it makes it harder for non-speculative users to own their desired name.
Counterargument: Regardless of arguments about whether speculation is good or not, the truth is that itâs not possible to build an open and permissionless system while preventing this behavior. Many users already utilize many workaround to the one name requirement, and can use tools to automate bulk registration and name management without friction. Apps like Gamma have demonstrated the ability to build marketplaces despite the challenges that the single name requirement adds. Protocols like BNSx further demonstrate the ability for abstractions to work around this requirement.
References:
- SIP issue 37
- (links to other discussions needed)
