Quest Protocol
The Quest Protocol is a standardized way to create quest-based collections that reward users with tokens and coins for completing cryptographically verified tasks. Quest collections are designed for achievement-based systems where users complete quests (tasks) and provide cryptographic proofs (Merkle proofs) to claim tokens along with coin incentives.
Protocol Requirements
Collection Standards
Must include "Quests" in the
standardsTimelinefor the current time periodMust have exactly one valid token ID:
{"start": "1", "end": "1"}
Quest Approval Requirements
From List: Must be "Mint" (minting from the mint address)
Merkle Challenge: Must have exactly one Merkle challenge with:
maxUsesPerLeaf: 1 (one use per proof)useCreatorAddressAsLeaf: false (custom proof verification)Valid Merkle root hash for proof verification
Coin Transfers: Must have exactly one coin transfer with:
Exactly one coin denomination and amount
overrideFromWithApproverAddress: true (coins come from collection creator)overrideToWithInitiator: true (coins go to the quest completer)
Max Transfers: Must have
overallMaxNumTransfers> 0Predetermined Balances: Must have:
Exactly one
startBalancewith amount 1 for token ID 1incrementTokenIdsBy: 0 (no token ID incrementing)incrementOwnershipTimesBy: 0 (no time incrementing)durationFromTimestamp: 0 (no time-based duration)allowOverrideTimestamp: false (no timestamp overrides)All
recurringOwnershipTimesfields set to 0 (no recurring)
Additional Constraints:
mustOwnTokens: empty (no prerequisite tokens)requireToEqualsInitiatedBy: false (no address matching required)
Validation Functions
Collection Validation
API Documentation: doesCollectionFollowQuestProtocol
Approval Validation
API Documentation: isQuestApproval
Implementation Example
For a complete implementation example, see the Quest Token Collection Example.
Last updated