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_revise · Coinkite / Coldcard
View on Solana ↗
Sequence
#3
Score
18 → 13 (-5)
Cluster
mainnet-beta
Slot
443511564
Off-chain at
2026-08-25T03:44:13.292Z
Anchored at
—
Block time
—

Independent verification

1. Database (off-chain)
B4Mv1aXM9riNLkGxLbcb4XfUuchmMXUmUpXMArVNqxCR
2. Recomputed (your browser)
computing…
3. On-chain (Solana memo)
fetching…
Canonical bytes hashed (2118 chars)
{"actor":"judge","decided_at":"2026-08-25T03:44:12.939Z","decision":"review_revise","investigation_id":"fa3e4739-2493-471f-b16a-4a0503f66079","new_score":13,"page_slug":"coinkite-coldcard","prev_score":18,"reason":"This page's central factual narrative -- the RNG root cause, entropy collapse figures, affected firmware ranges, attack-wave amounts, the prior-warning account, and the CTO pseudonym allegation -- is confirmed by the review against independent primary reporting and is appropriately hedged where facts remain allegations rather than proven conclusions (claim_findings[3-9], [15-16]). The disputed_pct sits exactly at the 10% boundary (25 confirmed, 2 partially supported, 1 disputed, 2 unverifiable out of 30, reviewer confidence 0.8). I place this on the revise side of that boundary for two reasons that are independent of raw percentage. First, claim_findings[28] (the sole 'disputed' item) shows a quote attributed in quotation marks to Kraken's CSO in the Industry Impact section that does not match his verified wording and traces to a source not even cited in that section -- a real citation-integrity problem, even though it concerns a third-party commentator rather than the page's subject. Second, the review's own coverage_gaps flag two high-priority gaps (Coinkite's own technical post-mortem is not yet cited, and the CTO-identity GPG signature claim has not been independently replicated by any outside researcher) -- per standing review policy, high-priority gaps push a borderline page toward revise even when disputed_pct is low. Claim_findings[11] additionally shows the page's own summary attributing an 'in crypto history' superlative to TRM Labs when TRM's source language is scoped only to 2026, a sourcing overstatement in a prominent location. None of these issues touch the page's core allegations against Coinkite or its CTO, which remain solidly supported and properly hedged, so the penalty is set at the low end of the revise band.","score_delta":-5,"sequence_num":3,"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}