Gating On-Chain Approvals
How It Works
1. User completes claim β receives Merkle proof leaf (one-time use code - handled behind the scenes)
2. User submits proof on-chain β in a transfer/mint transaction
3. On-chain approval criteria β validates the Merkle proofOn-Chain Types
Merkle Challenge (Approval Criteria)
interface iMerkleChallenge<T extends NumberType> {
root: string; // Merkle tree root hash
maxUsesPerLeaf: T; // Max uses per leaf (1 = one-time use)
uri: string; // Where to fetch merkle metadata
customData: string; // Arbitrary on-chain data
challengeTrackerId: string; // Tracker ID for usage tracking
leafSigner: string; // Address that signs leaves (ETH address)
}Merkle Proof (User Submission)
Challenge Tracker
The Hybrid Process
Step 1: Off-Chain Claim
Step 2: On-Chain Transaction
What the User Sees
Linking Claims to On-Chain Approvals
Field
Purpose
Consistency Requirements
Common Misalignment Scenarios
Scenario
Result
Best Practices
Permissions & Manager Authority
Manager Transfers
Last updated