The 13 disqualification rules
Every proof submitted to DASHH runs through a deterministic 13-rule pipeline before any SOL moves. Failing any rule means the proof is rejected, a strike is recorded against the creator's wallet, and the campaign continues without paying out for that proof.
The rules are coded in src/lib/reclaim/verify.ts and described in human terms in src/lib/terms.ts. They are the rules from DISQUALIFICATION_REASONS:
- Fabricated or manipulated engagement (bot traffic, view farms, click bots)
- Sybil behaviour — using multiple wallets or sock-puppet social accounts
- Submitting content you do not own — the post owner in the proof must match your verified social handle
- Submitting content published before the campaign started (old/recycled posts)
- Deleting, hiding, or privating the content before the campaign ends
- Submitting a Reclaim proof that fails cryptographic verification
- Impossible view velocity — spikes that exceed realistic human-engagement rates for your follower base
- Engagement-ratio mismatch (e.g. views without any likes or comments, indicative of farmed traffic)
- Hate speech, harassment, or any content that violates the host platform's ToS
- Misrepresenting the brand, product, or campaign terms
- Attempting to reverse or challenge a payout after on-chain settlement
- Editing the post significantly after the proof is submitted (bait-and-switch)
- Coordinating with other wallets to game payment models (e.g. manipulating Split-Top-N ranks)
Severity tiers
The verifier classifies each violation into one of three tiers:
warn— proof is flagged for community review but no strike is recorded. Used for borderline cases where a human should look.reject— proof is rejected and 1 strike is recorded. The standard outcome for the majority of rule violations.severe— proof is rejected AND triggers an immediate ban regardless of strike count. Reserved for proof-forgery attempts.
The 3-strike ban policy
- 3 strikes inside a rolling 90-day window → 90-day wallet ban.
- Banned wallets cannot join new campaigns, submit proofs, or receive payouts.
- Bans are wallet-level, not human-level. Sybil attacks (creating a new wallet to dodge a ban) are themselves disqualifying — rule 11 catches self-engagement rings.
- After 90 days, the ban automatically lifts. The strike counter resets only on the FIRST clean settlement after the ban ends.
Why no human appeals?
DASHH is “peer-to-peer, no admin” on purpose. An appeal mechanism creates a discretionary chokepoint — exactly the thing Web3 advertising is supposed to remove. The trade-off is that the rules must be ruthlessly explicit AND deterministic. We believe that's a feature, not a bug.
What to do if you think you were unfairly disqualified
Open a GitHub issue with the participation id and the specific rule you believe was triggered. If we find a bug in the verifier, we'll fix the bug and the rule will treat past matching cases more leniently going forward — but we will not retroactively reverse paid-out settlements.