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 · Wojtek Kulisz aka Merry (SIM-Swap Gang)
- Sequence
- #3
- Score
- 2 → 0 (-15)
- Cluster
- mainnet-beta
- Slot
- 443521872
- Off-chain at
- 2026-08-26T18:05:35.700Z
- Anchored at
- —
- Block time
- —
Independent verification
- 1. Database (off-chain)
- 417uHGq33o3kC4r2vSMZpnVtG8ewNbgkHGBJtAf4EBr5
- 2. Recomputed (your browser)
- computing…
- 3. On-chain (Solana memo)
- fetching…
Canonical bytes hashed (1958 chars)
{"actor":"judge","decided_at":"2026-08-26T18:05:35.143Z","decision":"review_revise","investigation_id":"af4d060c-46bf-4ace-a1b7-8ae8370b39fd","new_score":0,"page_slug":"wojtek-kulisz-aka-merry-sim-swap-gang","prev_score":2,"reason":"The reviewer confirmed the core, checkable facts of the June 25, 2026 arrests, charges, and law-enforcement agencies involved, and correctly found that the charging stage (charges filed plus pretrial detention, no indictment or conviction) is reported accurately. But the disputed rate of 14.3% understates how serious the remaining problems are for a page naming a living, unconvicted person. The page's summary hedges Wojtek Kulisz's identification as 'not officially confirmed' and then, in the same sentence, states he 'has been placed in pretrial detention,' asserting as fact that the named individual is among the four detainees when no source supports that specific link (claim_findings[3]); separately, no official Polish source names him at all, and the identification rests solely on an outside investigator's comparison of Instagram photos to raid footage (claim_findings[6]). The page also asserts an uncited 'prior history' of targeting crypto users that exceeds any source and exceeds a sibling AVOID.NET page's more cautious wording (claim_findings[14]), cherry-picks the high end of a $5-15 million loss range as a single figure (claim_findings[2]), draws a factually incorrect analogy to an unrelated Europol operation (claim_findings[18]), and cites one link that is confirmed dead (claim_findings[20]). A second, inconsistent AVOID.NET page about the same unconvicted individual compounds the risk (coverage_gaps[0]). Together these push the penalty to the top of the applicable band even though the raw disputed-claim count alone would sit in the middle of it.","score_delta":-15,"sequence_num":3,"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}