Skip to main content
AVOID.NET
← avoid.net

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

  1. 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.
  2. 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.
  3. 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 · Clober Liquidity Vault
View on Solana ↗
Sequence
#3
Score
4258 (+16)
Cluster
mainnet-beta
Slot
443508878
Off-chain at
2026-08-18T21:01:33.575Z
Anchored at
Block time

Independent verification

1. Database (off-chain)
9aBdEqa7VY4mtsswqzm45TEipjfDMYAvazEYUVF2FLJx
2. Recomputed (your browser)
computing…
3. On-chain (Solana memo)
fetching…
Canonical bytes hashed (2676 chars)
{"actor":"judge","decided_at":"2026-08-18T21:01:33.406Z","decision":"review_approve_with_notes","investigation_id":"1a79704b-57a7-48c8-a46e-fc27bd4c6d12","new_score":58,"page_slug":"clober-liquidity-vault","prev_score":42,"reason":"This is a calibration-only adjudication: the page's core facts hold up (claim_findings[0,2,4,6,7] confirmed across independent post-mortems from CertiK, rekt.news, QuillAudits, SolidityScan; disputed_pct is 0), so no content-accuracy action is warranted beyond hedging language. The score, however, does not match the reviewer's calibration_assessment. The Dec 10, 2024 incident is attribution 'b' (suffered) per the reviewer: an external attacker exploited a reentrancy bug introduced in a post-audit code change, Clober disclosed quickly, confirmed the core protocol and other chains were unaffected, and offered a transparent on-chain bounty with no evidence of fraud, exit-scam behavior, or user deception. Per the rubric, a 'suffered' hack caps the entity at CAUTIONARY (50-69), not WARNING, so the current score of 42 is mis-banded relative to conduct. I agree with the reviewer's recommended score of 58: it sits in the lower-middle of CAUTIONARY, reflecting a material, negligence-flavored loss (~$501k from skipping re-audit of a late change, claim_findings[2]) offset by transparent disclosure, no fraud, and continued operation with no repeat incidents (coverage_gaps item 1). Notes: (Hedge or source the claim that the attacker moved funds to Tornado Cash and that negotiations failed on Dec 31, 2024 (claim_findings[3] and [8]) — no cited or independently searched source corroborates this; treat as unconfirmed until a source is found.) (Fix the internal date inconsistency between the summary ('launched ... in December 2024') and timeline[1] (announcement dated Nov 30, 2024) (claim_findings[1]).) (Add exculpatory/contextual coverage: Clober's core protocol and Arbitrum deployment were unaffected, and the project has continued active development and expanded to Monad and Starknet with no reported repeat incidents through 2026 (coverage_gaps, priority: high).) (Consider noting the attacker wallet's prior ~$77,000 ZeroLend/MAHA exploit (Dec 4, 2024) per CertiK, to help readers calibrate this as a serial-exploiter pattern rather than a Clober-specific security culture issue (coverage_gaps, priority: medium).) (Verify whether the live page sections render actual prose — all seven sections in the review input had empty content/heading fields (coverage_gaps, priority: medium).)","score_delta":16,"sequence_num":3,"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}