Verify it yourself

Is this booking real? Check the math.

A VRP booking receipt is signed by the property's own domain and anchored in a public, append-only log. This page checks all of it — in your browser.

Paste the receipt below (guests find it in their booking wallet, behind “Copy receipt”). Your browser verifies the Ed25519 signature with native Web Crypto, recomputes the Booking Proof Chain confirmation reference, and checks the transparency-log inclusion proof. No crypto library is loaded and no server is asked to vouch — every step is recomputation.

Were you handed this proof — say, as a bank, card-issuer, or insurance reviewer assessing a dispute? You are the intended audience. A fabricated booking cannot produce a receipt that passes these checks: the signature must match the key published on the property's own domain, and the receipt must already be anchored in the public log. If the verdict below is green, the booking promise shown is what that property committed to, at the time it was committed. You do not need an account, a tool, or anyone's permission to re-run this check.

1. Paste the receipt

The property's public key is fetched from the issuer domain named inside the signed receipt (/.well-known/jwks.json), and the inclusion proof from that domain's log endpoint. Nothing you paste is sent anywhere — all fetches go straight to the property's own domain and the log, and all checks run locally.

What this proves

  • The receipt was signed by the property-owned domain's Ed25519 key.
  • The promise — property, dates, party size, exact total — was not altered.
  • The receipt's fingerprint is anchored in a public, append-only log: it existed then, and it cannot be quietly removed or rewritten.
  • No marketplace, registry, or central issuer is asked to vouch at any step.

What it does not prove

  • It does not identify the guest — receipts carry no guest name, email, or phone by design.
  • It does not prove service quality — only what was promised, by whom, and when.
  • A receipt carrying supersedes replaces an earlier one after a change (reschedule, cancellation); this page flags it so you can ask for the chain.