Generate BLS 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 BLS Signature enables you to create BLS (Boneh-Lynn-Shacham) signatures using the BLS12-381 pairing-friendly curve. BLS signatures are a cryptographic primitive that enables signature aggregation—multiple signatures can be combined into a single compact signature, significantly reducing verification overhead in blockchain systems. This is critical for applications like Ethereum 2.0 validator signatures, threshold signatures, and cross-chain verification. The tool takes your BLS private key (32 bytes) and a message (text or hex), hashes the message to a point on the G2 curve, and computes the signature on the G1 curve. It also derives and displays the corresponding public key (G2). BLS 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 BLS12-381 curve, which is the standard curve for BLS signatures in modern blockchain applications.
HOW TO USE
Connect your wallet using the BGWallet connector (required for context). Select the BLS curve (currently BLS12-381, the standard for most blockchain applications). Choose the message format—"Text" for plain text messages or "Hex" for raw hex-encoded data. Enter your BLS 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 BLS Signature" to compute the signature and public key. The tool displays your private key (masked), the message, the derived public key (G2), and the BLS signature (G1). Both the signature and public key are displayed as hex strings with a 0x prefix. You can copy the signature or public key to your clipboard for use in smart contracts, off-chain verification, or threshold signature schemes.
TECHNICAL MECHANISM
This tool implements BLS signature generation using the BLS12-381 curve and the bls12-381 JavaScript library. The private key is a 32-byte scalar in the field Fr. The message is first hashed to a point on the G2 curve using a cryptographic hash-to-curve algorithm. The BLS signature is then computed as the G1 point that is the private key scalar multiplied by the G2 point (the hash of the message). More formally, if H(m) is the hash of the message on G2, the signature is σ = sk * H(m), where sk is the private key. The public key is PK = sk * G2, where G2 is the generator of the G2 group. The tool automatically derives the public key from the private key and the generator. BLS signatures are unique and deterministic for a given private key and message, enabling signature aggregation by summing multiple signatures. The library handles the elliptic curve operations, including point multiplication, pairing checks, and hash-to-curve functions, all within the browser. All computation is performed locally using WebAssembly for performance, with no data sent to external servers.
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 BLS curve variants or schemes beyond BLS12-381. 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.
PLEASE NOTE
This tool is designed for developers working with BLS signatures on the BLS12-381 curve, which is the standard curve used in Ethereum 2.0, Filecoin, and other blockchain protocols. BLS signatures are deterministic, meaning the same private key and message will always produce the same signature, unlike ECDSA which requires randomness. This determinism makes BLS signatures suitable for threshold signatures and aggregate verification, but also means that the private key is critical—it must be kept absolutely secure. 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 in the G2 group and the signature is in the G1 group, following the standard BLS convention. The tool uses WebAssembly for performance, ensuring that elliptic curve operations run efficiently in the browser. Always verify signatures using a trusted BLS verification library before relying on them in production systems.