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.

“It's free, easy to use, and has all the features I need”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
6a34b0d68aeb5e78a9f9f462f09bf418ab9c7ffded256819be76633395411cdf
Signature (Ed25519, base64)
+QIVqHPo/KcUyabOh0CkpCIeVJnynkYl2uXmsZCn7lfTpKG71YwFO3muRGjTSBW+6tg5W2k+3vKO3xbah+b4DA==
Merkle root
7252afe559009950531df937e7edc9bd1c57cf28a24ed7f6c6613b65f459eae4
Merkle path
["6a3637e5722dd9a44f0d7602dc10b4ff3e321c097e5caa1677a7aa690ae23ae1","91e1561276993ee0825a8bc933194a54e04fc417287cd33d0302dc5d039a312a","bd909e7b6a045399340123eda160170599709ce639216f7ea6dbffd70fb85ef3","58a596df62e60d94662fc1ab6d756d2452d83ac19183f4d338c7dae6d88fa32b","0989d1a5291566c502571cf54d7eeb9ee572133b1bbfd31fc4c84a33009fc6b2","cf3e3b18d029fb87689c76f8146a2b3760cfb00d24b7e1af79f016333bf93436","3780eb775b711d6854efa35fb684c7fb3451edcca5bb3ff41f304106dfbdb414","85d868366f98a99a78e5604470a2f2d9755f758dc06e32d1a16cfadb362e1a53","188aedc07f05c56a11d0b53f6f8e23034f7a2d8429355da3b69bde42f0b2cdd7","d2831d67eaf4f3686dace303e10d8acc1c0de268db70b46b61261479e6f791aa","cd249592084e780a35e0081c2f83b2d7e98c25f9aa204178a806acfc1ff1d41c","88302dd5ebc2ba0cc663e042fe6c41ecfe1897521b7123ddb032f75e20d92142","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/price/en","quote":"It's free, easy to use, and has all the features I need","rating":5,"review_date":"2026-07-25","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.