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 helpful for beginners”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
15a36942cf100ca479a84d5d0b47e88a100b78d11d8e14338ea6152a7c79050d
Signature (Ed25519, base64)
gAIT+bKZ+qAFpUONJyC0T3rlZd0H4UPc2hrPHfc0VExe5v8g3b+ME5WnNCdYzlGIb+y2TjVyABKG/Mh3tu6qDg==
Merkle root
ccae92ceb3dcfba104788424188fa34a8cb1410075ff6c1a21fa513e89f0c4fe
Merkle path
["15a824c1bb598af003615e4d056794128a1c122256a350c638f023b1163dda12","486df4f53afb71b22be76aec035e2aeb11c0fd411e03360c5b6193ea779c25da","60a2fca8899d77ccace3a6d0dee01066de5fd9d4f9f72c393c3c39a3cfed7416","1201342aa208fb65895bc6c43a32fcbd6ac14e6f2211c685e4f35e0c4b3d7faf","c8e11d0b2e30300b143f0c0f843d48f0721a5c6072e8cd991e72735e28fd0f9d","5497f4bb8ee101e989c7941d80ad929cef53cee4617013eea2b0520ad8ab5f9f","b1a92f8c6de7c50ea02a825f55c7531db835521b0d8c7ce6cda258486d3bb63e","be362aa2bd4e4db745b85d0510b573a2f5e43ab9c0ebeb90b85313e34a9ae617","f8ac8b6066097d5eccdab36acd451d24e348b123db838b7d7b27e8a695f25102","d7d85489c741437c0bff957deb5501fbd1f551c104bb1d9d8ae5856a8c257a8f","36464d71541e288af451849c85a663e8a009d0aa7dd835e2fc17f697f277633c","94bdad4d5bf7cdcb097f825dc6c437d80f4848c297dde14ff164b3194ed492e1","107bacdb07a3118c4b3abff34aca5373871d7239f682906c5310a861fc9920d7","818afa9b60a40d27c2e88a8e5f62585c079335588148aef8eef246906a1d9ee6","f73291c2ca924ce4b3764e4b6ff1da65a701069f04fad47c52c8b693a0ec7e41"]
Anchored
2026-08-19
Public log entry
search.sigstore.dev, log index 2515282333 · entry 108e9186e8c5677a6652…
Expected log hash
af455e73500113c158c8df9793eab703ff863c9c98fe38560752c9a1772810a8 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":"v1787139531268","kind":"published-quote","locale":"en","page":"theme:canva/service/en","quote":"very helpful for beginners","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 (ccae92ceb3dc…), 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.