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 ads are the bad part.”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
0123ed11c3b3b0c7066d58bf0f377a08531d26fee608a3c20c06dd5900fad1e4
Signature (Ed25519, base64)
hq7EdcxyULwhB8SY48f91sVOf7S7KOrv+E4RWACpsWVzrUw5BkuIYVjir0ZqyWVCcmfefaiEyafXevzWEKvEBQ==
Merkle root
f26292e960b34f73f9768b4afc64585e265549d794b35b8167826c2bcda92ef5
Merkle path
["0124423ddce4595659cee0d210dda3891c86aff7ddab7113c090f0e106e988c8","0e35a76e3582e1b7a0fa2bc9eeb37a18c32c039ea555dd9c94a1142beebdf4ca","a78b0f4f802c0a676d20530370adcf9f748143bfb0c3d067d74377a1cf1e38da","a9e8d73b88963d19867b88a1f61626f99f7cd3b7f901740136ad3ae698ebfb6a","6a0721b823c9a2b42e6fa3f092f508f0b1c850f8c722ce52609ba5d8fd75bb3e","d600a300cb43ad1fea3e33ab90909d9c15d2ab82de96bba5d570c5d5f2ec1b6b","3ea435dd766e620e2ffc1241deaa7e0d1383e5a66a0325ffde21e591140b6dfa","4c71d3dc505406480fed5b9bcb982ec38fe99747e7b37e631bd185371b46c2ef","3010c43d0414f6e4a3558213e60c9fe60558a0775b6b246eb42a94972ff9d883","cff099ab82a32923ca44b13c7471afac3c56396d0b683819c1196321d118c76a","9ae6119d5ee9be570d06c86aeca4c3e551adb30b5cd935ee702e9cef21b97b78","61b50ad04922f327345abbcbc9d231acfaa1042078046650c0d690ade7d11fb4","14d95cb3ffe81dc7ba7bda02f51c7ab9c1977951e0a9ce587124764e85380fa3","0cf751b4d000491c43eea40a33568458d763987b542601ca0644e491c0b04ce6","e95e880a53b013b49906f2e6b9dcc652726333d77986f48029bb634dc427e2de"]
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":"subtheme:spotify/quality/ad-frequency/en","quote":"The ads are the bad part.","rating":4,"review_date":"2026-09-20","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.spotify.music","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.