Skip to main content

Address-bound signing

Sign once. Verify anywhere.

BTX detached signatures bind exact content to the ML-DSA key committed by a P2MR address. Anyone can reconstruct the address and verify key control without a wallet or private key.

P2MR · ML-DSA-44 · SHA-512

Post-quantum signatures

Create a durable proof for text or a local file with the ML-DSA key committed by your BTX address, or verify one without opening a wallet.

This proves exact content and control of the address-bound ML-DSA key. It does not prove a human or legal identity, balance, chain use, trusted time, current intent, or encryption. With no audience or challenge, the proof is indefinitely replayable. This code path reads files and signs locally without making an upload request. You still trust the hosted JavaScript and browser; compromised delivery or XSS could defeat that behavior. Secret work buffers are cleared best-effort, but JavaScript cannot guarantee physical memory erasure.
Signing wallet

Content type

Includes your confirmed balance and the chain height in the signed claims. Reading them contacts a BTX explorer with your public address only.

V1 · BINARY CLAIMS

What the envelope proves

JSON is transport only. ML-DSA directly signs a fixed BTX-DOCUMENT-SIGNATURE-V1 binary message containing a SHA-512 digest and length-delimited claims. The default two-leaf P2MR proof carries one sibling hash; any content, claim, address, key, proof, or signature mutation fails closed. This is not BIP-322 or btx-util verifyupdatesig.

LOCAL CODE PATH

Local by construction

This implementation reads content through browser APIs and makes no upload request. Hosted JavaScript and the browser remain in the trust boundary. The envelope discloses the ML-DSA public key and links the document to receive[0]; a dedicated signing address/index is preferable. It provides no confidentiality or trusted timestamp.