RTA Protocol
Real-Time Assets (RTAs) are NFTs that acquire value in real-time through streaming activities. The RTA protocol is implemented through the integration of VibeFactory and PPM contracts.Protocol Overview
RTAs represent vibestreams as ERC-721 tokens that generate revenue through time-based participation. Unlike traditional NFTs with static value, RTAs accumulate value through active streaming sessions.RTAs are minted through VibeFactory and monetized via the PPM (Pay-Per-Minute) contract.
Core Mechanics
RTA Creation
RTAs are created through theVibeFactory.createVibestream() function:
Real-Time Value Accrual
WhenpayPerStream is enabled, the RTA generates value through:
- Participant Allowances: Users authorize spending for specific RTAs
- Time-Based Deductions: PPM contract deducts payments every 60 seconds
- Automatic Distribution: 80% to creator, 20% to treasury
RTA Data Structure
Each RTA contains the following immutable and mutable properties:Payment Flow
1
Authorization
Participants call
PPM.authorizeSpending() with tMETIS to create allowances for specific RTAs.2
Stream Entry
Users call
PPM.joinVibestream() to begin time-based payment processing.3
Real-Time Deduction
PPM contract automatically deducts payments every 60 seconds while participants remain active.
4
Revenue Distribution
Payments are distributed immediately: 80% to RTA creator, 20% to treasury.
Value Accumulation Model
RTAs accumulate value through the following formula:participant_allowances: Total authorized spending across all participantstime_active: Cumulative active streaming timepay_per_minute_rate: Rate defined at RTA creation (in wei per minute)
Security Features
Per-RTA Isolation
Each RTA maintains isolated allowance tracking to prevent cross-contamination of funds.Emergency Controls
PPM.emergencyStop(): Immediately removes participants from streams- Pausable functionality for system-wide halts
- Maximum allowance limits (1000 tMETIS per transaction)
Gas Optimization
- Minimum 60-second payment intervals prevent gas griefing
- Batch payment processing for multiple participants
- Gas-limited external calls (50,000 gas limit)
Integration Points
VibeFactory Integration
VibeKiosk Integration
RTAs can simultaneously support both ticket sales and real-time streaming:Protocol Diagram
graph TD
A[User] —>|createVibestream| B[VibeFactory]
B —>|mint RTA NFT| C[ERC-721 Token]
B —>|register if payPerStream| D[PPM Contract]E[Participant] —>|authorizeSpending| D
E —>|joinVibestream| D
D —>|deduct per minute| F[Payment Processing]F —>|80%| G[RTA Creator]
F —>|20%| H[Treasury]style C fill:#e1f5fe
style D fill:#f3e5f5
style F fill:#fff3e0
Implementation Constants
| Parameter | Value | Description |
|---|---|---|
MIN_PAYMENT_INTERVAL | 60 seconds | Minimum time between payments |
MAX_ALLOWANCE | 1000 tMETIS | Maximum allowance per transaction |
TREASURY_FEE_PERCENT | 20% | Treasury fee on all payments |
GAS_LIMIT | 50,000 | Gas limit for external calls |