Verify · no account · nothing uploaded

# Check a receipt.

Paste a receipt, drop the file, or try the sample. The check runs entirely in this page: the signature first, then the school's books and seal when they're available.

Try it

Receipt JSON

Choose a file

**Check against a different public key**

By default this checks against the sample school's published demo key. Paste a school's key list to check its receipts instead.

Public keys JSON

Checking signature·Checking books·Checking seal

Results appear here. The check runs in this page; nothing is uploaded.

Questions about a receipt? Ask your school.

### What a pass proves, and what it doesn't

Proves

-   The receipt was signed with the named key.
-   It hasn't changed since it was signed.
-   The amount, date and Stripe record are as signed.
-   When the verifier holds the school's books: they hold the same event, and its month is sealed.

Doesn't prove

-   That the school delivered the hours.
-   That a state program accepts the receipt.
-   That the key belongs to the school, unless you got the key from the school or from Trifold.

## What this page checks

1.  **The shape.** The receipt has exactly the fields of a version-1 Trifold receipt, nothing missing, nothing added.
2.  **The key.** The key id the receipt names is one the school has published.
3.  **The signature.** An Ed25519 signature over the receipt's exact bytes (JSON with sorted keys). Change one character and it fails.
4.  **The books and the seal.** When the verifier holds the school's books (here, the sample school's), it makes the receipt again from the event in the books and compares, then checks the month's seal.

Run a school on books like these? [Get early access](https://trifold.app/early-access)
