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 can't use the app for my work now”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
229fdec4823517f3f6be091ed740e0623bd738226baec3c1b9eff71912835903
Signature (Ed25519, base64)
+dZWoNTffLRUiBhRHRW7GOExD8aDyNQz5cfrzM31te6HGdUXszGRsaufAUnlzf2aPnpcxCN95ZnJav3DCu/gAQ==
Merkle root
ab8d4de5853e13d360962f03dfb915842a42e1c5601cdaac4f2b37ad0ba96b78
Merkle path
["229f1200b487954880ec106717e6a5d51d0960b6fccb724d3bf2fc47265e43f9","432a2e585ab7a5d41aefedb0af0f735177243619774c81da52cabe7ca14a34a7","71a5e6288557db08909c1402eb95a0c817bc75db915c33f1a578e8e960ce5ccf","b41fec322b0ac1275f71ef5bd09917079545f18df2a08c5fa564b2eae85d9a85","61052db72b06bbe36d199d09f087d73915c48b1df23b4b3608ad9071ecb6e03b","8009f5d8cfb3d7784105d8e65c2634e1998e591bff79efd54f2d3f3f8fd4f253","7f678558ec7ea5342e451186e6ff49e679e757c69dd66489f3c723298314f27a","671677aa00e7aa29e6178b6501e1ec23909eb16c30897e43ff13671e24b3e06b","bafd9a132058ae47eda27baa26e8a12e00b3da0ac2030a7f80101e72396d3699","7e36cb106712bda476c8c8caf0ddf755539022a74c9abdc2b00a90a55103a005","df2fea832264de3af2216b44e205b061dc95cc9a14e294f66b51dbb027e708a1","1f4057a151ee201b828d97e6a824c448929adabf69bbc73546bb374356ffde97","b5d1a48b6642f5e918335ff168c322a90c6461c94c3bda6ded76ea663842f62f","6b7938d0463f2b633e195d7021170023360849e40ff5e64ffe0633d28e084f81","90ac6c76618b09f3702b50a6410c80828bbcb4ead0d9d85dda294a654717f483"]
Anchored
2026-10-09
Public log entry
search.sigstore.dev, log index 3162293789 · entry 108e9186e8c5677af0ef…
Expected log hash
49c1b9c7cf9c0180248092c94f6cb48d5e59f6c65f471decaa61f120e90874ce 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":"v1791539611981","kind":"published-quote","locale":"en","page":"brand:xodo","quote":"I can't use the app for my work now","rating":4,"review_date":"2026-08-10","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 (ab8d4de5853e…), 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.