Verify a decision
Every moderation decision on AVOID.NET is anchored to the Solana blockchain. You don't have to trust us — you can verify cryptographically that we committed to a verdict at a specific moment and have not rewritten it.
How verification works
- We commit. When a moderator accepts/rejects a submission, we serialize the decision into deterministic UTF-8 bytes (
payload_canonical_string), hash it with SHA-256, encode the digest as base58, and write it to Solana inside an SPL Memo v2 transaction. - We store the bytes. The exact bytes we hashed are stored alongside the decision in our database. Anyone can read them and recompute the hash in any language.
- You compare three values. Database hash, your independently-recomputed hash, and the hash inside the on-chain memo. If all three match, the decision is authentic and timestamped.
The on-chain memo format is
AVOID.NET|v1|h:<b58-sha256>|d:<id>|t:<iso>Find a signature on any investigation page's decision log, or run python -m src.verify_decision --signature <sig> for a CLI check.
Decision
review_revise · Panoptic V1.1
- Sequence
- #3
- Score
- 45 → 37 (-8)
- Cluster
- mainnet-beta
- Slot
- 443525596
- Off-chain at
- 2026-08-27T11:04:49.818Z
- Anchored at
- —
- Block time
- —
Independent verification
- 1. Database (off-chain)
- DCshgLK26HqocCAvSJrjCbZPxhVZ2B8gQPFndbXrxZXo
- 2. Recomputed (your browser)
- computing…
- 3. On-chain (Solana memo)
- fetching…
Canonical bytes hashed (1600 chars)
{"actor":"judge","decided_at":"2026-08-27T11:04:49.086Z","decision":"review_revise","investigation_id":"ccd5c96d-c9d5-49cc-b59d-3dab935b8d49","new_score":37,"page_slug":"panoptic-v11","prev_score":45,"reason":"Of 22 checkable claims, none were disputed and only 2 were unverifiable, putting the raw disputed rate at 9.1% -- just under the approve threshold -- and the page's core narrative about the August 2025 position-spoofing incident, its cause, the whitehat rescue, and the bug bounty is confirmed in precise detail against primary sources (claim_findings[2], [4], [16]-[20]). However, all seven of the page's content sections are empty and its source list is unused, so the page's structure promises analysis (protocol background, team, audit history) it does not actually contain; this is logged as a high-priority coverage gap (coverage_gaps[0]) that, under our rules, pushes the outcome to a revise even though the disputed rate alone would clear the approve bar. Two smaller issues reinforce a cautious rather than punitive revise: the summary's '$4-5 million at risk' figure overstates both the primary source and the page's own timeline math (claim_findings[3]), and an unverifiable claim attributes commentary to ZachXBT that no source, including Panoptic's own post-mortem, corroborates (claim_findings[5]). Several dates also use an imprecise first-of-month placeholder pattern (claim_findings[8], [9]), a minor but recurring accuracy issue.","score_delta":-8,"sequence_num":3,"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}