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.

“this app is so powerful and easy to use”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
698d310162118f5a7d565bba17171c9c6dc38bd25496e3181161e6a1448c5352
Signature (Ed25519, base64)
rQsrdRPWHkWAhLqqBeR283X6s8zII1heE1horHY8fr+sj/QNQ3Mz1hfrAVZlTIsGaQCrfBAbTLZf3Uu9mMIJDQ==
Merkle root
3e1c67438f658ba7fd015e6979c1bfd82d90efb0848cecbd4d902d6b2ed171d3
Merkle path
["69875242550b9f8952b119a6961b3bc4986f57e727917c0142898953b4eb00aa","86a700cb9d69d3c6f5174ff1081615daff083e012b8ae87735e0c714899eb28e","cbad977ea466ab130ab770a98da94c9801b85d14792c1498dd90111772c81aec","4d99aba0805310c4f689517b5c968ee2b319715c5d4b063a3c54f86fe14b2659","0c3a9dec2edb44056f95748997ffb141929f87a305306971b07e152e579d8b09","3fd59503c5ded09ecc59067f425ebb32dcab23769b2a287226559b9f29e8d327","ae2bdd6fcb83cadba295cf663f5a3e6db8c7f8e560cf8eedf2993d710f3e71e9","804116565796a7b45c3fce520e20c1682c0a0e47caded473f20f474266d67967","d2a50574a86bc8b78afef6396466e5d5a972b15a6f91bf5752aa6fc578806197","bf2b134c4b3ee26d7270b71bc815a7dde124d0b28886904773b30ae213b0aa73","746854386f8f12bbd3256a032f840493051d001850691719276a200b1fe9063c","8795cc9548a27d4792f561ed0be236baf1443f07eafb28127c878d07543db8bb","985842e3b7b7b05d065d3478b9548322db9ef51189928c897e184837afc0a836","16ce5ef98bea97aaac8d473cbc69dd111bbc7f7387aea9596c8bffc373b8312d","db72b82118c1e08b77018004fa72584377d6eccdc4c75ec19bef6a78273f75c9"]
Anchored
2026-08-20
Public log entry
search.sigstore.dev, log index 2524810465 · entry 108e9186e8c5677af074…
Expected log hash
129b219cb6155ac24569a579c61e8fc9cc2d89305732944b8849d5e719dfd073 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":"v1787193927339","kind":"published-quote","locale":"en","page":"product:xodo/pdf-editor/en","quote":"this app is so powerful and easy to use","rating":5,"review_date":"2026-07-11","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 (3e1c67438f65…), 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.