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 · Adform Ad-Tech Supply Chain Wallet Swap Attack
- Sequence
- #3
- Score
- 20 → 6 (-14)
- Cluster
- mainnet-beta
- Slot
- 443520244
- Off-chain at
- 2026-08-26T11:05:00.855Z
- Anchored at
- —
- Block time
- —
Independent verification
- 1. Database (off-chain)
- 3vjfXGUgCPXCGm2s9mrAMHfPT2ZC85FXTHrkuHUzFZJB
- 2. Recomputed (your browser)
- computing…
- 3. On-chain (Solana memo)
- fetching…
Canonical bytes hashed (1764 chars)
{"actor":"judge","decided_at":"2026-08-26T11:05:00.712Z","decision":"review_revise","investigation_id":"8e56f9fb-fabd-445a-85fa-6b1a284eb4e8","new_score":6,"page_slug":"adform-ad-tech-supply-chain-wallet-swap-attack","prev_score":20,"reason":"This page's disputed rate is 20% (4 of 30 claims), which falls in the review_revise range, but the disputed claims are not scattered minor errors -- they are four restatements of a single central claim (claim_findings[3], [16], [17], [28]) that the compromise may have run 'at least a week,' and Adform's own dated incident update, which the page never cites, puts the real window at about 19.5 hours. Three additional claims (claim_findings[12], [25], [29]) are marked stale for the same underlying reason: the page relies on Adform's early statements about data exfiltration and regulatory notification without incorporating the company's own August 5 update, which narrows the exfiltration risk to certain pages and names the Danish Data Protection Authority as a notified regulator. The reviewer's single high-priority coverage gap points to this same missing source, so the page's biggest problem is a citation gap rather than fabricated or contradicted-by-outsiders content. The review also found the page erring in both directions -- overstating confirmed exposure in one figure (claim_findings[1]) while omitting a researcher's criticism that softens the company's image (a coverage gap) -- so there is no one-sided bias, and 18 of 30 claims were fully confirmed with correct framing of Adform as the compromised party rather than a negligent actor (claim_findings[6]).","score_delta":-14,"sequence_num":3,"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}