Outposts
The Outpost manages the financial aspects of campaigns, including budget management, incentive distribution, and fee handling on Neutron. It implements a state machine that tracks campaign progress and ensures proper distribution of rewards according to campaign rules.
Campaign Lifecycle
The contract manages campaigns through several states:
- Created -> Initial campaign setup
- Funded -> Budget locked and ready for execution
- Indexing -> Data collection phase
- Attesting -> Verification of conversions
- Finished -> Campaign completed successfully
- Canceled/Failed -> Terminal states for unsuccessful campaigns
Key Features
Campaign Management
pub struct Campaign {
pub admin: Addr,
pub status: CampaignStatus,
pub budget: Option<CampaignBudget>,
pub spent: u128,
pub indexer: Addr,
pub attester: Addr,
pub segment_desc: SegmentDesc,
pub segment_size: u64,
pub conversion_desc: ConversionDesc,
pub payout_mech: PayoutMechanism,
pub ends_at: u64,
pub fee_claimed: bool,
}
Distribution Mechanics
- Supports proportional distribution per conversion
- Handles budget tracking and spending limits
- Manages fee distribution between indexers, attesters, and protocol
Security Features
- Role-based access control (admin, indexer, attester)
- Budget validation and tracking
- Conversion verification and duplicate prevention
- Deadline enforcement
The Outpost serves as a critical component in the Filament ecosystem by providing secure and verifiable token distribution mechanics on the Neutron blockchain while maintaining alignment with the Hub’s campaign coordination.