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 had a bad starting experience.”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
99dcd836f5e4b3a532387eae60f0d7f9875b959e1f4f40b401b136a5e48379b8
Signature (Ed25519, base64)
ysJYm2LY7y3q3kOO8kYcMF2rYro2BiMvGlMtjZdwDThFp4n5DQQbcLmcSckPjwLPgKwxvG97SEhk8TTpVfdSDg==
Merkle root
f26292e960b34f73f9768b4afc64585e265549d794b35b8167826c2bcda92ef5
Merkle path
["99dc20833f8bd93d992649cad8c61b48c4c42190ed7bd946e5b25548983fee53","0189207cd8278b7d820dccd42ed3a8e3ad3746fb1b88ef0f832ef2437bc3a5b6","bc4c11a3b38d59c8849f4e0fcbade05f04fdb5b8ac93bda01c7573890deee3ef","b25d4f024d96b853eb1bc262e5391f0c73ece0cd5e839d1164a4bdb46442f86b","c76e97de016f0351fd143ab7e9c3c74a67c2d8d2bd7b8ca924336403935ab38c","8460dd337d1642fe9af22a7692ac82e256433308a0bb12c0d4eb2d1fed98950c","ab4ee55a351a2117beb8ed2ac77324149379bae5169463d0b8d446c33082dbb0","725a60b54c89b262d7c2041229d70e787b99255c8c7401a82089773d8f2faaeb","bdd66506c48abb7eba59781ca4c0b88ae178e8a1b7cac2cc1ab57deb924e7f40","5789118ee3eb19764e33acd90d7fb424969913c35830378d1559a663be63d06a","2bc93db6f67532af3afa6e7fac2efe4a1f005eb5788483405f0ede9c9ec2f217","da342b52039afded388a34c4d220b41695f65ea8d9006b7b024c76c455dc983f","edcaec9f8e5156b483404ee77350f2ddca893e6ce1a1eb48e97046facf217e60","ebe1651655c8b61b6b5364f1f9c2df6d3d2570b884eb1475b1f154f5054feeba","a616224c7837fee9e37cf9dfa53b6dc52945555438d928215ead84ba8ccc7b57"]
Anchored
2026-09-23
Public log entry
search.sigstore.dev, log index 2913636507 · entry 108e9186e8c5677aea51…
Expected log hash
417fac9b806377ff48d30ded01faf8424eb98406df713fe2564ee9077747e6a6 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":"v1790070376053","kind":"published-quote","locale":"en","page":"theme:everand/ordering/en","quote":"I had a bad starting experience.","rating":3,"review_date":"2026-09-01","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.scribd.app.reader0","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 (f26292e960b3…), 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.