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.

“the app feels overloaded with ads”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
7ceb78cd0bef1d6bd8cc2f128a2d8b549cdcafe72827252002d9181ee7ba2686
Signature (Ed25519, base64)
nY889/u5dP7iQth4WY36Mg9WCtzlpO4MVoqjbL1slbtRfGD2aZRsR8+NJ3t2dydhIUgth1qrwnk2pyJwZtpRCA==
Merkle root
c921242d78a65e026e3281000ec5ef04ef930758058c4fed3f79f3b5ef992cde
Merkle path
["7cebcd0b03237e107a9acfeba0c03f1c71ba49d1aa643f88f33f7a2d03919a4a","00ceb55127a82bcf048e2753298d8eff9cf4801ecf05ba7e8cc9f3da1aecb78b","6924b675eaac9819f58d1f14f9fafa6554f95b88955c9932d7e3e9b6bc0c9b6a","71fa12d5da94f70eb5ca33aa395379c10ca43e71031e35e11a71da4a03343725","be52227e7347a46f8d86582369986d01cc7dca02a548fc1d6b4d5388ac8cf252","407b0a1a553453a2c8eac30831ba476a9254817b185308fe5691517cf3e84684","e6a036e003a02f6a512d8899c9dbaed9be4c10303f5f85d42ed0b3d2dc4303b1","21cdba57176914f84e8aec251a21867b61babe8e1374ed0a8fa1f5700fee17ba","947072084e2268afab6986493a6b6d6cc4211f5468ca8855335a5531cd75a59c","a92b947d01b449834cdcd30fdd620d4406ba525d8d56cb2160fde566dbf7b3f3","6d3ef4172d2c7754d7907f4a99a68b915d44d609d2e29431f505455913e596b4","c637c7014cac1955f240c5eebe8b532f7cfb5f80696451d630ec93a7eb03dff5","6b2632561b59cd0b7b7d163c35b619821251fc87f905afdc68f4b8821607ceaa","11c55b906d5338fe2597d0d6abbdec07bcd15a81c2687346b92acf8d9db0c2f7","522d5a6bf348351e5632579ca190fcb390464957ba4b4698b399695ee13b67d6"]
Anchored
2026-08-21
Public log entry
search.sigstore.dev, log index 2543700701 · entry 108e9186e8c5677ac7e1…
Expected log hash
c1abaf0323b08bce2cedebaf1993162920ee741ace8973292e7ffdd13aca356b 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":"v1787287374804","kind":"published-quote","locale":"en","page":"theme:accuweather/delivery/en","quote":"the app feels overloaded with ads","rating":3,"review_date":"2026-02-21","source":"Trustpilot","source_url":"https://www.trustpilot.com/reviews/6998595efe4c273c5c199e91","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 (c921242d78a6…), 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.