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.

“very easy to understand and do...”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
15ed31fcf44a026a4e5bae72acaf23f5e2383ddd621d86e3e4eb147d6bd3ec96
Signature (Ed25519, base64)
mIA3nGIIvH3PVCHDMmi1KHNk6xjPSB3vOp8LoGzFZTisQR68deLmG2PzqcsjEDEl8Z4zL+22mgs18nkXotfNDA==
Merkle root
3b820b0e91b2475ca02a79fe65f1dcaac35af570ee21f4c868099b9c17e17c1f
Merkle path
["15f13f8ca6d29898e5dddbbd84f01731d9127e593326900951c76150145773fe","2b12a18381bb32b4cc2e2017e3166340c5b05531b24acb0011fc426559d03a22","79bb44bf07a2ac229d69745fd8b3efab87473fcd6a67f105e709e65671b62c7b","653ffd4d8cbdb26bd0a87efab534b7911ba958502f6bb2b8f741f2bb80869e9f","8242a7cb39fae6663e54c348e8ae169bb0a73d7836fcc10cca645d7c0506d0ed","22d32cbe690ebeb946b8e728ff2f188acb812fef810bc1d437aece438fd09483","6d0b1b3f41f6be1396a62f94a3b6c554cf898ff5ea6a3ed7d40a7ef8852359a4","8b50eb63ffa5f85e1bc88e34bbcffd7ec27a361a547573907a10c2a1f6530d76","46a4928b2ec608339d2a70712f32316b8c20c869f09a99bb56045cc601547584","db700500a403a859ebed7d142e6871a3a34a172f596b44abd63a1cd0db405b71","eb64d69c96d7752864b154bf156e3619786d398cea2779150e3f2111458c7d07","4312c1ac93e9a28633e1ccba91723fd983cab402115a8acd8573e15d9ed9f630","3b28c91ed1c07c20e7a9ea170d94b917c6d123814303aca3f92997be066c952d","e448e4cc350a9a69a05538fc74a8236040fbec1cdf0c4908e91135fd4a29e380","92de2c105ee268f1f08dcd9d0a8fc946130cef7b39b15a2b5ed0d7209687c9ac"]
Anchored
2026-10-07
Public log entry
search.sigstore.dev, log index 3124210377 · entry 108e9186e8c5677a0172…
Expected log hash
20a5241ced0c7b94303a7b8002f1aae217df3f1371aea54ff5745a148bddda47 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":"v1791349684588","kind":"published-quote","locale":"en","page":"theme:canva/communication/en","quote":"very easy to understand and do...","rating":5,"review_date":"2026-08-12","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 (3b820b0e91b2…), 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.