FIG. 1 Build the spending scenario
Draft a small transaction: N inputs, M outputs, the input being signed, the spend type and the sighash flag.
The desk assembles the exact BIP-341/BIP-342 signature message and hashes it with the TapSighash tag.
Transaction
Inputs
| # | txid (64 hex) | vout | amount (grains) | scriptPubKey (hex) | nSequence |
|---|
Outputs
| # | amount (grains) | scriptPubKey (hex) |
|---|
Spend type
Sighash flag
Digest COMPUTED LOCALLY
Sealed descriptor
Paste this into the Verify tab — any alteration flips the verdict to NOT PROVEN.
FIG. 2 Digest anatomy
The full walkthrough: every intermediate hash in preimage order, each with its exact preimage bytes and the hash step applied. Omitted components are shown as struck-through — ANYONECANPAY and NONE drop fields, they don't zero them.
Full preimage
Final digest — taggedHash("TapSighash", preimage)
FIG. 3 Compare two sighash flags
Two flags, one scenario, side by side. The desk shows which intermediates differ, which are dropped, and why — e.g. NONE zeroes nothing but omits sha_outputs; ANYONECANPAY replaces the four all-input hashes with this input's own data.
| Component | A | B | Same? | Why |
|---|
All seven digests on this scenario
| Flag | Digest |
|---|
FIG. 4 Sign & verify (BIP-340)
Sign the digest with a fresh or pasted key using BIP-340 Schnorr, then verify the signature. Keys never leave the page.
Signature BIP-340
Verify a signature
FIG. 5 Verify
Two independent checks. First, the desk replays the official BIP-341 wallet test vectors (all 7 sighash flags, byte-exact preimages and digests) live in your browser. Second, paste any sealed descriptor — the digest is recomputed and the verdict is PROVEN or NOT PROVEN, loud on tamper.
Official BIP-341 vectors — live replay
bip-0341/wallet-test-vectors.json, keyPathSpending[0].