Introduction
Curate V2 is a decentralized system for creating community-curated lists on the blockchain. Anyone can submit items, challenge entries, and participate through economic incentives. When disputes arise, they’re resolved through Kleros Court.Smart Contracts
Core contract interfaces and data structures
Integration Guide
Frontend implementation and event monitoring
Deployment
- Arbitrum One (Production)
- Arbitrum Sepolia (Testnet)
| Component | Purpose |
|---|---|
| CurateV2 | Implementation contract |
| CurateFactory | Deploys new registries via ERC-1167 proxies |
| CurateView | Batch query helper |
Deploy your own registry through the CurateFactory contract. Each registry is an independent ERC-1167 minimal proxy.
Key Improvements from V1
| Feature | V1 | V2 |
|---|---|---|
| Deployment | Full contract per registry | ERC-1167 minimal proxy pattern |
| Governance | Single governor role | Separate governor and relayer roles |
| Arbitration | Parameters can change during dispute | Versioned arbitration parameters preserved |
| Queries | Individual calls | Enhanced batch queries via View contract |
System Architecture
Item Lifecycle
Items in Curate V2 follow a state machine with four possible states:Status Definitions
| Status | Description |
|---|---|
| Absent | Item does not exist in the registry |
| RegistrationRequested | Item submission pending, can be challenged |
| Registered | Item is active in the registry |
| ClearingRequested | Removal pending, can be challenged |
Challenge Mechanism
Economic Model
Deposits Required
| Action | Deposit Type |
|---|---|
| Submit item | Submission deposit + Arbitration cost |
| Remove item | Removal deposit + Arbitration cost |
| Challenge submission | Submission challenge deposit + Arbitration cost |
| Challenge removal | Removal challenge deposit + Arbitration cost |
Example Flow
Role Permissions
Governor
Governor
- Change arbitrator and arbitration parameters
- Update base deposits
- Modify challenge period duration
- Set connected lists
- Update list metadata
- Add/remove items directly (bypass challenge period)
Relayer
Relayer
- Add items directly (bypass challenge period)
- Remove items directly (bypass challenge period)
- Useful for automated integrations
Public
Public
- Submit item requests
- Submit removal requests
- Challenge requests
- Execute unchallenged requests
- Submit evidence
Arbitration Parameter Versioning
Key Insight:
arbitrationParamsIndex ensures disputes use the arbitration settings that were active when the request was created, even if governance later changes them.Use Cases
Token Lists
Community-curated lists of legitimate tokens, filtering out scams
NFT Collections
Verified collections and authenticity registries
Address Tags
Label addresses with warnings, categories, or metadata
Content Moderation
Decentralized content curation and filtering