Skip to content
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

Support ECDSA Message Signing for Taproot Addresses and Support getNetwork #844

Open
ty-bt opened this issue Jan 22, 2025 · 8 comments
Open
Labels
enhancement New feature or request

Comments

@ty-bt
Copy link

ty-bt commented Jan 22, 2025

Story

Hello, I am trying to support the Xverse wallet in simple-staking, but during testing, I found that signMessage prompts "ECDSA is not supported for Taproot Addresses." Could you please help support ECDSA message signing for Taproot addresses? Thank you very much.

Also, is it possible to support getNetwork? Currently, I can only determine the network based on the address. Thank you!

@ty-bt ty-bt added the enhancement New feature or request label Jan 22, 2025
@secretkeylabs secretkeylabs deleted a comment Jan 22, 2025
@teebszet
Copy link
Member

Also, is it possible to support getNetwork? Currently, I can only determine the network based on the address. Thank you!

this is being worked on and will be shipping very soon

@emilcondrea
Copy link
Contributor

emilcondrea commented Jan 22, 2025

Can you clarify what do you need for ECDSA message signing for taproot?
There are 2 common ways of message signing

  • using bip322 and for taproot only schnorr signatures are supported by consensus/protocol
  • using bip137(legacy signing), for this to work the message needs to be signed with the public key derived from taproot address

If you are looking for bip137 I am curious which validation libraries you plan to use for message verification as most of them don't work out of the box with taproot.

@secretkeylabs secretkeylabs deleted a comment Jan 22, 2025
fedeerbes pushed a commit that referenced this issue Jan 23, 2025
* [ENG-6080] [ENG-5171] chore: Update the Receive screen copy

* Update SIP10 and BRC20 copy to SIP-10 and BRC-20
@steven-tomo
Copy link

@emilcondrea Babylon staking requires this feature. They need ECDSA message signing for verification.

@emilcondrea
Copy link
Contributor

We are investigating this.

@emilcondrea
Copy link
Contributor

emilcondrea commented Jan 27, 2025

Can you clarify why you need to sign with the Taproot address? In Xverse payment addresses use native or nested segwit. Taproot is only used for ordinals: https://docs.xverse.app/sats-connect/connecting-to-the-wallet/connect-to-xverse-wallet

So if simplestacking only cares about stacking bitcoin, using payment address is enough.

@steven-tomo
Copy link

@emilcondrea you can try the demo: https://babylon-staking.tomo.inc/.
okx wallet and bitget wallet can sign ecdsa message with taproot.
but xverse doesn't work.

@emilcondrea
Copy link
Contributor

It looks like it selects the taproot address which is only used for ordinals. During wallet connection it should choose the payment address. How is it connecting & fetching the address ? Can you point to the sdk?

Xverse uses a split address model where users have a native/nested address used for btc payments and a taproot address for inscriptions.

@emilcondrea
Copy link
Contributor

Inspecting simple stacking connector it looks it selects ordinals address on purpose.

So what is the purpose of the app? To stack ordinals or to stack bitcoin?
Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants