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.

“easy-to-use tools”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
15b537f09fdda5d5aeb6a55a912af118be27cd634589a566c94e3fa0951c6c8d
Signature (Ed25519, base64)
qHP8VQX1ayR0xU7j++cK0PI/mh1sXu8/mroLDay1ojhphs0HAPvI7rKWODpd/8IE7WXYKjy2OP/JcJQ5nkbODQ==
Merkle root
70a672ba4f99febc4973332b6c2cf94172d87101aca638fdfd56ae3131b117da
Merkle path
["15b417cf257ad0698cecf04871600ce49df1ead0d50f5a56e1d4ee48bf044ff4","111e74f6214e34a8e8b1c9add6e738ae111abb8673a96de6eeb2820e53542a18","22a096394dd626b79c3116c7bac4cdbe45e55cc27c606db8cd1cf0de3bc9613b","2a87a76c3231a451f20ba53163f06315b7ed38a71519dc6f5610e31db91a7530","2684de1f817b2ffffbbe20727e4593a2986586b9516ca70672fd29834f7434e8","d49926adeb82bea8c1c53506c52e1e1c295eebfbcb24b5a58ce7e6bb64bb6ae1","4addfddd12a4bc2885ed867a7192876c486bc8e0223646acfa73fa1088dba80c","db23d7824d641dc5304247caa41d005ab2ce4e7478205e76c10a256bd0a25057","31b74ea6ada018904bc729398bd39243b5fc95f8dc5ad8582699cd02dd891ded","efe9e4451f6f737ec0bfb506c6860efd7f24b9b40cb42b8d489907aefc2cbc40","d979566f60af4d00404394584d79d20ddb23dca9cfcf012923afbdd8cdcf5dcf","4c04d3fee6657409c8b6ad68998dd9bfb46486136283728def3f1ddbcf40a7d3","87f61d26057d4fb4f6a740a063ce88db7759266bed7950e950bbccf64bfb6be6","1f37dc6912cfdc60064656f6b3b1ac7b51a18eea41a11061f5457370784c1545","c66ddd9e0c503da25c55afd584b26557c7acbabc25078f9f7593d3776356303a"]
Anchored
2026-09-01
Public log entry
search.sigstore.dev, log index 2670402210 · entry 108e9186e8c5677aa13d…
Expected log hash
4c67c3cc128b94bdb5d524d39c2018621ea5c6ac22722b8aaf21a3d775248c87 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":"v1788228248765","kind":"published-quote","locale":"en","page":"theme:canva/quality/en","quote":"easy-to-use tools","rating":5,"review_date":"2026-08-13","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.canva.editor","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 (70a672ba4f99…), 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.