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 · Blend Pools V2
- Sequence
- #4
- Score
- 58 → 58 (0)
- Cluster
- mainnet-beta
- Slot
- 464345594
- Off-chain at
- 2026-11-02T03:33:39.949Z
- Anchored at
- 2026-11-02T03:33:51.000Z
- Block time
- 2026-11-02T03:33:51.000Z
Independent verification
- 1. Database (off-chain)
- 3iMdunYABBYbGJFg7YFd2B29QipTGRTpXQxPTuNzdBqx
- 2. Recomputed (your browser)
- computing…
- 3. On-chain (Solana memo)
- fetching…
Canonical bytes hashed (1966 chars)
{"actor":"judge","artifact_identity":"3b3ef4e79b7cc09cf19f287c2bda4cf3","band_override":null,"blocked_count":1,"decided_at":"2026-11-02T03:33:39.713Z","decision":"review_revise","delist_requested":false,"disputed_pct":0.3636,"investigation_id":"6e06c76c-9637-4555-a3e5-8c1d3c736ea5","judge_def_hash":"8800307026131ea9d5da939d32b9a1f1884b2b84a5de33c8e87931d36f38d0f8","new_score":58,"page_slug":"blend-pools-v2","prev_score":58,"reason":"Of 11 checkable claims (the DefiLlama TVL claim was blocked and is excluded), 2 were disputed and 2 could not be verified, so 36% were disputed or unverifiable. The disputed items are the exploit date, given as February 23 when sources show February 22, 2026 UTC (claim_findings[0] and [1]). The unverifiable items are the validator-freeze date and the claim that Script3 holds no upgrade keys (claim_findings[2] and [11]). The core exploit account (mechanism, amounts, price manipulation, freeze, bounty, BlockSec's conclusion) is confirmed, and the reviewer's confidence is moderate, so the penalty sits at the lower end of the band. The page also overstates the freeze ('before the attacker could complete the bridge'), presents an unsourced $3.6M net-loss figure, calls the 2024 Certora audit a 'clean' posture for V2, and omits Script3's depositor-compensation pledge. The V2-specific audit gap is high priority.","reviewer_def_hash":"bc11388ce4bc4deea1b064fea362663ae06e3f4f687f99604769044d6ffba770","score_delta":0,"scored_claims":11,"sequence_num":4,"severity_override":{"applied":true,"band":"significant","from_band":"significant","reason":"The review reports a material omission: Script3 stated that all affected EURC, USDC and XLM depositors would be fully compensated, but the page presents roughly $3.6M as the net user loss. This supports holding the page in the significant band rather than a lower one."},"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}