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_approve · PeopleDAO
View on Solana ↗
Sequence
#5
Score
52 → 52 (0)
Cluster
mainnet-beta
Slot
443512300
Off-chain at
2026-08-25T07:32:42.760Z
Anchored at
—
Block time
—

Independent verification

1. Database (off-chain)
4FbFiozp8HBcvmhcDEn4A9yWPUmqkUXU6QKL1nmyxAAE
2. Recomputed (your browser)
computing…
3. On-chain (Solana memo)
fetching…
Canonical bytes hashed (2518 chars)
{"actor":"judge","decided_at":"2026-08-25T07:32:42.329Z","decision":"review_approve","investigation_id":"28b0aaa9-98f7-4552-b0ea-b8e96024fc77","new_score":52,"page_slug":"peopledao","prev_score":52,"reason":"The fact-check found the page's core claims hold up: 34 of 42 statements were confirmed outright, disputed_pct is 7.14% (well within the approve range), and there is no link rot or stale-source risk on any citation. Most importantly, the page's highest-severity content -- the March 2023 treasury theft (date, ~76.5 ETH amount, the 69.2/7.3 ETH exchange split, six-of-nine multisig detail, FBI/FTC reporting, and white-hat bounty offer) -- was independently confirmed by two separate primary sources (claim_findings[3], [12], [17]-[24]). The single disputed claim (claim_findings[27]) is a characterization issue, not a factual error: the page calls the $120,000 loss a 'significant portion' of the $5.4M treasury when it is roughly 2.2%, which overstates severity against the subject rather than understating a real risk, and both underlying dollar figures are independently confirmed elsewhere on the page. The remaining partially_supported items are minor: a KuCoin delisting date off by two to three weeks (claim_findings[41]), a token-metrics snapshot whose exact figures and 'early 2026' label don't precisely match an independently found July 2026 archive (claim_findings[33]), and two plausible but uncited inferences about control gaps presented as established fact rather than analysis (claim_findings[25]-[26]). On the coverage_gaps question: the reviewer marked 'community governance disputes' as a high-priority gap, but on inspection this is a purely speculative 'check whether any exist' suggestion with no evidence cited that such disputes actually occurred, and the reviewer itself attributes the priority framing to reviewer-guidance rather than a finding surfaced during research. Unlike the medium-priority gaps (treasury reconciliation, exchange-side fund tracing), which follow directly from facts already established on the page, this one is not grounded in anything found. Treating it as an automatic override would let phrasing in the review instructions manufacture a denial trigger rather than the page's actual content warranting one, so it is treated as a legitimate suggestion for future expansion, not as a deficiency requiring revision.","score_delta":0,"sequence_num":5,"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}