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 app is easy to use”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
1268003289657a318d63da21ac040182a8ef43be40fd94ae98faa5a34ea02e05
Signature (Ed25519, base64)
GdPUGxq/1KiQipI7qAs8/BNukAtEtWjB+KlpYoQhEN4yWIxneaYuI5KUI8tpKLqjGSKZnt31GN2kBTwghYUMAg==
Merkle root
f0c601bc37f52c70ded17f76faab5612e674bc087c8faf99b4d2f53e921c2b03
Merkle path
["1264e1facbe90fbb2d4f260767ca4b09e56feb9d2696b2b9165467a2919e3fee","5093c6ba4b6c0e53e42fd95b100a225e5bcc35ac7fc774f14e08f3ce3c012d88","5af2501ff7288e5de6d97111e92e66f394b71770fa12a6c3611cdd0263fc8e58","3104574f17fbcc45601828d78ce3d0ff0d02a159961d3b71b617e2b5e8a47eef","6ed6c112cf03c0eaddb2a2a4379408e49b360a8863d44d230e6e51831efe0ac1","300454b987d2d8e8c1de9f22d15d23d184aa2987eb7b0b591f874ecedf10b8cf","fda03fb265959d4f105e02ba804da189516d02894476bc4f7c5b49eb162d732e","fe41ec2fc3ef604d5a6533aa4c74a69346c05a318631578ec31c64e0ea55bcd4","88f3250f300ee700099a3156b15498fbced7501ed28f7e3c35a403f4a01033d7","6744524fa30b0f4936df169174645263a9649189f2de06eeb64ac46da519b44f","61424821648a6153e742735c0dbd9a8d857c25e35d234cbd97d1e39744389f4c","30261dab0822e00dfa6c3c3a33b3d063e3d38a7599dc6296431bd59470ad3368","63626d343fc27f295a2ff318756408f19fcf6ed8639844617fa9d1e202804a12","ec79f032c08fea2de521a7794f897a556ed84b17f8ece659b547d74d3137bc36","d5f5465b6d70ec9eb5fa4b73b511305c1b686def0c98a0246e8a4e9838a04a81"]
Anchored
2026-09-01
Public log entry
search.sigstore.dev, log index 2671768867 · entry 108e9186e8c5677ac984…
Expected log hash
bb91227cb78cb3334e4fa0a34a7640fc05bd48061b2bb5126f5713e7d64ceade 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":"v1788238642169","kind":"published-quote","locale":"en","page":"theme:canva/delivery/en","quote":"The app is easy to use","rating":5,"review_date":"2026-08-04","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 (f0c601bc37f5…), 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.