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.

“Generally happy with the app.”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
99ebbc93a0446b5a6c3e5931cc5f1772b93316c8b89a6f4a789d828bf8326f95
Signature (Ed25519, base64)
Txb3k9Aumd5OJ0YJC0W2x1Y5f0vF+4xIEr1Hi8b5LjuWTTPcSV7gcGIkke1R2+rTV71pj5nr+Q1HGwENG8q/Dw==
Merkle root
7252afe559009950531df937e7edc9bd1c57cf28a24ed7f6c6613b65f459eae4
Merkle path
["99efc1a10bd389fd9304e902d2e64b19597d4dd363529112ec76ccaae3e18fa0","0f0881610db9866ad726ff15a09044ab8af54179ec0b3b1f48f8f3158bcbfbee","c3bbaefda940ffcef8d4e4a89a89976644728a28e2f67bda631d5cc854d8f6a1","c05651ef550ed175d0b10b83751595cedcd9f55276a3d286076f37379698fd7b","cf79690c90070d017d6e726c210d1b3784db784d1a397a2297c6e142f3ab5691","29ac224d90b658cc02bbe133c0aacefdf31be8eff070c374bd69420f69995327","f2d53d2ac7332493fd8bb6dd1d68f32ffec4bfeab7f4eaff2630a28d9b5a88b9","5b62e506154311431af9acd15a57a49dff547d4ae22dcb0bc8e8155b3fc5f19b","4aaeae8d0192b40776d05999c6eb213c7f09cfb1b7d271e79c40942591d19d33","373435199e66f7a07f554ffb0e8dd2d2b90f99bcbb3f41ae6c7ce75205e4074f","71593d8fe778c30d22c07e46470f4a4ed3b27d5cb997d3c14fdb8533d8aee7cb","795be378d73178f67ff58e2fcb7da9a9066199ac025bf692c0132b88f6675786","ef6081918e55eca3fec73973584419d4a931794de381cb36d066a7397e956060","cd4fda8dbbc96e358ebf0ecb75fa543c15a1f0707b57959166ff1973bb1b4136","b3900b15a2a9b7aa805b691ce86e29db39e03d547238a84a3c0fff4fc2daa54a"]
Anchored
2026-08-21
Public log entry
search.sigstore.dev, log index 2543383844 · entry 108e9186e8c5677a6025…
Expected log hash
65212d488cd7bdd0d67aebdd70bfc57f4b622fa08b8179427635d69eb7ec385b 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":"v1787285599851","kind":"published-quote","locale":"en","page":"theme:meteoblue/delivery/en","quote":"Generally happy with the app.","rating":3,"review_date":"2025-12-05","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.meteoblue.droid","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 (7252afe55900…), 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.