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_approve_with_notes · Sturdy V1
- Sequence
- #3
- Score
- 42 → 55 (+13)
- Cluster
- mainnet-beta
- Slot
- 443508526
- Off-chain at
- 2026-08-18T20:31:17.816Z
- Anchored at
- —
- Block time
- —
Independent verification
- 1. Database (off-chain)
- 368DFwkc1q1NoEDz4uzp9Syj21tGXzAt6eMjxoaKwkYP
- 2. Recomputed (your browser)
- computing…
- 3. On-chain (Solana memo)
- fetching…
Canonical bytes hashed (2845 chars)
{"actor":"judge","decided_at":"2026-08-18T20:31:17.666Z","decision":"review_approve_with_notes","investigation_id":"299815f1-eacc-4b93-ab24-10d1c6de9f95","new_score":55,"page_slug":"sturdy-v1","prev_score":42,"reason":"This is a calibration review: the page's core narrative (the June 12, 2023 read-only reentrancy exploit, ~442 ETH / ~$800K loss, Balancer oracle manipulation, Tornado Cash laundering, non-recovery, bounty offer, V2 relaunch) is confirmed by claim_findings[1-4] and [10-12] across multiple independent tier-1/tier-2 sources, with zero disputed findings. The single incident on this page is a 'suffered' external exploit (calibration_assessment.incident_attributions[0], attribution 'b'), not team fraud, self-dealing, or misrepresentation. The current score of 42 (WARNING) treats the mere fact of being hacked as if it were own-conduct fraud, which the rubric's own anti-conflation guidance and triage classification (attribution: suffered, fraud_evident: false) contradict. The reviewer's calibration_assessment recommends 55 (low-middle CAUTIONARY), weighing the disclosed-not-concealed audit scope exclusion, transparent crisis response, and V2 redesign against the permanent $800K loss and the ~4-month gap between Balancer's public vulnerability disclosure (claim_findings[10]) and the exploit during which recommended protections were reportedly not implemented. That balance is sound and I agree with it; the negligence signal keeps the score in the lower half of CAUTIONARY rather than higher, but does not rise to the fraud/misconduct threshold the WARNING band is meant to capture. The unsourced ZachXBT attribution (claim_findings[5]) is a real sourcing gap the reviewer flags as possibly fabricated, but the reviewer itself characterizes it as a page-quality issue rather than an entity-risk issue, so it does not change the score and is handled as a note rather than a content-accuracy revision. Notes: (Remove or properly source the ZachXBT attribution in the summary — no corroborating post or thread was found and it may be fabricated or conflated with another investigator's coverage.) (Confirm the exact Fantom mainnet launch day (timeline[0]); only the March 2022 month/year is independently corroborated.) (Confirm the Ethereum mainnet launch date (timeline[2]) and the V2 announcement date (timeline[7]) — cited Medium sources could not be fetched, and independent reporting suggests V2's actual go-live may be closer to early 2024 rather than July 2023 announcement date given.) (Consider adding coverage of attacker identity/law-enforcement outcome, current V2 security posture (fresh audit, continued Balancer dependency), and current TVL, per coverage_gaps.)","score_delta":13,"sequence_num":3,"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}