Generate Schnorr Signature
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Generate Schnorr Signature enables you to create Schnorr signatures using the secp256k1 elliptic curve, the same curve used by Bitcoin and Ethereum. Schnorr signatures offer several advantages over ECDSA, including linearity (enabling signature aggregation), provable security, and simpler verification. They are increasingly adopted in blockchain systems like Bitcoin (Taproot) and various threshold signature schemes. The tool takes your private key (32 bytes) and a message (text or hex), generates a Schnorr signature following the BIP340 standard, and derives the corresponding public key. Schnorr signatures are deterministic and can be aggregated, making them ideal for systems where multiple parties need to provide signatures that must be verified efficiently. The tool uses the noble-secp256k1 library for cryptographic operations, ensuring compatibility with the Bitcoin and Ethereum ecosystems.
HOW TO USE
Connect your wallet using the BGWallet connector (required for context). Select the elliptic curve (currently secp256k1, the standard for Bitcoin and Ethereum). Choose the message format—"Text" for plain text messages or "Hex" for raw hex-encoded data. Enter your private key as a 32-byte hex string with a 0x prefix (64 hex characters). Enter the message you want to sign in the text area. Click "Generate Schnorr Signature" to compute the signature and public key. The tool displays your private key (masked), the message, the derived public key, and the Schnorr signature. The signature follows the BIP340 Schnorr signature scheme, producing a 64-byte signature (R and s components). You can copy the signature or public key to your clipboard for use in applications requiring Schnorr signatures.
TECHNICAL MECHANISM
This tool implements BIP340 Schnorr signature generation on the secp256k1 curve using the noble-secp256k1 cryptographic library. The private key is a 32-byte scalar in the field modulo the curve order. The message is hashed using SHA-256 and then signed using the Schnorr signing algorithm. The signature generation process involves: (1) generating a random nonce k deterministically from the private key and message; (2) computing the public nonce R = k * G; (3) computing the challenge e = H(R || PK || m); (4) computing s = k + e * sk (mod n). The signature is the pair (R, s), encoded as 64 bytes (32 bytes for R, 32 bytes for s). The public key is derived as PK = sk * G, where G is the generator of the secp256k1 group. The tool automatically handles the encoding and formatting of the signature and public key as hex strings. All cryptographic operations are performed locally in the browser using WebAssembly for performance, with no data sent to external servers. The tool supports the BIP340 standard, which is used in Bitcoin's Taproot upgrade and is becoming a standard for Schnorr signatures across the blockchain ecosystem.
WHAT IT CANNOT SEE
This tool cannot verify that the signature was generated from a trusted private key—you must ensure the private key is kept secure and is authentic. It does not support key derivation from wallet addresses; you must provide the private key directly. The tool cannot generate signatures from wallet-connected accounts directly; it requires explicit private key input. It does not support all elliptic curve variants beyond secp256k1. The tool cannot recover the public key from the signature alone without additional parameters; the public key must be derived from the private key or provided separately. It does not support aggregate signature generation from multiple messages—it only signs a single message. The tool cannot verify the signature without the corresponding public key and the original message. It does not support hardware security module or secure enclave signing; all signing is done in software in the browser. The tool cannot guarantee that the private key is securely handled or stored; private keys are processed in memory and should be kept secure by the user. It does not support non-standard Schnorr variants or schemes beyond BIP340.
PLEASE NOTE
This tool is designed for developers working with Schnorr signatures on the secp256k1 curve, which is the standard curve used in Bitcoin, Ethereum, and most blockchain applications. The tool follows the BIP340 Schnorr signature scheme, which is the same standard used in Bitcoin's Taproot upgrade. BIP340 signatures are 64 bytes (R and s components) and provide linearity, enabling signature aggregation and threshold signatures. The private key must be exactly 32 bytes (64 hex characters) and is sensitive data; never share it with untrusted parties. The public key is derived from the private key using elliptic curve multiplication. The tool uses the noble-secp256k1 library, which is a high-performance, pure-JavaScript implementation with WebAssembly acceleration. Always verify Schnorr signatures using a trusted BIP340-compatible verification library before relying on them in production systems. The tool is read-only and does not broadcast to the chain; it is intended for off-line signature generation and testing.