Sign and verify in your browserno install required.
Generate a ghost identity, pick a ring, sign a message, and produce the same trailer block the CLI produces. Everything runs locally — your secret never leaves the page. When you close the tab, the identity is gone unless you exported it.
Generate a fresh keypair locally. Your secret is a random 256-bit scalar and never leaves this page. Public key is derived deterministically.
- keypair generated
- public key derived
- ready to sign
What stays in the browser.
Secret keys never leave the page
Identities are generated client-side via Web Crypto. We have no API endpoint that receives secret material. If you don't export it, it's gone when you reload.
Same crypto as the CLI
lib/lsag.ts is a port of the CLI's signer with identical wire format. A signature produced here verifies in the CLI and vice versa — bit-for-bit reproducible.
Rings are public
Picking a ring from the registry only loads its public members and ring root. The ring's deterministic ring root means the verifier can prove the ring you used without trusting our server.
Demo, not git
This is for showing the protocol. Real git commits still need the CLI because git binary signs the actual commit object — but the trailer block produced here is real LSAG output.