Reference
Contribution Roles Reference
Complete reference for ContributionRole - allocation rules, auto-derivation, and on-chain settlement.
ContributionRole has eight values in two tiers:
- Creator-allocated (
CREATOR,COLLABORATOR) - the creator sets the recipient and percentage freely from their remainder. - Protocol-routed (
TEMPLATE_ARTIST,STICKER_ARTIST,CONTRACT_TEMPLATE_DEVELOPER,FUNDING_GROUP,PLATFORM,APP_HOST) - the server derives both recipient and rate from the registered asset, approved group, or app record.
Role reference
CREATOR
- Required: Exactly one per smart product
- Auto-derived: No
- Percentage: Calculated as
100 - sum(all other roles) - Notes: Cannot be removed after creation
COLLABORATOR
- Required: No
- Auto-derived: No
- Notes: Requires
recipientAddress; up to (10 - other contributions) allowed
TEMPLATE_ARTIST
- Auto-derived: Yes - from
StyleSet.royaltyPercentage - Default percentage: 20% (overridable via
StyleSetProductType.royaltyPercentage) - Notes: One per product; adding a StyleSet replaces the previous TEMPLATE_ARTIST row
STICKER_ARTIST
- Auto-derived: Yes - when a sticker is applied
- Default percentage: none - read from
Sticker.royaltyPercentage, set by the artist at publish time - Notes: One per product
FUNDING_GROUP
- Required: No
- Constraint: FundingGroup must be
APPROVEDorVERIFIED, not blacklisted, and have astxAddress - Notes: Multiple FUNDING_GROUP contributions allowed per product (one row per pick); subject to the overall 10-contribution cap
PLATFORM
- Required: No
- Auto-derived: No
- Notes: No rows seeded at launch. Reserved for future protocol fee. Not user-configurable.
CONTRACT_TEMPLATE_DEVELOPER
- Required: No
- Auto-derived: Yes - from the contract template the product deploys from
- Notes: Protocol-routed supply-chain role. Recipient and rate are derived server-side; not user-configurable. Inert (rate 0) until the protocol fee is switched on.
APP_HOST
- Required: No
- Auto-derived: Yes - from the app record that hosts the product
- Notes: Protocol-routed supply-chain role. Recipient and rate are derived server-side; not user-configurable. Inert (rate 0) until the protocol fee is switched on.
Allocation rules
| Rule | Detail |
|---|---|
| Percentages must sum to 100% | Enforced at API validation |
| Max 10 contributions | Across all roles |
| Positions frozen at deploy | freezePositions() called before contract generation |
| CREATOR is required | Exactly one, cannot be skipped |