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_revise · zkLend (Starknet)
View on Solana ↗
Sequence
#3
Score
124 (-8)
Cluster
mainnet-beta
Slot
443521133
Off-chain at
2026-08-26T12:32:59.220Z
Anchored at
Block time

Independent verification

1. Database (off-chain)
eUc1fo8e8xJ3DKqiKeFXPKj1qzgDkX6ufQxFkVPXNi8
2. Recomputed (your browser)
computing…
3. On-chain (Solana memo)
fetching…
Canonical bytes hashed (1849 chars)
{"actor":"judge","decided_at":"2026-08-26T12:32:58.981Z","decision":"review_revise","investigation_id":"cb094bff-6724-4483-9acf-fad4d5cebb15","new_score":4,"page_slug":"zklend-starknet","prev_score":12,"reason":"Of 28 checked claims, 23 were confirmed, 3 partially supported, and 2 disputed, putting the raw disputed rate at about 7% -- within the approval range on its own. But both disputed findings (sections[1] and timeline[3]) are the same underlying mistake stated twice: the page attributes the attacker's later, post-conversion ETH balance (2,930 ETH, from around April 1, 2025, just before it was lost to a phishing site) to the composition of the original February 12 exploit, when the page's own cited source describes that day's drain as 'over 2,200 ETH.' Separately, two partially-supported findings (sections[5] and the earlier '$200,000 ... to affected users' framing) describe the final $200,000 treasury allocation as though it were the totality of what depositors recovered, when the page's own recovery-portal and compensation-plan sources document an earlier multi-stage refund process that had already reduced the shortfall before that figure was announced. The review also raised a high-priority coverage gap noting the page's narrative stops at the June 2025 shutdown with no account of developments since, including reports of partial recoveries; that gap, combined with the two remediation-framing issues, is enough to warrant revision even though the disputed-claims percentage alone would not be. The rest of the page -- the exploit mechanism, fund-movement tracing, the hedged EraLend attribution, and the bounty/response timeline -- held up well under independent verification.","score_delta":-8,"sequence_num":3,"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}