Quote verification

This proves the quote below is recorded by Citatio exactly as displayed and has not been altered since it was committed and anchored. It documents Citatio's crawl observation; it does not imply endorsement by the source platform. The quote links to the original review.

“I’m very disappointed because this app charged my account ₱399.90 without my permission or authorization.”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
0cd0bfc33db4e2e77ad5e2aada9cca1623fa4b26176e26bc5fffcb90d12fc9cd
Signature (Ed25519, base64)
kJp6TiidrcxCjA+qhB4XThCmDud+4DBJKIQuusWP2r6o5IR8fONuV4AzjO06TaYDWRnIl9UhjzKumrqHuwwDBQ==
Merkle root
cc9af896bdf0beb88857e1dcc841c404ccd4c59cbcb6932f17077fc8aa87fc23
Merkle path
["0cc42c28d7c277e3e5c878d0a559740ed12a12d454de6dcd01f895f2904f01ca","1ac41aa8060aea4ad59e296a20f2a52cb1f3d8df150f14e3df6658fcdb1efb2b","127d5c9027252e15cb914d8c60771674499ab28af6afabe5297cb207ace4d3d9","7e81ab30f06c38b01ac16570d8c143ba4acef3250a09a878abb754b187957da1","63e1788471db7d5e73e46155686555e351e3dd1da33e0e3f82bade029677083f","fedbd82400c420e7817d2a00a2a02a4de65a4cf909bb8c53c4dc31046557f249","0246fc22746760124c11b5cd75d8b166ab72ad6ff32281141ea5f1c8420bc628","128f0e2da60abfe4a99e62a5db91f12e1660ba9897a2532733e05dabb49e302d","0ea4803f7728f53a983fb67ec55c7588364acaf0e3c637135c2ae365a1e40162","3031aafa0e6c082e413fe6ed9bc80f2cc95191b3ab0073c2af3fa222b70647cf","fecc5e9e30221291003d1a993aa8910b3659fa173cafcfbd67671f76ab66d39d","1c2809e47d2975b766ef995b7d10124aac0516db86022be7da7348399138c170","4372dc9da9497fee58c424202bb40227ff1140a098c2b49beac2f4c4ae9a0331","0f351cde6b1d9915cc0e417c0e2f1f0e3b04741e1975a4ad546a8eefeb399e09","7e6c62c2991c7cac05134c9f9e2ab89c75f6106f706f524eb2e9fa9f554216f5"]
Anchored
2026-08-21
Public log entry
search.sigstore.dev, log index 2542751096 · entry 108e9186e8c5677aaab3…
Expected log hash
8251ea19feed4cbe325f48ba93f0e47294878633f5d43178e4a3a023547e795b The log entry's spec.data.hash.value must equal this value: the SHA-256 of the Merkle root string above. Recompute it yourself from the root to confirm.
Canonical record
{"dataset_version":"v1787281943761","kind":"published-quote","locale":"en","page":"theme:proton/billing/en","quote":"I’m very disappointed because this app charged my account ₱399.90 without my permission or authorization.","rating":5,"review_date":"2026-08-12","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=ch.protonvpn.android","v":1}

Verify in the public log

  1. Open the Rekor entry (pre-filled with this proof's log index).
  2. In the entry, compare spec.data.hash.value with the "Expected log hash" above: it is the SHA-256 of the Merkle root string (cc9af896bdf0…), which ties this proof's root to the log entry.
  3. Decode spec.signature.publicKey.content from base64: it must equal Citatio's published key at /.well-known/citatio-signing.json.
  4. The entry's integratedTime is the independent timestamp: the root, and with it this quote, existed no later than that moment.
  5. Locally, without any Citatio infrastructure: SHA-256 the canonical record (must equal the record hash), verify the Ed25519 signature against the public key, and fold the hash through the Merkle path (sorted-pair SHA-256) to reach the anchored root.