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 tried multiple times on different days, and I even cleared the cache, but it still doesn't work.”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
2071269ac5583cc561b377e9d7e004bd6046457b05a42b8f07aba0d1afef6f46
Signature (Ed25519, base64)
9tcGdhSAHVjm3kp9XlJ/IVH7vLa5AmJTCskSputmiTPIfOkIvKOYzqoZupm6XPYPSsIhfS/TOkioKT5YTLDaBw==
Merkle root
8af5f2f3f65c47a75dcdddbf363e3e76b22d37f4e953d150fcfa3e84bb04dba5
Merkle path
["2069112222aca33953544c66f19ebe56ded7253e454a5dd082b79e86410bb4c6","19f012bc030bf804c2f038479227d8091017d8075425730682cd1488c2e259a9","d5ddf124124b2270f290ac78a3618347173d20da5035f4fcb064bfa6a95884cd","e00726a68f17d8689dbc7cb8e69bb7c6efe6cf077660979bf4307235f2d89047","a4379908e47f92e0a351e451f1d335297b6cf5172eec674deac64f5427a43f19","9de1872acf8b4534520f30c26ace6850a56df89e65288fd37ce4929a38f3002b","22709f5f1ec61ad4c883e6bb9a3d698dac9c7fdecc3d81a77715590c766b4929","62c416fc24579b77baed0782c9e67f337b7e15797c599573d1dff5f6cc2b3860","8829a353fef7e06e983a31a969a64d1b88c0f3859ff4cd8b4b4b88e3502885bb","0ff4dccb3fc9dd1b67a491058d8dff675dff6582010d8572b06c7bdc1d73ce56","cf3fd672f99fd3a12c561632c0bc7eef648128cb12006c0c959d1eb66b0780a0","69e0b278fde36472d775b547f81c80ab6a46676326bfbd973817b55dc3255d09","2df4d836b73633f71fa96faafac3d9d32f00951d180b99885afa9511763f7b1f","2212eb5ff51e97198ac2cd6542275dfcf712b9be9a8fab294a9bf844689bcee1"]
Anchored
2026-10-14
Public log entry
search.sigstore.dev, log index 3247835674 · entry 108e9186e8c5677afded…
Expected log hash
306cff230c51a4aeee6711c8f2603eb2af6985e8dc9f5dc959efafe3398b8caf 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":"v1791944613264","kind":"published-quote","locale":"en","page":"brand:freshbooks","quote":"I tried multiple times on different days, and I even cleared the cache, but it still doesn't work.","rating":1,"review_date":"2026-05-28","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.freshbooks.andromeda","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 (8af5f2f3f65c…), 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.