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 · Hinkal Protocol
View on Solana ↗
Sequence
#3
Score
28 → 20 (-8)
Cluster
mainnet-beta
Slot
443511832
Off-chain at
2026-08-25T04:06:36.928Z
Anchored at
—
Block time
—

Independent verification

1. Database (off-chain)
GsVCe5myra3G4zTf76VnAW4F29FSWAtnGxcdYNXoR6ZG
2. Recomputed (your browser)
computing…
3. On-chain (Solana memo)
fetching…
Canonical bytes hashed (1840 chars)
{"actor":"judge","decided_at":"2026-08-25T04:06:36.562Z","decision":"review_revise","investigation_id":"fdf124d2-1bbf-496e-bfd8-259013dd6bbf","new_score":20,"page_slug":"hinkal-protocol","prev_score":28,"reason":"The page's central narrative -- the July 2026 nullifier-binding exploit, the attacker's address, the Tornado Cash/THORChain laundering path, the contract pause, and the reimbursement pledge -- is independently corroborated with zero disputed claims (disputed_pct 0.05). However, the review found four framing and sourcing problems that a raw disputed-claim count does not capture: the page states the loss as a flat '$820,000' throughout even though its own cited sources report a real spread (claim_findings[7]: $772K-$830K, with one source explicitly noting $797K as a downward revision of the $820K figure the page uses); a '$500 million in historical private transaction volume' figure is not supported by any of the three sources cited for it and traces only to the protocol's own marketing copy (claim_findings[2]); the April 2024 raise is labeled a 'seed round' though the issuer calls it a 'strategic funding round,' and an earlier, larger $4.1M seed round from November 2023 is omitted entirely (claim_findings[3]); and the 'Protocol Response' section's 'as of August 20, 2026' status claim appears to predate a July 20, 2026 reimbursement-process announcement identified by the reviewer, albeit from a single source at moderate confidence (claim_findings[16], coverage_gaps[0], flagged high priority). Under the review rubric, a high-priority coverage gap warrants a revise verdict even when disputed_pct alone sits in the approve band, and that is the deciding factor here.","score_delta":-8,"sequence_num":3,"submission_content_hash":null,"submission_id":null,"submission_kind":null,"submission_valence":null,"v":1}