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 · KelpDAO / LayerZero Bridge Exploit (April 2026) — DPRK Lazarus
- Sequence
- #8
- Score
- 0 → 0 (-18)
- Cluster
- mainnet-beta
- Slot
- 462280270
- Off-chain at
- 2026-10-28T00:51:54.320Z
- Anchored at
- 2026-10-28T00:52:37.000Z
- Block time
- 2026-10-28T00:52:37.000Z
Independent verification
- 1. Database (off-chain)
- 4Ubbn3XbkTwMRjLnyDtiTt4t4aRkzJJtbyTz5V59PbnC
- 2. Recomputed (your browser)
- computing…
- 3. On-chain (Solana memo)
- fetching…
Canonical bytes hashed (1861 chars)
{"actor":"judge","artifact_identity":"e6f8433dbe9260b148447d8a3f1ddaab","band_override":null,"decided_at":"2026-10-28T00:51:53.975Z","decision":"review_revise","delist_requested":false,"disputed_pct":0.2,"investigation_id":"30fb1b89-f9c9-4690-8e88-091075aef49e","judge_def_hash":"8800307026131ea9d5da939d32b9a1f1884b2b84a5de33c8e87931d36f38d0f8","new_score":0,"page_slug":"kelpdao-layerzero-bridge-exploit-april-2026-dprk-lazarus","prev_score":0,"reason":"Of 10 checked claims, 6 were confirmed or partially supported and 4 were not: two are stale (claim_findings[6], [7]) and two could not be verified (claim_findings[5], [9]), giving 40%. The core account holds: exploit size and timing, the hedged Lazarus/TraderTraitor attribution, the Arbitrum freeze and the lawsuit. The two stale findings come from one defect. The page presents the frozen ETH as pending and outside DeFi United, but in May 2026 the Arbitrum DAO voted to release it, and a court order restricts it. The page also omits the resumption of rsETH operations. Because the reviewer's confidence is moderate (0.65) and the core narrative is sound, the penalty is set in the lower half of the band and the page is not denied.","reviewer_def_hash":"bc11388ce4bc4deea1b064fea362663ae06e3f4f687f99604769044d6ffba770","score_delta":-18,"sequence_num":8,"severity_override":{"applied":true,"band":"significant","from_band":"minor","reason":"The review reports two material omissions (the May 8 Arbitrum DAO vote and May 1 court order on the frozen ETH, and the resumption of rsETH operations). The percentage alone (4 of 10 claims stale or unverifiable, 40%) already lands in the significant band; the material omissions confirm that band and rule out approving or moving to the minor band."},"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}