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.

“The whole process was easy. Importing all my mail, contacts, filtering rules, and domains. Syncing my contacts with my iPhone.”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
88635f78f36470029e9c568c6de5f6b3b7d191284ee1516fba6822352ace4451
Signature (Ed25519, base64)
UqGkm5A8acE/B5ZloXXr3PCJHPj2si/oxQS3gUniC7HhitAkTYUc1xVBPLFWQNyOGQBthPgEQxYHMAptdxgJBw==
Merkle root
784ff8fc3c42eac43c7d399f0d67bba55d28073a7e106789ae0c6c3f5ac9dcc8
Merkle path
["8870678396159126fe92fd4eff797213c0c6c0e219f1a54060a561ba188e712f","008aac9b722ed47f856266b4ed90bec3ca69b8cb370faa3b759a19a18e65bf46","c8c2516e573913e6f69ab66051c3ad0ef40e42063fa255a1dfb6f57a891a9724","4f6ca916639b1d8d91d8045f92a05889a7e701aea47f28e8cafedc5dc4ad6ac8","80a50f3899ed281acda8ea2074e6be5ccb6ea503dd514dd8d5a89ac9d0507082","e6b5a9bc7247cfdd0c9ba83c0b863034eca44538a16e5ca84af1012ce2ca6427","c213919ae637dbe2120113e0314894d4deeee7de522fc7a2c036bcfb4a55807b","dcf45b1f51535596df261ec34922d947a31cdacf612346747dcb400fa743079d","6aa75b198bc13668f4e8b3f92a613ac0625f812a819fb5fd5a34334514f846d1","fd60d0187e7b0bfebafc3e13cf0b0592b5ae8efce02805f141efe14550792dab","d455299b0c811efb215c8ef8d82c0d64b22aa695d39ad95dea97c943e36c8fdc","16fa5ef2aa5a30511e875bd79d3649a999c3c331f575a40b2191edb1aed002d6","76d400188c58a939fb5674b0c9b84ba0bb8d5bb91a670efe6d7087f7cfcad90b","c0acf811319c30afcbe8b77293e97c6cc46544f39bfd9b01931c88a06aefa19f","5fa09e3847513934bffaf71960ac2a100e20422698698ab1e19a4fe8ac133514"]
Anchored
2026-10-09
Public log entry
search.sigstore.dev, log index 3163352270 · entry 108e9186e8c5677ad020…
Expected log hash
a3ae0badac804d14d314abd0e71726d06a96c43a3840dc1d63acded9268c461e 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":"v1791543790412","kind":"published-quote","locale":"en","page":"brand:fastmail","quote":"The whole process was easy. Importing all my mail, contacts, filtering rules, and domains. Syncing my contacts with my iPhone.","rating":5,"review_date":"2026-08-13","source":"Trustpilot","source_url":"https://www.trustpilot.com/reviews/6a7e32db198bd10357e8a74a","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 (784ff8fc3c42…), 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.