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 might use it 10x's a year to view or print PDFs, so no need to pay”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
8451280c30c938fda120f52f1dc47547fd97ba324e82206567f8a39584c54c34
Signature (Ed25519, base64)
xdw8DQNKKVi3qr1dQM5bzyngxAOQTK744QCwzRHQI/elLY5fJV8hClc5kkr0Q38NMOqrXBZIdUj+hjQeQBqVAg==
Merkle root
7252afe559009950531df937e7edc9bd1c57cf28a24ed7f6c6613b65f459eae4
Merkle path
["8456db57b4a9b8453a826d2aacb915312833b5b767121aa177274a35434866e9","71ad471e1915703db107b204f5882e48eaeb9efd60c6c9175cac3954749bbbc2","a3dcdf1da838c58ba61cda88f7c862e023aa3aac998c5126bf56a01978f8516e","13038d7c34cd374509e3e5e32fa6351c3d20d857d33d44260882adfaa2b845ea","64f1a8bead0d9035c02f6dd940af72fcf26c8ba34ed61e8b4f131aadac32b616","38a3f8a1da7a741c373a978f93a195aa9e9733bbe8e634933b984ef906177fa4","6ed228ac5998c8b122f1eb194c07afcd31f6997014b1508da428fc8e5ca9172c","62547edd659b72cbd35fab5fe1560403ad670838917704c27b04d6a38c9e6a6f","dba906b0aa14da15403c42c8e5fd781ea399ca9bbd15e5c00ee8803a44359428","276112ed3ec288d3d8266d55ee77d1ab12032a2fbc8095e63e9e9469f54bba45","8a0ba17a80e62b1e74e5d3633192b4b5893ce87f797d802fd8caafff2b95ef94","7b2ede7fed4ecaea7ff7b3eb3ec387cad1e85984fe541137d35323b3882188e1","18e11e10db085a7803eedbaae6a5cc4bc15224b70fb84f50d498979bf8156746","cd4fda8dbbc96e358ebf0ecb75fa543c15a1f0707b57959166ff1973bb1b4136","b3900b15a2a9b7aa805b691ce86e29db39e03d547238a84a3c0fff4fc2daa54a"]
Anchored
2026-08-21
Public log entry
search.sigstore.dev, log index 2543383844 · entry 108e9186e8c5677a6025…
Expected log hash
65212d488cd7bdd0d67aebdd70bfc57f4b622fa08b8179427635d69eb7ec385b 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":"v1787285599851","kind":"published-quote","locale":"en","page":"theme:xodo/billing/en","quote":"I might use it 10x's a year to view or print PDFs, so no need to pay","rating":1,"review_date":"2026-02-23","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 (7252afe55900…), 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.