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.

“Renewing process is convoluted and designed for you to auto-renew at full price.”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
320163f961ff99ce16be86c36893e2a8b52fb6dca9010d49a1dd2d1b93f19e1a
Signature (Ed25519, base64)
0UItavSjKmJlxOa5NK/IvLRRs6dVf9oJe84qrrNznZCJxj43KqPH54HipPGcgLa9FRRKtVj2Qi+ox4S06hjICw==
Merkle root
4900b1080bdcd3b4c9234f01647614e7004e0a1ae01ead44968e31abeab33265
Merkle path
["320c618f5dcd7760e4fb4fd9e0b35c09975dd95e6c38e85dbf72ac1fa68e3003","e990d235a3b3ea4a2d9c0d4b5a454d46e6cfedfb640acd5c2723886bbe747f41","945be46d9eac5ae1cb02bd5c008257c50f93a7b358e6475bba65459c32ed6d4a","1dcef219210dc00ddf1cdbebf618e94d5e5d54bd4c034d80b1e8bdab1689c19a","0701523b6f436a7582b9727a843c9d4be9dce12837f9b7b4c1ebfef7cb57354b","a2291aebddc1bd6ec15a9a313dc4bc2910d01b9102078041288f3d340a04193b","9be11b957a9b2c2e11e6b39408aa533240cd453349def295a629230c3c6dcb60","3adad6b718fe3b5744b44a5e2eb95567f18aaa7c14f4a91fcb154b8ff1a12137","b4f7978775aeda04079f417d53756bcbd3b6b86b6d249a85332445d00c3f975a","c3d8da89cbffc4527d4195997f3292a281668dbc65b8c89ce61b82b9c82ad6ab","a3b74b17f9cd5d406e0b7770993216956a787a080b4312b3087d7ebb01d83d77","1a39eb8110f60cca7b5d74c4b4e1ee494aba4bfcd1f4082136542cd2a427ac26","acc667d852c71a0e84a086ab20f7bbad3d8ae083a1e44cd20501ad641f662bdf","0a4842003c61f69c5923b6aafd56426e7fe934e483f7d15b620c07fa61f89152"]
Anchored
2026-10-13
Public log entry
search.sigstore.dev, log index 3241341297 · entry 108e9186e8c5677a0e53…
Expected log hash
39342fbb95f8cce5be4111719e5450984494edcdff99b8bd9a5c0d2303b67943 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":"v1791866192176","kind":"published-quote","locale":"en","page":"brand:surfshark","quote":"Renewing process is convoluted and designed for you to auto-renew at full price.","rating":3,"review_date":"2026-09-03","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.surfshark.vpnclient.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 (4900b1080bdc…), 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.