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 feel cheated, it's been over an hour with no change”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
0d7444d4900daeb0f7c30cebc12d12e98bf7b47d5da8694cb0632638c53c525d
Signature (Ed25519, base64)
zKQfWE5zmSeNGjr4Wxg1e1DLK6GbhyfIcZci9fcpdYp6fYb4mSqLSKA8Nup2/27TLOJS4VBxgvQ4jo2CS1FIDw==
Merkle root
80de158564b7616572ca0c0059561f6ec90cd5bce49a388e61df989f3f6f2a86
Merkle path
["0d784b8c48f5c60d5e4d2081233a21184f49e3b40b1994106c76854e7d488a0e","1e9abedc4585ec51448a87ad3902f57b95cc8cc98b652ce7771c2690984d34c8","ee58a57231422b895da3ec58f43b1d3f3bc57e19b53f414aec494565f6a8086f","7b7aaba50c81976b111318ea4cac7dbd62cfcb396a981c546b7eb78b26a56e23","39d0320d60deaa916f574febc3017e489ddd982f5d3c1f9f5392d99a13dd3434","74374b82f8856e93036393d854191650ef94da41b7f16b92d66e6c4041275111","d7e6e1e6979f9450ba2500d6ea055c565e450ca29d327422f1265f744e2e6729","92e44441af150d91dfbb4e18186d04dcedba35159845a1651881dc850867bda0","7a06c885b082ab861cb76a202861a420e7f57221ccdcccde1db275f3a9853c1c","ec6bf8c95a80bb0ef45b7728b5862753c5e3a5fb32187f1b55f1a359a52aa449","fd0c190101f95636ec16b72f52baf6c5d7e2010257e1c15c19bc23e3e601b0b1","a555f13c6c97c193df7dcf9c4acd43c29481486a25c64863a705825840cdab19","c0d3c29d57b890f7faa23830cb86c1df3b164402674908e09950b515624cad23","f23007ee336c6a9903bdec729de4dd7e96694a7e2f1071f195563e9aff8dd97f","68889fd35b89925b8d265e65260618471cd9c2f5458718fde3d6cb3829d8f00f"]
Anchored
2026-08-19
Public log entry
search.sigstore.dev, log index 2513802575 · entry 108e9186e8c5677a9216…
Expected log hash
5899b5d0ea18fa3c879147333708054c2e3cd77662f2b6f633aa3b5d5512bbe5 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":"v1787121142818","kind":"published-quote","locale":"en","page":"theme:proton/billing/en","quote":"I feel cheated, it's been over an hour with no change","rating":1,"review_date":"2026-08-13","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=ch.protonvpn.android","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 (80de158564b7…), 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.