Try to break a receipt
Two minutes, five commands. Sign something, change one character, and watch verification fail.
The fastest way to see what a receipt is: make one, tamper with it, and check it again. Everything runs on your machine. No account, and no network after the install.
Needs Node.js and npm. macOS or Linux; Windows via WSL.
Install and initialize
npm install -g treeship && treeship initinit generates an Ed25519 keypair, the ship key. The private key stays on
this machine.
Sign something
treeship wrap -- echo helloThe command runs as normal, then Treeship seals a signed receipt for it. The
no active session warning is expected: this receipt stands on its own.
Break it
Open the receipt in any editor. It is the art_….json file in:
ls ~/.treeship/artifacts/Find the long "payload" value under "envelope". That is the signed record
of what ran: the command, its exit code and output hash, the time and the actor. Change any
single character inside it, or inside "sig", and save the file.
The fields at the top of the file (signed_at, key_id, digest,
artifact_id) are a local index for listing receipts. Verification ignores
them and reads only the signed envelope, so editing them changes nothing that
is checked: verify still passes and still shows the signed time, not the
edited one.
Verify again
treeship verify last✗ verification failed
outcome: fail
passed: 0
failed: 1
…
reason: invalid signature for key: key_…The command exits 1, so a script or CI job can gate on it.
What just happened
A receipt is an Ed25519 signature over the exact bytes of its signed payload, and its id is derived from those same bytes. Change one of them and the signature no longer matches. Nothing was asked of a server: the check ran on your machine, against a public key.
Take it further
- Check a receipt with no Treeship code at all.
treeship receipt export <id> --format jsonprints the signed message, the signature and the public key for any Ed25519 library. - Tampering matters most on someone else's machine. Verify a session package walks through checking a package you were handed.
- Know the limits before you rely on it: What a receipt proves.