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.

“More and more ads in the free version”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
20ed6de452a41e73dc56325cd4f544f67f1c5777d391b952552b31cd396a87b1
Signature (Ed25519, base64)
hgtoBJtTVISB7xx6GY5Zqhs6Dn0fWoqUYp8GMKsfV7iiHVvAf6aVAKgxET5Qme82OQAEFCQgt/rtMzCJc9/kDg==
Merkle root
f26292e960b34f73f9768b4afc64585e265549d794b35b8167826c2bcda92ef5
Merkle path
["20ed8167e95fe5410196586b1d111db81280d23bdf43832fa2c6b903171f5fd1","3566d1056e6b79ce647227703bcc9c8043e5bc024b3e4c745706cf4ecb6d57a9","96718ecc196e1a11ef917a3391ed676ce2850020746e24e6d5949a681f72ab6b","0fa49ffc580b7cf9ed91b207b10213da63d9e1b046921b3d99aafb79d707a31b","268ddc991649cab3037d5a3a868247c8a5fe3b63fe38f77adff58ff23910dbed","faaf5031d02af299f11df26916464a8f38084231e9b8763b3c5936efc51c7f2d","17075161c05976c200b0b673820cfa6c657c133c4daf1b0fbbc618233e281781","26d533cf6c140a01d97dccc218eba13a0232d4d240e6adeceae5a883f314c9f2","00cb5a6d2c92377d0f84bee814337376422a8b4b239b6886446f134c4abc6bb4","69fb82ffeed9d91d2c0cc53be6cf126c07d070102e831cc91a4438c40e15f462","87663b8060c34bd52c43cfcf9acc13e2c203c164aac9770ed6b0742f89820281","dffbc784da6e78ce004c2715fd64b08f8014ea3a60655e0f193168cea47c89e8","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":"More and more ads in the free version","rating":1,"review_date":"2026-09-19","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.