Subscriptions Contract
The Subscriptions contract manages monthly subscriptions for VibesFlow Vibe Market access. Users pay 10 tMETIS for 30-day access to the Vibe Market platform.Contract Overview
Address:0xC5178c585784B93bc408eAd828701155a41e4f76Standard: Custom subscription management
Default Price: 10 tMETIS (configurable)
Default Duration: 30 days (configurable)
Features: Time-based subscriptions, automatic expiration, renewal system
Subscription Model
Subscription Structure
Each user’s subscription is tracked with the following data:Default Configuration
Core Functions
Initial Subscription
- Must send exactly
subscriptionPricetMETIS - Contract must not be paused
- Validates payment amount
- Calculates subscription period
- If existing subscription is active, extends from current end time
- If no subscription or expired, starts new 30-day period
- Updates active subscriber tracking
- Transfers payment to treasury
- Emits subscription event
Subscription Renewal
- Must have previously subscribed
- Must send exactly
subscriptionPricetMETIS
- Validates existing subscription
- If still active, extends from current end time
- If expired, starts new period from current time
- Increments renewal counter
- Updates payment tracking
- Transfers to treasury
Subscription Validation
Active Subscription Check
Time Remaining
Expiration Check
Administrative Functions
Price Management
SubscriptionPriceUpdated event.
Duration Management
SubscriptionDurationUpdated event.
Treasury Configuration
Emergency Controls
Pausable Operations
Emergency Withdrawal
Maintenance Functions
Cleanup Expired Subscriptions
Analytics Functions
Subscriber Metrics
Configuration Queries
Events
Subscription Events
Configuration Events
Security Features
Payment Validation
Strict payment validation ensures exact amounts:Reentrancy Protection
All payable functions usenonReentrant modifier:
Access Control
- Only owner can modify configuration
- Only owner can pause/unpause operations
- Users can only manage their own subscriptions
Fallback Protection
Contract rejects direct payments:Usage Examples
Initial Subscription
Renewal
Checking Subscription Status
Administrative Operations
Integration Points
Vibe Market Access Control
The subscription contract serves as an access control mechanism for the Vibe Market. Frontend applications can check subscription status before granting access:Revenue Tracking
All subscription payments flow directly to the treasury, providing transparent revenue tracking:Subscription Lifecycle
1
Initial Subscription
User calls
subscribe() with 10 tMETIS, receives 30-day access2
Active Period
User has full Vibe Market access, tracked via
isSubscribed()3
Renewal
User can renew before or after expiration via
renewSubscription()4
Expiration
Subscription expires automatically, access is revoked
5
Cleanup
Periodic cleanup maintains accurate active subscriber count