πIntroduction
Overview
The Manager Splitter module provides a permissioned proxy system for managing token collections. It allows collection managers to delegate specific permissions to approved addresses while maintaining control over the collection.
Manager Splitter Entity
A Manager Splitter is a permissioned proxy that:
Address: A module-derived address (derived from module name + ID) that serves as the collection manager. This is to be set as the actual manager in x/badges.
Admin: A permanent admin address with full control over the splitter and all permissions
Permissions: A mapping of collection permission types to execution criteria
Then, any token collection updates must be handled through this module and through the proxied address.
Permission System
The module mirrors the Badges module's CollectionPermissions structure but maps each permission to PermissionCriteria:
CanDeleteCollection: Permission to delete the collection
CanArchiveCollection: Permission to archive the collection
CanUpdateStandards: Permission to update collection standards
CanUpdateCustomData: Permission to update custom data
CanUpdateManager: Permission to update the manager timeline
CanUpdateCollectionMetadata: Permission to update collection metadata
CanUpdateValidTokenIds: Permission to update valid token IDs
CanUpdateTokenMetadata: Permission to update token metadata
CanUpdateCollectionApprovals: Permission to update collection approvals
Permission Criteria
Each permission can specify:
Approved Addresses: A whitelist of addresses that can execute this permission
If a permission has no criteria set, it is denied by default (except for the admin).
Admin Privileges
The admin address:
Has full control over the manager splitter
Can always execute all permissions
Can create, update, and delete the manager splitter
Cannot be changed after creation
Use Cases
Multi-sig Management: Multiple addresses can manage different aspects of a collection
Role-based Access: Different addresses can have different permission levels
Delegated Management: Delegate specific management tasks to trusted addresses
Governance Integration: Use manager splitters for governance-controlled collections
Security Model
Admin Control: Only the admin can create, update, or delete the manager splitter
Permission Checks: All actions check permissions before execution
Address Validation: All addresses are validated before use
Atomic Execution: Permission checks and execution are atomic
Immutable Admin: The admin address cannot be changed after creation
Limitations
Single Admin: Each manager splitter has one permanent admin
Approved Addresses Only: Currently supports whitelist-based permissions only
UniversalUpdateCollection Only: Currently only supports executing
UniversalUpdateCollectionmessagesNo Permission Inheritance: Permissions must be explicitly set for each action type
Alternative
This is an alternative to standard single manager approach. You can also explore setting up managerial systems with:
x/group - Cosmos SDK module for multisigs / DAOs and voting
DAO tooling
Custom WASM or EVM contracts
Last updated