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.

“Receipt scanning in is still a very clunky process”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
5786c774c23fe6e1fe9d332864cc23c8165adbce17caf179b08b719727c92950
Signature (Ed25519, base64)
dJxqSTHtOwMnunuX3koO8To1z5H/dg2RiAKE4mkNNb8B0Z//If0NUHREU88Sq3BWrwHciM3Zo2FV3IorPjXBBQ==
Merkle root
b9a08f9d6d76dd148110a496219c42cf3205c6f982800d84d5c85d77e9461e02
Merkle path
["5785ba31c14fc4463bc21d8d890c04a80c430665f23a29ff2702dfb202090f8c","c2d44525d09e0d960ae74372ece1750826a46f2fdab27d158bb04ccab3a92d8c","d4d4b45ee90e2f65cc48d0c261c63398346cd007a0f54ce6cdd623695337fb46","f9f21ada6a5d12f59f4dad0fd944aa96f1cc1e05afd5a5edd0c6077bca3ee83c","81202e663307a13ed4905d35128b4383a6cfc4785944b0c386be3cb4ea7ed7f7","6a6114e3db9040762673f5e4ab27bcf738fa64e1841524da38267b889ed1fc36","86bfa782826880a8d47f292adb15252ef9503072689b2bd5cbbc7866d06e9736","63361e057001b525d1aaf70bd1a4d577829d7403a737e427b1976fb541209eb4","77f80de4362f4f772f5d6552f1b46a300d7687a44cd8de78615c14cf70af8012","766bb4cfe333eac1737cecd6265d097df60f473fc80a54e7c8c7e0a78563296c","87d389c83fd89e992a96d0b9792dec0eff9c6544ae6310a697648d3aba29323d","0197d988959ac12f7d8946ff2581c88b7ba9a4305193828cca53fbbb9832a064","bcc0d977b8ab2060a87584efe5d0f5545e840726716d3f02c248db108122259f","6c299608515c69a03540be35865f96ca4932f3e0403f8f39fb0e1c2e2aedffb4","43a562d6822dab12c673c1efa0a3171d1ef69b949f676fb01847e1e5b56274de"]
Anchored
2026-09-22
Public log entry
search.sigstore.dev, log index 2907673729 · entry 108e9186e8c5677a06ea…
Expected log hash
bf9a74000249ba6e66b1e29aae9d8cb95c3400dc118569a80e5c0949f3e8ac62 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":"v1789969984102","kind":"published-quote","locale":"en","page":"theme:xero/fit/en","quote":"Receipt scanning in is still a very clunky process","rating":5,"review_date":"2026-01-16","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 (b9a08f9d6d76…), 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.