Skip to content
Verify a receipt · online · no account

Check a receipt against the ledger that issued it.

Paste a receipt or drop a .dsr file. We check its signature against our current published key, or the vault's own key if it brings one; a sealed receipt, its content hash. For eight of the ten receipt types we find it in our ledger and compare the prior hash we recorded, and for an R1 we recompute its score. No account, no install.

Every one of these checks runs on our servers, against our records, so this page is Déjà answering for Déjà. It is the quick check, and the only one that can see our ledger. For evidence that doesn't depend on us, run the open-source verifier on your own machine.

Runs on
Déjà's servers
Account
none
Receipt types
10
Size limit
2 MB
Rate limit
60 an hour
Keys tried
every key we publish, or the vault's own
Report
PDF and ZIP, unsigned
Independent of Déjà
no — use the CLI
The check

Check a receipt

What you get back

Seven checks, in order.

The first check that fails stops the run. The checks after it are marked not run, not failed, so the result says exactly where it stopped and why.

  1. 01

    Parsed

    A DSR/1.0 envelope carrying the eight fields every receipt has, from dsr_version to signature.

  2. 02

    Type recognised

    One of the ten receipt types this checker knows: R0, R1, R1-L, R1-N, R2, R2-F, R2-R, RV, RE and RG.

  3. 03

    Vault found

    The vault the receipt names exists in Déjà's records.

  4. 04

    Signature valid

    Ed25519 receipts against Déjà's current published key; a vault that brings its own RSA-PSS or ECDSA key, against that key. A sealed receipt carries a content hash instead of a signature, and the hash is recomputed.

  5. 05

    In the ledger

    Found in Déjà's ledger by its signature, with the prior hash the ledger recorded. RV and RE receipts have no ledger lookup, so for them this check is n/a.

  6. 06

    Tamper check

    The signed bytes rebuilt from the receipt and verified again. It repeats check 4 on the same inputs, so expect the same answer.

  7. 07

    Score recomputed

    R1 only: the confidence score, recomputed from the receipt's eight factors, matches the one stored. For any other type, and an R1 without its factors, n/a.

  • ✓ Checks passed

    Every check that applies held.

    Its signature or content hash holds; where its type has a ledger lookup, it is in our ledger with the prior hash we recorded; and an R1's score recomputes. A check that does not apply is shown as n/a, not as a tick.

  • ✗ Failed at a check

    Something didn't hold.

    The result names the check and the reason. Keep the receipt and the result, and check it offline with the CLI as well.

  • ◌ Could not check

    A limit of this checker.

    The receipt uses a canonical form this checker can't rebuild, or its envelope is missing fields that form needs, which we won't invent. That is not a finding about the receipt.

Two checks can come back n/a rather than ticked. The ledger check has no lookup for RV and RE receipts, and the score is recomputed only for an R1 that carries its factors. Nothing was checked, so nothing is claimed.

Trust model

A quick check, not an independent one.

What it checks

On our servers, against our records.

The signature
Against our current published key, or the key a vault registered with us. A sealed receipt's content hash is recomputed instead.
The ledger
For eight of the ten types, that the receipt is in our ledger with the prior hash we recorded. The CLI can't see this; only we can.
The signed bytes
Rebuilt from the receipt and verified again: a repeat of the signature check, on the same inputs.
The score
R1 only: recomputed from its eight factors.

What it trusts

All three are ours. That is the point of this column.

Our servers
The check runs there. You see the answer, not the work.
Our keys
The keys we publish are read from our servers' configuration; a vault's own key, from our database.
Our ledger
Asking whether our ledger contains a receipt means asking us.

What it does not do

The list that keeps the other two honest.

Replace an independent check
For that, run the verifier on your own machine against the key you were given.
Try a key we don't publish
It tries our current, trial and retired keys, and names the one that matched. A receipt signed with any other key fails here; the CLI checks it against whichever key you give it.
Verify an engagement
The engagement tab lists what is in scope. It checks nothing.
Sign its report
The PDF and the working papers are unsigned.
Keep your receipt
It is not written to our database. What is, is below.

The CLI's middle column is shorter. It trusts the key you were given, and nothing of ours.

What we keep

What a check leaves behind.

Each check writes one row to a verification log, listed opposite. The receipt itself is not written to our database. It is held in the memory of the server that checked it, and is gone when that server instance is recycled.

The two download links carry the receipt as well, encoded into the link, so the report and working papers can be rebuilt on a server that never saw your check.

Opening an engagement is logged against the engagement: which engagement, a hash identifying the auditor it was issued to, the audit tool you name, and how many receipts were in scope.

Both tabs allow 60 requests an hour from one address.

Written per check · verification log

Vault
The receipt's vault ID
Type
The receipt type
Signature
A SHA-256 of the signature, not the signature
Result
Passed, failed or could not check, and the reason
You
Your IP address, hashed with a salt that changes daily
Session
A random session ID
When
The time of the check
Which to use

This page, or the verifier?

PropertyThis pagedsr-verifier-cli
Runs onDéjà's serversYour machine, with no network
Keys it triesEvery key we publish, or the vault's ownThe key file you give it
Sees our ledgerYes, for eight of the ten typesNo — only the bundle you were given
Independent of DéjàNoYes
NeedsA browserAn install, or a build from source
ChecksOne receipt at a timeA whole bundle, or one receipt
Leaves youA PDF and a ZIP, both unsignedFor a bundle, a JSON report, unsigned
Best forA quick look, and confirming a receipt is in our recordsAudit evidence