Overview
Create custom achievements that users can earn based on specific actions or milestones in your protocol or application.Prerequisites
- Protocol Registration: Your protocol must be registered
- Admin Permissions: Must have achievement creation permissions
- Gas Fees: Sufficient ETH for transaction fees
- Achievement Design: Well-defined achievement criteria
Achievement Creation Process
1. Define Achievement Parameters
2. Create Achievement
3. Verify Creation
Achievement Parameters
Required Parameters
- name: Achievement display name
- description: Detailed description
- category: Achievement category (defi, nft, social, etc.)
- rarity: Rarity level (common, uncommon, rare, epic, legendary)
- points: Points awarded
- requirements: Requirements object
- imageUrl: Achievement badge image URL
Optional Parameters
- metadata: Additional metadata object
- expiration: Optional expiration timestamp
- maxClaims: Maximum number of claims allowed
- protocol: Associated protocol identifier
Requirement Types
Transaction Count
Score Threshold
Achievement Prerequisites
Custom Logic
Rarity and Points
Rarity Levels
| Rarity | Points | Description |
|---|---|---|
| Common | 10-50 | Easy to earn |
| Uncommon | 50-100 | Moderate difficulty |
| Rare | 100-250 | Challenging |
| Epic | 250-500 | Very difficult |
| Legendary | 500-1000 | Extremely rare |
Points Calculation
Error Handling
Common Errors
| Error | Description | Solution |
|---|---|---|
PROTOCOL_NOT_REGISTERED | Protocol not registered | Register protocol first |
INSUFFICIENT_PERMISSIONS | No creation permissions | Get admin permissions |
INVALID_REQUIREMENTS | Invalid requirements format | Fix requirements object |
ACHIEVEMENT_EXISTS | Achievement name already exists | Use unique name |
Error Handling Example
Best Practices
- Clear Requirements: Define clear, measurable requirements
- Appropriate Rarity: Match rarity to difficulty
- Unique Names: Use unique achievement names
- Test Thoroughly: Test requirements before deployment
- Monitor Usage: Track achievement claiming patterns