
Explore checkers, demos and evaluation routes →
Summarize this page with
A Merkle proof can establish that an allocation belongs to an approved set. It does not establish that the underlying participants are independent people. To make a claim flow Sybil-resistant, validate eligibility before building or authorizing the allocation, bind it to the intended campaign and recipient, and enforce redemption through the trusted backend or contract.
- 1Bind the participant
- 2Approve eligibility
- 3Enforce redemption
Separate evidence, eligibility and redemption
These three stages solve different problems. Evidence describes the participant and observed activity. Eligibility applies the campaign’s rules. Redemption transfers or records the approved benefit while preventing repeat use.
A secure transport for evidence does not automatically make the allocation policy fair. A correctly implemented Merkle proof does not repair an allowlist that contains many ineligible entries. A good review process does not protect funds if a direct contract call can redeem an unauthorized amount.
| Stage | Example input | Required outcome |
|---|---|---|
| Evidence | Wallet history, verified session, required credential | A result tied to the intended participant and time |
| Eligibility | Campaign rule and inspected evidence | Approved recipient, amount and participation scope |
| Authorization | Versioned allowlist or signed approval | An authorization the redemption boundary can verify |
| Redemption | Proof or authorization and recipient | Valid, correctly bound use with duplicate prevention |
| Correction | Reviewed dispute and prior decision | A controlled update consistent with the deployed mechanism |
Use the complete guide to choose evidence layers and the evaluation guide to define legitimate cases before implementation.
Bind a wallet to the observed participant
If the application observes a browser and a wallet, it needs a trustworthy association between them. A wallet address typed into a request does not prove ownership. Use the application’s appropriate wallet-ownership verification and protect its challenge, session and replay properties.
For live device evidence, retrieve or verify the provider’s actual result rather than accepting a client-submitted risk label. ShieldLabs supplies device/network and account-abuse context on supported enrollment and claim visits. The application provides the account or wallet association and uses that evidence in its eligibility process.
Wallet analysis can also run before enrollment. For example, an existing snapshot can be analyzed using Trusta or Human Passport Data Services. That analysis does not recreate device observations from the qualifying period.
Decide what the allocation authorization commits to
For a fixed allowlist, review the allocation before publishing the root and opening claims. A Merkle leaf must encode the fields the implementation intends to authorize, such as the recipient, allocation and relevant campaign or index. The encoding and verification must match exactly.
For a dynamically authorized flow, establish what the trusted issuer signs and what the redemption boundary checks. The design may need campaign, chain, recipient, amount, expiry and a unique-use identifier. These are design requirements to inspect with the contract implementation, not a ready-to-deploy signature format.
Avoid publishing a generic snippet as though it were a complete claim contract. Encoding, replay protection, upgrade permissions, supported tokens and transaction behavior depend on the actual implementation. Have the deployed mechanism reviewed against its own specification.
Enforce uniqueness at the correct scope
A uniqueness credential needs the correct application and action scope. A participant may be allowed to enter two separate campaigns but only once in each. Reusing an action identifier or tracking duplicates at the wrong scope can deny permitted access or allow repeated eligibility.
For World ID, inspect the required proof results, requested action and environment. The current reference distinguishes individual results; top-level success can mean at least one proof passed. A sandbox response must never satisfy production eligibility simply because its structure resembles a successful result.
Credential verification and token redemption also have separate duplicate questions. A valid participant should not receive repeated authorizations for one allocation, and an issued authorization should not be redeemable more than intended. Test both stages and their failure paths.
Test direct calls, delayed results and parallel requests
The web interface is not the enforcement boundary. A participant can call a contract directly, use another interface or submit requests concurrently. Verify that those routes still require valid eligibility and redemption authorization.
A practical test plan includes:
- A correctly authorized recipient claiming the permitted amount.
- A different recipient presenting the same authorization.
- A replay after successful redemption.
- Two concurrent attempts for the same allocation.
- A proof or signature from another campaign or environment.
- An expired, missing or pending eligibility result.
- A changed allocation after an appeal.
- An unavailable provider during the claim window.
Define how pending evidence is handled before launch. An error should not silently become a passing identity result. Equally, a provider timeout should not automatically become confirmed abuse in the participant’s record.
Make corrections compatible with the deployed claim model
An appeal may change eligibility before the root is finalized. Once claims open, the correction options depend on contract design, update authority and existing redemptions. A support email cannot reverse an already transferred allocation.
Choose the review window and root-update policy in advance. Record the policy and evidence version for each decision. If a correction requires a later distribution, explain that route without promising an immediate contract change that the system cannot perform.
Keep operational records proportionate: enough to trace a decision, investigate duplicate use and correct an error, with controlled access and a defined retention period. Do not publish raw device relationships or identity evidence in a public allowlist.
FAQ
Does a Merkle proof establish that a claimant is not a Sybil?
No. It establishes membership in the approved allocation set under the contract’s verification. The quality of that set depends on the eligibility process that produced it.
Is hiding the claim button enough to enforce a risk check?
No. A direct backend or contract call can bypass interface behavior. The trusted redemption path must require the appropriate authorization.
Can we change an allocation after an appeal?
That depends on the deployed mechanism and claim state. Define the review window, update authority and correction route before publishing the allocation.
Sources and further reading
Official sources read October 21, 2026: World ID verification reference, World ID integration, ShieldLabs Sybil solution, Trusta API and Human Passport Data Services. The flow above is an application-design checklist, not a vendor SDK or audited smart contract.
Continue reading
- Sybil resistance in blockchain: identity, eligibility and consensus
- How to detect airdrop wallet farms before allocation
- Device intelligence vs wallet reputation vs proof of personhood
Compare all ten tools or read the complete deployment guide.