Skip to main content
Sign in
← 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 · PaintSwap
View on Solana ↗
Sequence
#3
Score
6257 (-5)
Cluster
mainnet-beta
Slot
425157784
Off-chain at
2026-06-08T17:40:13.933Z
Anchored at
Block time

Independent verification

1. Database (off-chain)
F3B9We7aAC8gCLTUmzCpBhrbmMN5v68S7PWLhcWPET8S
2. Recomputed (your browser)
computing…
3. On-chain (Solana memo)
fetching…
Canonical bytes hashed (1271 chars)
{"actor":"judge","decided_at":"2026-06-08T17:40:13.750Z","decision":"review_revise","investigation_id":"db6e62bd-77b0-4b73-9a74-3a98505925f4","new_score":57,"page_slug":"paintswap","prev_score":62,"reason":"15 of 27 claims were fully confirmed and no core allegations were fabricated or disputed by a primary source. The reviewer's sole 'disputed' finding (claim_findings[13] and timeline[12] — the February 2026 all-time low) is a staleness issue: the figure was accurate at the time of writing but has since been superseded by a new low recorded June 6, 2026. Three additional claims are stale (price, market cap, and ATL figures in sections[1] and sections[7]), reflecting the inherently time-sensitive nature of price data on a low-cap token. Six partially supported findings involve minor framing differences and a one-domain omission (tpstest.click excluded from the incident domain list, claim_findings[20]). A high-priority coverage gap — no post-Sonic migration smart contract audit identified — does not contradict existing claims but represents a meaningful unaddressed risk that the page should flag more explicitly.","score_delta":-5,"sequence_num":3,"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}