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.

“Only German servers for free use.”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
0aeaf7ab27ce0ed1d2a219a69c84fa37ac768e6d6ed21d2596dc25db769878a0
Signature (Ed25519, base64)
BdJ+b5nkbtqDnuqAB4g77N3ajnZ1UUHJejkTVSMmV7brO2c00ijem4FkHiJMhHiwr2dysBTZjex/VkNpvNHRAA==
Merkle root
3ea09355a1b22a15fffcd33ac0d37e4039cee2896092e637dd8c4e7dfb5d507a
Merkle path
["0ae7b48fa5e079beace51728a67e994a4b6d99499a63820e9ef11d25074fe727","850b3691dab55b38770d7c78e1e364d39d854820e4c8e54b49271af8b24ef0e1","23e441bdf7bdc6dfe4c58e05bddbf2535417508b0ce18e55292f7ede01dacd0f","452cd9c5a891f5b569a745797ae558104026695f05ab44259d91adc0d1390f9d","9f2ad6c0abd36ec73e8ffc857f53b6664124ab26c0bc9eebaf68798a80ee33e4","2500c032854b715a5a6abf179e4b0829ad3053943820589a0d52c395e314e4fc","04674d356617e752a58558ede157bf6e570274e42cea2ec3c84e3fdd53e15c48","9ca9c7471dce1b98c62207ff1eacdb0ec83b2f09a44b159f5ca28dcac2327c23","891d5be76775ba5b1a2dd7e6315b8e7b7a1097b10c29ece6fe27d8acedec8b43","445ff0460e47cf91e80db928f13db6bbe44556bd454dce5f36d08fd1b8ecbad5","fea61a36542d4a2158014d1ed6ff898d9e095f955d86c737be9cae97c9468ae4","1d5c12a26bd5f3e912e34a6f20b7e6e188b9e1c8844527140789c47763eda015","cdf1574b5ad3d2b698b1a16a8e9aea647ec4ea1fe5581e45359580053346d889","c813a34665dab5ffae8513e10cc2fedc27edee77c70c636abfc3ac5275137875","331ffac0f34e1f76cacd782a04285f7bacef5f5dffbd1f8163703fce9b22280d"]
Anchored
2026-08-21
Public log entry
search.sigstore.dev, log index 2543978942 · entry 108e9186e8c5677ac836…
Expected log hash
69ff2d97383073bd392d75b79533a80cb25c69be55aee7dcb24b1acf4a379172 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":"v1787289230204","kind":"published-quote","locale":"en","page":"subtheme:proton/service/server-locations-availability/en","quote":"Only German servers for free use.","rating":2,"review_date":"2026-08-12","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 (3ea09355a1b2…), 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.