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.

“app is very feature poor”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
2502694e7e1df8a9a4e42f3078e5ec57e5230fef8a0e1b992f9e58bed70701c6
Signature (Ed25519, base64)
yVGa2V20wm4WQ9d1YJBbvh6G/3ZXIzg9p69aHHTC27Y7LxOi0kOWRr/i549w/VzUrvH8Iuoil2qfliWEZzNKBw==
Merkle root
97eb1062a862b99998bef0a84476eb3c3812bb77c2cb927f4fd2933b59da9e3d
Merkle path
["25041988442dccb3b9c8eadedc9cb0606906b641e0b103fc4b914d68447720c2","a253779f56bc8af5550135936e257af003b7a66cfd691d62d8411ac90a5e6024","1c2580ba056cec1afa591fc3a55d0eaa0ade582a52ecd430125e1994c2cae598","8cf0f09c4ad5eb0cd319f9753acb7f2fc7f24b2f4f310cfb8deec4cd59691f05","4c3eb36d8a1d7c3d49dae63a381a6294f9cb5722c184459e1229cd43739cbac5","fe5212072bbde652eab505260eac744d77046fd9d11e43025e3bd149c83afec0","3fbbeca1021003c7c676e3f272713cdaf372b17f90f89e5ab06cd22c5365fb80","35231bbfebc9182be19d844f39cc1359eb89580a9508108d48966d5e6659e27d","066c7ead0e49abbbf813738e37b6c1b5d47b82f880133f84fba8ecfb53d5ce19","c5afeb6060de4affa8df9d792c506df11fcda9d91393c080321273279b26f84a","6ffeaf8c3e10ba4ee4abdb58e6ef1e3f2f184cf2b9b0fba118ce1d00454b6f4a","7fc459298391904a3838099fd1a0b7e635c26503d7f861328c446e440a4bd8b4","5b47260d99d2c4ad6e0d963995c990c8506dbf10eb0b146a116c3fc6ba348071","a9559f2ca8536f2c18bf059f3f0099d62235a93ac35dc17b09967d392b72be7f","01242865574478f13dcf9d888236d7a907264abdb87f360db7db06de0945075a"]
Anchored
2026-09-11
Public log entry
search.sigstore.dev, log index 2789279696 · entry 108e9186e8c5677a3885…
Expected log hash
05c7009ecf7ce5cf315c252c2a1dd135e64989a02cacdaaa3c5a87412a2e921c 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":"v1789017464005","kind":"published-quote","locale":"en","page":"brand:xero","quote":"app is very feature poor","rating":2,"review_date":"2026-09-01","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.xero.touch","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 (97eb1062a862…), 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.