Writing, with receipts.
When text is cheap to generate, the scarce resource is a verifiable record of how it was created.
Folio is a desktop writing app that keeps that record as you write: a timeline of the composition, the sources behind each claim, the passages an AI wrote that the author chose to disclose. Publishing produces a portable receipt. This page checks one, in your browser, with no server involved.
This one is a demonstration receipt with a constructed timeline, genuinely signed so every check here is real. Verify one of yours:
drop a .receipts.json here, or
.
When text is free, the record is the value
A clean final draft used to be evidence that someone thought. It is not anymore, because a clean final draft is free. What stays scarce is the record of the work itself: the drafts, the sources checked, the argument that changed along the way.
Folio keeps that record as you write, then signs it. Not to prove what you did not do, an unwinnable game, but to keep the receipts for how the piece was made. Receipts of thought, not proof of innocence. The record is the asset.
It is for anyone whose work is doubted by default. Writers whose voice gets mistaken for a model's. Students and teams asked to show their work. Publishers who want a stated basis for trust before they put their name on a piece. The receipt is the author's to publish, and anyone can verify it here.
What a valid receipt proves and does not prove
- it proves
-
- Nothing in the receipt was altered after signing: title, text, timeline, disclosed AI passages, sourced claims.
- The composition checkpoints were recorded in order, and none was edited or removed later.
- The text shown is the text that was signed.
- The embedded C2PA-aligned content credential carries its own valid signature and names the same text and the same key as the receipt around it. This page verifies that credential's signature and bindings itself.
- it does not prove
-
- Who holds the signing key. A key belongs to a machine and its owner, not to a verified identity.
- That the timeline reflects honest work. A determined author could compose elsewhere and record a tidy history before signing.
- That undisclosed text is human-written. Disclosure is the author's choice; the receipt binds what was disclosed, not what was not.
A receipt is a signed account of how a piece was made, offered by its author. It makes tampering after the fact evident. That is the whole claim.
Once this page has loaded, verification consults no server: it runs entirely in your browser. You still trust your browser, and whoever served this page, to deliver that code faithfully. Read the source.
How to read a receipt
- Signature
- One Ed25519 signature covers the receipt's fields: the schema and timestamp; the post title, URL and hash; the ranges labeled AI-written; the sourced claims; the timeline chain; and the embedded C2PA-aligned content credential's signature value. This page then verifies that credential in full: its own signature over its own canonical form, and that it binds the same body and the same key as the receipt around it. Changing any of it without re-signing makes verification fail.
- Timeline
- A hash chain over composition checkpoints. It keeps them from being reordered or edited after signing, without publishing the drafts.
- Text match
- A hash of the text. The words shown here match the receipt's hash of them.
- AI disclosure
- Ranges labeled AI-written in the receipt, signed alongside everything else, shown in place as masking tape.
What each check verifies
For readers who want the mechanism. Each row is one check from the card above.
| Check | What it proves | Primitive |
|---|---|---|
| Signature | None of the receipt's signed fields were altered | Ed25519 |
| AI disclosure | Ranges labeled AI-written are signature-bound | Ed25519 |
| Content credential | The embedded C2PA-aligned credential is signed by the same key and names the same text | Ed25519 over RFC 8785 |
| Timeline | The composition checkpoints were not reordered or edited | SHA-256 chain |
| Text match | The bundled text matches its hash | SHA-256 |
Written in Folio.
A desktop writing desk that keeps the receipts. Mac and Linux.
Get Folio