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.

“You can make annotations, translate, change documents and keep on where you left easily.”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
833547bc5102b148cdbf7897b5ab5b100dd4f701d28a958e9dee0f36c8a6f88a
Signature (Ed25519, base64)
ZmHQ8wcIBYjklZo4nBqqgehgUmd3v52nPodhWzeWqPnsVr+HueQa+YSVZ/5yZg1AVUPtBGLCP0c/qfTbwwGMBA==
Merkle root
3030a3ea5b39192cafd732e0b397cfa387f40a2253f2715cd6a4d9d218dba468
Merkle path
["833552f02e2c1cb75493087d2b78f2c4e8bf3b297357a66bfeffa422f30e6067","b40d92957472faa8500ed40c3fdda2f24fd9785caa9a061561f5bba6bb8c3cea","f551761671718e7557915ab9f1373b94cade3fdf7707546dbe809c2ee5b71400","7e601bd719695e5da4a2e031ea6bb4d9b172ce4d0f5be36064d91a587b4e84b8","f580208e8cf3618ee2f796da86b17f7cbdf0c2d1723ad7c7f43d66423a305b60","351f28c3feb8c13df1b9703aec5c07cf7dd34bf6f180f94f6f897603acde70a3","e7caa238258d79f64afea4ae7986d988046ac73cbc57f92bd4f7e3526548be7e","07355ba56f786e2cc71027ec9266e7a30033030545643d7cc767679401610ae8","2c7b6c3faa48e4031c38af850480719253322c25271fada4b0078dec1ba00d3e","4e7a75fe81ecce49c4e0ea5ab37c15e151e6828c73e96c86ceaedc45bfc0e8df","7fcec3e5b1c9bad08cd05609ee7fda11c993b0b11ac72ca7d39da0f0064b1ce8","f8a88a886bc4f30a5d403a13dcf801b5897d09b21da479446a1a322e2ff576ef","e19c6eff657ea7d0ede33010cd88abb8a9e01c28c7b3ec485b702f7e37c24957","fa236bbf83f61e60a6b63c899666e78098c5b5cc95b126245f16085503380c3a","559fcf7745d7b07c729ccd960c18a4660eed501cde8669d27c3235203d371b20"]
Anchored
2026-08-19
Public log entry
search.sigstore.dev, log index 2514446349 · entry 108e9186e8c5677af084…
Expected log hash
901e903dca7784cbcc0b860ca8f2ae684aa8c7d566efb3654aface7bae409ccd 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":"v1787128322154","kind":"published-quote","locale":"en","page":"theme:xodo/fit/en","quote":"You can make annotations, translate, change documents and keep on where you left easily.","rating":5,"review_date":"2026-02-15","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.xodo.pdf.reader","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 (3030a3ea5b39…), 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.