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 · BullX
- Sequence
- #3
- Score
- 42 → 27 (-15)
- Cluster
- mainnet-beta
- Slot
- 443526108
- Off-chain at
- 2026-08-27T13:10:59.066Z
- Anchored at
- —
- Block time
- —
Independent verification
- 1. Database (off-chain)
- H4eUUVJWyz8PWxTBrLVofTaJomxWxDvXqTs43zqRdvz1
- 2. Recomputed (your browser)
- computing…
- 3. On-chain (Solana memo)
- fetching…
Canonical bytes hashed (1988 chars)
{"actor":"judge","decided_at":"2026-08-27T13:10:58.846Z","decision":"review_revise","investigation_id":"f0d339b4-be9e-4fc9-8a12-530357b002fe","new_score":27,"page_slug":"bullx","prev_score":42,"reason":"Independent recomputation from the 40-item claim list gives a disputed rate of 22.5% ((5 disputed + 4 unverifiable) / 40), which falls in the 10-30% band and does not reach the 30% threshold that would trigger under-investigation status. Within that band, the penalty is set at the high end because the review surfaced a cluster of check-against-own-source errors rather than isolated typos: a dramatic user-collapse statistic that splices two unrelated figures from the same cited article into a number the source never stated (claim_findings[19]), a cited comparison test's 90-day duration mislabeled as 18 months (claim_findings[34]), a competitive claim attributed to two articles that do not contain it (claim_findings[35]), and a misquotation of the subject's own Terms of Use (claim_findings[11]). Most consequential is an omission, not a disputed claim: the page states the platform 'remains operational as of mid-2026' without disclosing the June 1, 2026 suspension of core trading reported across seven independent outlets (claim_findings[3], corroborated by a high-priority coverage gap). Because this is a factual omission on a stale claim rather than a disputed one under the spec's numerator rules, it does not move disputed_pct, but it is weighed heavily in setting the penalty toward the top of the band. A stale competitor market-share figure (claim_findings[32]) also inflates a rival's standing relative to BullX. The reviewer's confidence (0.75) is solid, and it actively verified several absence claims (no audit, no unmasked CEO identity) rather than assuming them, so no confidence discount was applied to the penalty.","score_delta":-15,"sequence_num":3,"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}