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.

“Be careful: after a 3-day trial, it switched to a yearly subscription and charged me.”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
811232a473c80ad406040f55995bb89383c85c382fe09bfee30b5a6d71714922
Signature (Ed25519, base64)
nXnXr7FYcArEn6JqWd5smuOQpf6E9eyp44QeNttldQomLJllUmwD1ZU9/TIkdb+y28hDA41tGQmIMdYjdbjjDg==
Merkle root
ccae92ceb3dcfba104788424188fa34a8cb1410075ff6c1a21fa513e89f0c4fe
Merkle path
["8116bdc5feedceadeb034898b21c0fed51e3b722dfe74f942daf43b4945168b9","433a1499e81c0e95ed22485ede35de46ff2fff50a9f00b1bbf688787172f748e","e45696ea5d68bdccf61e23e58a54165cac20375838d1f60308a6f168482cddb0","7b5c5391e37e3167ce81f01aee26cf33f7d5366073d5489d0b3ebf2cadfcc4a3","2b7a4aae51d8e2c9d2a7f957fbb5c729944870deb6f82c51576e8145ab47e32e","2750d27e7f55bd6ce2168154601abf80a634f724276b48341de5428aa754b705","87d51f39c8bf3e9143670432374a64e930ba5bbe2acdc9822cc7910c14a5fd32","db0e704c64e02581453f3cf56214f9da4d1f2511c311332df4c469bc991302f5","319846de52ea5872e187425108601d433af27ad845c99ec6d3106d34bfa4e2fd","e84eb99c306cd61ff87abc5089e182ffa04a0e24456a4fb165383151c60902bd","a9df9f526e0a507d20ef8f6e003e4476cd3110a9def44c07501ba1d8a99704cd","bfc394086b825672e160b5b92fd378af53572fbeac6ebc2549ff664ccb1ab140","e472864955793aaa2d19219057558dc2b6f5214abf252963626c32870bd50cf3","35f1bb6574fe343de1c8512e58fe7937cd8ac075d63d989ecbfbabdbaf4d6344","f73291c2ca924ce4b3764e4b6ff1da65a701069f04fad47c52c8b693a0ec7e41"]
Anchored
2026-08-19
Public log entry
search.sigstore.dev, log index 2515282333 · entry 108e9186e8c5677a6652…
Expected log hash
af455e73500113c158c8df9793eab703ff863c9c98fe38560752c9a1772810a8 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":"v1787139531268","kind":"published-quote","locale":"en","page":"theme:xodo/billing/en","quote":"Be careful: after a 3-day trial, it switched to a yearly subscription and charged me.","rating":1,"review_date":"2026-01-05","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.xodo.pdf.reader","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 (ccae92ceb3dc…), 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.