-
Notifications
You must be signed in to change notification settings - Fork 90
SIP-03X: BTC addresses for Stacks transactions #219
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
SIP-03X: BTC addresses for Stacks transactions #219
Conversation
|
|
||
| ## **Introduction** | ||
|
|
||
| sBTC is designed to make Bitcoin programmable and enable faster transactions, positioning it as a significant component in the growth of decentralized finance and payments on Bitcoin. However, the current Stacks-specific address format presents a barrier to adoption for existing Bitcoin users, who are accustomed to Bitcoin's native address formats. Building wallets to handle both stacks addresses and bitcoin addresses currently requires duplication of user interface components and send/receive user flows. The resulting user interfaces can lead to confusion and a less intuitive user experience. Other Layer 2 solutions have faced similar UX challenges. The core problem this SIP addresses is the user experience friction caused by requiring Bitcoin users to use a non-Bitcoin address format when interacting with sBTC. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Formatting: please use consistent capitalization ("bitcoin," "stacks")
|
|
||
| sBTC is designed to make Bitcoin programmable and enable faster transactions, positioning it as a significant component in the growth of decentralized finance and payments on Bitcoin. However, the current Stacks-specific address format presents a barrier to adoption for existing Bitcoin users, who are accustomed to Bitcoin's native address formats. Building wallets to handle both stacks addresses and bitcoin addresses currently requires duplication of user interface components and send/receive user flows. The resulting user interfaces can lead to confusion and a less intuitive user experience. Other Layer 2 solutions have faced similar UX challenges. The core problem this SIP addresses is the user experience friction caused by requiring Bitcoin users to use a non-Bitcoin address format when interacting with sBTC. | ||
|
|
||
| **The proposal is to enable the use of standard Bitcoin addresses (legacy P2PKH and native SegWit P2WPKH) for sending and receiving sBTC and other Stacks-based assets.** This would allow sBTC to look and function more like Bitcoin from a user's perspective, leveraging existing user familiarity and tools, such as bitcoin payment QR codes and payment flows. The goal is to make interacting with sBTC as seamless as interacting with Bitcoin on the base layer, thereby encouraging broader adoption. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If Stacks represented its addresses as Bitcoin addresses, wouldn't it be more likely that a user accidentally sends some BTC to a Stacks recipient? I think the counterargument to keeping the status quo is that Stacks has a different address encoding alphabet in order to make this a lot less likely. You can tell on inspection that a Stacks address is not a Bitcoin address (and vice versa), because Bitcoin addresses don't start with S and use base58 instead of Crockford-32.
|
|
||
| This SIP will be considered activated once the following conditions are met: | ||
|
|
||
| 1. **Updated Libraries**: Key Stacks developer libraries (e.g., Stacks.js or its successors) are updated to: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should probably commit to a list of these, so there can be a checklist for activation.
| * Accept P2PKH and P2WPKH Bitcoin addresses as input for transaction recipients. | ||
| * Provide utility functions to convert Stacks addresses to P2WPKH Bitcoin addresses for display purposes. | ||
| * Provide utility functions to resolve P2PKH/P2WPKH Bitcoin addresses back to Stacks addresses. | ||
| 2. **Wallet Adoption**: At least two major Stacks wallets have implemented support for: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you specify the set from which these two are drawn?
| * Displaying user account addresses in P2WPKH Bitcoin format. | ||
| * Allowing users to send sBTC (and other Stacks assets) to P2PKH and P2WPKH Bitcoin addresses. | ||
| * Implementing a warning mechanism (as described in the Specification section or similar) when sending sBTC to a Bitcoin address if sBTC support by the recipient cannot be confirmed. | ||
| 3. **Explorer Adoption**: At least one major Stacks block explorer is updated to: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there more than one "major" Stacks block explorer besides the one Hiro runs? Also, can the set of "major" explorers be enumerated?
| 3. **Explorer Adoption**: At least one major Stacks block explorer is updated to: | ||
| * Allow searching by P2PKH/P2WPKH Bitcoin addresses. | ||
| * Display account information using the P2WPKH Bitcoin address format as an option. | ||
| 4. **Community Endorsement**: The proposal receives positive feedback and endorsement from the Stacks developer community and key stakeholders, indicated by discussion on the Stacks forum and other relevant channels. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How might we measure this?
This PR adds a SIP that: