The Polkadot claims pallet verifies and extracts an ethereum address from an EcdsaSignature. Is there a similar implementation for doing this with an Sr25519Signature signed by a wallet using PolkadotJS?

The API for PolkadotJS is below

I'm curious if there are examples for implementing this directly inside of a Substrate runtime. I would like to take a raw signature and extract the public key account for verification.

1 Answer 1


As far as I know, in Schnorrkel/Ristretto x25519 or sr25519 it's not possible to recover public key from the signature. You need to know both public key and message to verify it.

This from schnorrkel repo:

In ECDSA, there are no known problems with using ecrecover and HDKD together, but using HDKD actually breaks both BLS signatures and the malleable Schnorr signatures that support ecrecover.. We therefore use non-malleable signatures that forbid ecrecover.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.