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 really bad”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
5e99cdaf59f92edf65a6a50bcec9848ab2382dcd7ce42aad22d391c5dabde941
Signature (Ed25519, base64)
+PPBbrA8JE5SI5bxRf/BEkw11zeC0013bOEp/qMUlwKm1gWPp5PsK4KXhAPYS+ubbLVY8nt+Xb/aQkiqUAHQAQ==
Merkle root
ccae92ceb3dcfba104788424188fa34a8cb1410075ff6c1a21fa513e89f0c4fe
Merkle path
["5e994ac09cc33ca723891c8c523b97f5e2ba13c412acccc3f03927ee8269bbd9","1c901745c5ab51e69dce7e2ec27b26732d343329b58fbdabc084ce98d4b6461c","22426d8c1df0769ba8df8da4edbb775c9a80ec3faa150c1e6128139a5dc00924","cc21d3cfa200ef4c23b815164450d1d7da74f56f50df8128d02134254b4e1792","23c2dc02fea96ce7822e5efecb7175614d3df9c2e6467ef973f2fce3758529ff","26b6c049feaa79f0ea3dfba8f834da14162faed0dcdaad3868cd9b91c1365347","ee0365756634544314f4a703560d1c0c13035a30e56a8d6e598d2ceeec5f6a55","20cb601f64c70ade8a0062f95c37ca4fa7053c2d8a296a505f8ee65fa2c83177","44bcca58170fae99139b6f65de0c8c0820c1087978ce6bdb2be5f1a33e968e24","7e008cbc1149953209f25565e8e83d15dbcdd841ebc3678b9fd21a16b4781692","eb04dd4ceb9cf8f61254599672ffaeb6e65a3858818d1255d89ab344fb15d319","a65e1fff59bbca0acaa1928e3d506a68b31fa5241a153b5534e630145031559e","f7990b6d58a0125e363e1c2ccaf33e30b0b4839c002a218db24fff9488bf159e","818afa9b60a40d27c2e88a8e5f62585c079335588148aef8eef246906a1d9ee6","f73291c2ca924ce4b3764e4b6ff1da65a701069f04fad47c52c8b693a0ec7e41"]
Anchored
2026-08-19
Public log entry
search.sigstore.dev, log index 2515282333 · entry 108e9186e8c5677a6652…
Expected log hash
af455e73500113c158c8df9793eab703ff863c9c98fe38560752c9a1772810a8 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":"v1787139531268","kind":"published-quote","locale":"en","page":"product:acrobat/convert-pdf/en","quote":"this app is really bad","rating":1,"review_date":"2026-07-30","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.adobe.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 (ccae92ceb3dc…), 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.