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 · Payy Network
- Sequence
- #3
- Score
- 28 → 26 (-2)
- Cluster
- mainnet-beta
- Slot
- 461980369
- Off-chain at
- 2026-10-27T07:08:25.353Z
- Anchored at
- 2026-10-27T07:08:51.000Z
- Block time
- 2026-10-27T07:08:51.000Z
Independent verification
- 1. Database (off-chain)
- FG8P11AmeHtRcmYKeDhfjWjHAUUNiKKkm2B51VAzJP8i
- 2. Recomputed (your browser)
- computing…
- 3. On-chain (Solana memo)
- fetching…
Canonical bytes hashed (1585 chars)
{"actor":"judge","artifact_identity":"cbe40b8bac2def812bb619a7d61258c6","band_override":null,"blocked_count":1,"decided_at":"2026-10-27T07:08:24.841Z","decision":"review_revise","delist_requested":false,"disputed_pct":0.3636,"investigation_id":"acfcb1c5-d03f-4e67-ae2f-60e8a37a8d1c","judge_def_hash":"8800307026131ea9d5da939d32b9a1f1884b2b84a5de33c8e87931d36f38d0f8","new_score":26,"page_slug":"payy-network","prev_score":28,"reason":"4 of 11 checkable claims (about 36%) were disputed, which falls in the significant-issues band. The disputes trace to two errors: the halt is dated September 25 where the cited reporting says September 24 (claim_findings[0], [1]), and the 'ten months' intervals do not match the page's own dates, which give about 11 months from pin to exploit and about 6.5 months from pin to patch (claim_findings[2], [3]). The core incident (date, amounts, two-transaction drain, swap to ETH) is confirmed, and the errors are factual slips rather than a wrong core allegation, so the penalty sits at the light end of the band. The technical root-cause detail rests on a single third-party GitHub issue instead of Payy's own post-mortem, and one claim was not checked because the source blocked the reviewer.","reviewer_def_hash":"bc11388ce4bc4deea1b064fea362663ae06e3f4f687f99604769044d6ffba770","score_delta":-2,"score_limit":{"applied":-2,"limited":true,"proposed":-15,"rule":"limited_no_second_opinion","second":null},"scored_claims":11,"sequence_num":3,"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}