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.

“Their refund policy does not cover automatic renewals, which feels very misleading and unfair”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
107c70a31a52b992629a8fe608c1fea3a62ccb5051a02f3ec564169bd0b2dac9
Signature (Ed25519, base64)
khTs4Jp/fepvrlv+IszrnylQdwW/AD/i7pyo2CWPd9Ty/fORyuqPNPfvBYHJ5vPTmgTq9iuHAcKSdJLrk/noAQ==
Merkle root
dae11b7f399fa27d7e91aa4463415971ac3f4413815a3c608e4b798805e78c60
Merkle path
["107d53ac5e9fcd04e9bc601f09329e81da2b73a59487d76745d4f35787f56f92","a4cbfce886410474d46e86498c2787f791f039baf57db75a809651faf7321b04","136ecd16a8c6fb04539b61c0c023c1ea495e18528d16e14f4e19a1fd6981d639","1e598298085a0fa742aa92cbb64f50b36bf62eee5c1312fe47d483c14fffe361","5f0fefaeddb126b44b658bf6a00fd4321d6b078dd6e242ec8e572191701f69df","3e98f50aea38bb60428de75e5f710fd4dfa979cfd8565114f83955cda267e437","7009c6c6ba3faa47c1d1ff8729a76dc37be107ae728b79de1d3bfc12a132ea0e","ce0c4bfbd5dcf9bb644b146cfc1c066162aa0e808fe4e7af88e5adff910667bf","1fab325ab7049b5ab624180f693b9ce7e46c8085cbc7a48167376ac05e340be8","95f6031d8ddd5042da56abbbd864fef36d796e46ee3a26133e9b449d9d0c56c7","efef525a0b969ad7a97adcca114fe0da3a571380499ff29a7360ee2f6421799c","0716d20b2d336af648f125e1c2c654fd2223c3dde403611772680fb1b6a17314","14af96598cf9d6cb016b0fed730fb6c3e41450ab1c3ebbb7f845ad928e8a42fb","29fee1ee29171f2526142193c918f4d151680a806133c34179179c2fe722d806","6771b856bc54b9b41031b35ff7640ad54c5be8f800e1967d73d242437a9508b8"]
Anchored
2026-10-09
Public log entry
search.sigstore.dev, log index 3161668256 · entry 108e9186e8c5677a744e…
Expected log hash
dbaeb9745833827bd692133822ce98bad4dbbf6d52d00fcfdadfb4c533d214a6 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":"v1791537031439","kind":"published-quote","locale":"en","page":"brand:nordvpn","quote":"Their refund policy does not cover automatic renewals, which feels very misleading and unfair","rating":1,"review_date":"2026-10-04","source":"Apple App Store","source_url":"https://apps.apple.com/ca/app/id905953485?see-all=reviews","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 (dae11b7f399f…), 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.