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 answers are always disappointing and remind me how futile it is to suggest improvements to Freshbooks.”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
1cb656482ca2a5f7b101a8d5b6e9ba4513289fdca47e5f84e45b8d004942f56d
Signature (Ed25519, base64)
fVkJ01tuVCg0Gdx4dYRQY6lQVRUyIZTwTmm6VLd9aFz6pFpANM+7oH1A/bAWWYc6sZSPCEeLZZRm1IP0AL/aCg==
Merkle root
81db1abd6b6e636da393518bb64e907fa9c48581b44ac2be5a9e74d02608e451
Merkle path
["1cb696ae0d8f72108b09cfeea894567b5d191dbbef1bdf6b04ece6af64ece585","f77575d188725edf7c6b39d1336f2032484a5dfd6b3710700c5fedf55cb0fd58","0b97b58445a462a44bac064fdd83df19a0201217fa9df0229ffc11f255874594","c4fd2b22236265b02c2b7fb41aad322fa7a75a9b13a454de910d731f0070308c","850626fc45489e6bda632200350a18041569aa203765afa3d70e898b0b2ee7bf","192c4607fb3b0bb654a932f0ee8ca334f5f8300278fbc1a4278ff438e59d0816","cf31251a55881561d0882cfcc56d9bf47b46b1c0f213eb370e5a6102ab549f56","6dbb1502b99d75a4d758dfded2a226c001c6570b93fe808732a64c4b22a05198","dcbc11240fb9e61f1dcc98a7fb812d9ee5e41f054d3dba2a91cd25fbcd98d5f3","7555ca7755ce0977aa97344e9edea28c77141a78774910cf9dd1ec7f5be52ddf","f0d849fe2b2b2e8ac46eb31ce8ef0940645609e0ab080116168fd866668ba7ee","0f8ab31a8b7f9aa6ba4ff019c72fbe9792e5837d40b3bad40ea1cfb0cc79e40a","4fd1b36929337d346b3723be273df6d7588bc7b080f058260d538b3f309857bd","6fa310e475466f0115dd6b7ba199f23e915f2a513e2610274356ac5bd367e940"]
Anchored
2026-10-14
Public log entry
search.sigstore.dev, log index 3248278454 · entry 108e9186e8c5677af67c…
Expected log hash
4dfbbd25ce402c4821f7e2d50b18e091e9a30465f45669967c545fb71910f358 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":"v1791948368672","kind":"published-quote","locale":"en","page":"brand:freshbooks","quote":"The answers are always disappointing and remind me how futile it is to suggest improvements to Freshbooks.","rating":1,"review_date":"2026-04-01","source":"Trustpilot","source_url":"https://www.trustpilot.com/reviews/69cc9ef90fb076df5d99f2fd","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 (81db1abd6b6e…), 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.