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 widget is no longer working”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
07e372d2c39a75a2618beb82efefb0abcc1d508b27b05f6dc85c8ff5845edc12
Signature (Ed25519, base64)
1sCd3rfabr3ykdU2Ntvgx5u8NO8Taj8UJxemqt45ABjUmANkVSrKYg3zLNRYBsnt3AMOVrLOim2jaLvz2/GdCA==
Merkle root
01ca9a914d9cb7fdb6291f3c0bffafc2c86f57c6ac9bbbe06ca1ea757b85fdea
Merkle path
["07e97cdc18cb0c388779062e7f77db33f0135034486185f0869d500871ffacff","3829cb9671f1ed892856c62a01e0abbb3c0e29d4b8f3601bbeba3efcf0d25462","6dd62046c1218bff48e396d83de4d0a05ba216fda291c6c64d786b5500f99c00","6c7d9da8e66a00dade478431ce523a9dfe6c7be0655c244f76278e1bc20c0958","1be62a6aa99633ff199b792cc9145eb6ad31806fa6244d871c876da45db0270d","880f48ca202998cc1178a1e3536ab6425683091383c90e9671a31d84882f2dfd","d4039a7aabf731519bddaaecf133a682a3cbc65cdc814f31d7280e9c77540d61","d6c96d49d329cba812fdb5f6cad3ae64c5aaa3a9619bda3ebc115e32e8cfe40a","c9c096a562d0c6c4fd6f72d6791bb16235ebd8c5ea5ced9e961905d71547eca7","527ac2713d88069f0818f29058df77b688e340326215df810ede0e43e67795f3","3dbae8f820a12ccb2f2e9711918a56a61539daf4f23eefcb2fd8dc4fab2fdb45","122878c07314ad3cc2a2cf0ce355b0a54bc51d36abcbde0759035a88c6991648","c94b2deffec3728e453fee18e0972292972c1acf359c73e609f82c71f84f6262","581f6e77367a390c6be41617812d1bc389d35491529f5e765ef954249e5ece06","e1421d191a62564ab151ed4f3d8990bb670a4cf79ef1b438c8dbf253dc424e03"]
Anchored
2026-08-30
Public log entry
search.sigstore.dev, log index 2647682298 · entry 108e9186e8c5677af736…
Expected log hash
1dfa1bea15f2cfa02080ed204683ae7d0bc0936afc7a7dabbbde7cc96ee2bc57 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":"v1788066809618","kind":"published-quote","locale":"en","page":"product:proton/proton-calendar/en","quote":"the widget is no longer working","rating":4,"review_date":"2026-08-04","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=me.proton.android.calendar","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 (01ca9a914d9c…), 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.