Rewards Overview
Skyhitz uses a post-exhaustion distribution model where the HITZ token supply is fully issued and rewards come from treasury distribution rather than minting.
System Overview
Post-Exhaustion Model
The HITZ supply is fully issued (~20M of 21M max). Key changes from the original model:
| Aspect | Before (Minting) | After (Distribution) |
|---|---|---|
| Token source | Minted on actions | Treasury distribution |
| Oracle dependency | Yes (for staking) | No (1:1 staking) |
| Reward timing | Instant on action | Delayed (via treasury) |
| Supply risk | Inflation possible | Fixed supply |
Single Contract
Skyhitz Core Contract: Handles user actions, staking, and reward distribution
- Records all user actions (stream, like, download, mine, invest)
- Manages HITZ token staking for equity actions
- Collects fees to Treasury (non-staking) or Contract (staking)
- Distributes HITZ rewards to entry pools
HITZ Token Economics
Supply Model
| Parameter | Value |
|---|---|
| Max Supply | 21,000,000 HITZ |
| Current Supply | ~20,000,000 HITZ |
| Decimals | 7 (1 HITZ = 10,000,000 stroops) |
| Status | Distribution-only mode |
Treasury Distribution (Bitcoin-Like)
Instead of minting, rewards come from treasury at a rate-limited pace:
Daily Distribution = Treasury Balance × 0.05%
This creates a 12+ year emission curve:
| Year | Cumulative Distribution |
|---|---|
| 1 | ~17% |
| 4 | ~52% |
| 8 | ~77% |
| 12 | ~88% |
Why 0.05%?
- Prevents market flooding
- Sustainable 12+ year runway
- Matches Bitcoin's proven halving model
User Actions
Action Types & Fees
All fees are in HITZ tokens:
| Action | Difficulty | Fee (HITZ) | Stakes? | Destination |
|---|---|---|---|---|
| Stream | 1 | 0.1 HITZ | No | Treasury (escrow) |
| Like | 2 | 0.2 HITZ | No | Treasury (escrow) |
| Download | 3 | 0.3 HITZ | No | Treasury (escrow) |
| Mine | 10 | 1.0 HITZ | Yes | Contract (stake) |
| Invest | Dynamic | 3+ HITZ | Yes | Contract (stake) |
Fee Calculation
Formula: Fee = base_fee × difficulty
Where:
base_fee= 0.1 HITZ (1,000,000 stroops) by defaultdifficulty= action-specific multiplier
Invest Action (Dynamic)
The Invest action scales with the investment amount:
- Minimum: 3 HITZ
- Scaling: 10 difficulty units per 1 HITZ
- Stake: 1:1 with fee (fee = stake)
| Investment | Difficulty | Stake |
|---|---|---|
| 3 HITZ | 30 | 3 HITZ |
| 10 HITZ | 100 | 10 HITZ |
| 100 HITZ | 1000 | 100 HITZ |
1:1 Staking Model
Post-exhaustion simplification: Fee = Stake
Stake Amount = Fee Paid
Benefits:
- No oracle dependency
- No price manipulation risk
- Simple and predictable
Two Revenue Streams
1. Escrow (Non-Equity Revenue)
Generated by: Stream, Like, Download actions
Purpose: Performance-based metric for distribution allocation
Flow:
- User pays HITZ fee (0.1-0.3 HITZ)
- HITZ goes to Treasury wallet
- Entry's
escrowvalue increases - Treasury bot distributes proportionally to entries with escrow
Key Point: These actions do NOT grant equity/stakes, but they DO increase the entry's share of treasury distributions.
2. TVL (Total Value Locked - Equity Revenue)
Generated by: Mine, Invest actions
Purpose: Entry valuation and long-term investment with equity stake
Flow:
- User pays HITZ fee (1+ HITZ)
- HITZ goes to Contract as stake (1:1)
- Entry's
tvlandtotal_stakeincrease - User gets proportional ownership stake
- User can claim proportional rewards from entry's reward pool
Key Point: These actions DO grant equity/stakes (proportional to stake), allowing users to claim ongoing rewards.
Action Details
Stream (Completion)
- Cost: 0.1 HITZ (1× base fee)
- Difficulty: 1
- Stake: None
- Effect: Fee to treasury; increases entry's escrow
- When: Triggered when user completes listening to a track
Like
- Cost: 0.2 HITZ (2× base fee)
- Difficulty: 2
- Stake: None
- Effect: Fee to treasury; increases entry's escrow
- When: User likes a track
Download
- Cost: 0.3 HITZ (3× base fee)
- Difficulty: 3
- Stake: None
- Effect: Fee to treasury; increases entry's escrow; enables download
- When: User wants to download a track
Mine
- Cost: 1.0 HITZ (10× base fee)
- Difficulty: 10
- Stake: 1.0 HITZ (1:1 with fee)
- Effect: Creates new entry; fee becomes stake; user gets ownership
- When: User brings external music (from Audius, etc.) into Skyhitz
- Note: Mining involves fetching metadata, pinning to R2 storage, and initializing on-chain
Invest
- Cost: 3+ HITZ
- Difficulty: Dynamic (10 per 1 HITZ)
- Stake: 1:1 with fee (3+ HITZ)
- Effect: Fee becomes stake; increases entry's TVL; user gets equity stake
- When: User wants to increase their stake in an existing entry
Staking & Ownership
How Staking Works
When you Mine or Invest:
- Your HITZ fee is transferred to the contract
- Fee becomes your stake (1:1 ratio)
- Entry's total stake increases
- You gain proportional ownership:
your_stake / total_stake
Ownership Benefits
Your ownership percentage determines:
- Reward Claims: Your share of the entry's reward pool
- Voting Power: Future governance rights (planned)
- Entry Success: As the entry performs well, reward pool grows
Dilution
- When others stake in the same entry, total stake increases
- Your absolute stake amount never decreases
- Your ownership percentage may decrease if others stake more
- However, if the entry performs well, your absolute rewards can still increase
Unstaking
Users can unstake their HITZ at any time:
- Call
unstake(entry_id, amount) - Stake is returned to user's wallet
- User loses proportional ownership
- User keeps already-claimed rewards
Example
Entry has 1000 HITZ total stake
You staked: 100 HITZ
Your ownership: 10%
Entry's reward pool grows to 500 HITZ
Your claimable: 50 HITZ (10% of 500)
Someone else stakes 500 HITZ
New total: 1500 HITZ
Your new ownership: 6.67% (100/1500)
But if reward pool grows to 900 HITZ:
Your claimable: 60 HITZ (6.67% of 900)
You still earn more despite dilution!
Claiming Rewards
Users with equity stakes (from Mine or Invest) can claim accumulated HITZ rewards from the entry's reward pool.
How It Works
Terminology (per entry):
- Reward Pool: Total HITZ allocated to this entry from Treasury distributions
- Staker Pool: Reward pool minus artist equity (if any)
- Total Stake: Sum of all users' HITZ stakes in this entry
- User Stake: Your HITZ stake in this entry
- Ownership:
your_stake / total_stake - Already Claimed: Total you've claimed from this entry previously
- Claimable: Your share of the pool minus what you've already claimed
Formula:
staker_pool = reward_pool × (100% - artist_equity%)
claimable = (your_stake / total_stake) × staker_pool - already_claimed
Claiming Flow
-
Preview (read-only): Check your claimable amount without invoking the contract
- Call
get_claimable_rewards(entry_id, user) - UI shows amount and enables "Claim" button if > 0
- Call
-
Claim (transaction): When you have claimable rewards
- Call
claim_rewards(entry_id, claimer) - Contract verifies you have stake in the entry
- Calculates your claimable amount
- Records the claim in
claimed[user] - Transfers HITZ from contract to your wallet
- Returns claimed amount
- Call
-
Multiple Claims: You can claim multiple times as rewards accumulate
- Each claim updates your claimed record
- Future claims only give you the new rewards since last claim
Example
Entry Stats:
- Total Stake: 1,000 HITZ
- Reward Pool: 500 HITZ
- Artist Equity: 0%
- Your Stake: 200 HITZ (20% ownership)
First Claim:
- Staker pool: 500 HITZ (100% - 0%)
- Your share: 20% × 500 = 100 HITZ
- Already claimed: 0
- Claimable: 100 HITZ ✓
After First Claim:
- Your claimed record: 100 HITZ
Later, Reward Pool Grows to 800 HITZ:
- Your share: 20% × 800 = 160 HITZ
- Already claimed: 100 HITZ
- Claimable: 60 HITZ ✓
Units & Precision
- Contract uses stroops (
i128): 1 HITZ = 10,000,000 stroops - All calculations use saturating arithmetic for safety
- UI displays values in HITZ with appropriate formatting
Claiming FAQs
Q: Why is my claimable amount 0 even though there's a reward pool?
- You may have no stake in this entry (only Mine/Invest grant stakes)
- You may have already claimed all available rewards
- The pool may not have grown since your last claim
- Artist equity may take a large portion of the pool
Q: Does claiming reduce my stake?
- No! Claiming only transfers rewards, your stake remains unchanged
- You continue earning on the same stake for future rewards
Q: Does claiming affect APR?
- No. APR is calculated based on reward pool vs total stake
- Your claim doesn't change the ratio for APR purposes
Q: Can I claim multiple entries at once?
- Currently, claims are per-entry
- Batch claiming may be added in future updates
Q: How often should I claim?
- Claim whenever the amount is worth the transaction fee
- There's no penalty for waiting
- Your rewards are safely tracked on-chain
Artist Equity (Non-Dilutable)
Verified artists can claim a non-dilutable percentage of rewards when uploading their music to Skyhitz.
How It Works
- Verified Artist Status: Artists must be verified before they can set equity
- Upload with Equity: When uploading, verified artists can set their equity percentage (0-99.9%)
- Non-Dilutable: Artist equity is never diluted by fan investments
- Separate Pool: Artist rewards are calculated before staker rewards
Equity Split Example
Artist uploads with 20% equity (2000 bps)
Staker pool: 80%
Entry earns 1000 HITZ in rewards:
- Artist gets: 200 HITZ (20%)
- Staker pool: 800 HITZ (80%)
If staker has 50% of total stake:
- Staker gets: 400 HITZ (50% of 800)
Claiming Artist Rewards
Artist Equity: 20% (2000 bps)
Reward Pool: 1000 HITZ
Artist's Total Share: 200 HITZ
Already Claimed: 50 HITZ
Claimable Now: 150 HITZ
Artists can claim their rewards anytime by calling claim_artist_equity(entry_id).
Collaborations
Multiple verified artists can claim equity on the same entry:
Entry: "Summer Vibes" (collaboration)
Artist A: 30% equity
Artist B: 20% equity
Total Artist Equity: 50%
Staker Pool: 50%
1000 HITZ rewards:
- Artist A: 300 HITZ
- Artist B: 200 HITZ
- Stakers: 500 HITZ (split by stake %)
Key Points
- Max Total Equity: 99.9% (must leave at least 0.1% for stakers)
- Immutable: Once set, artist equity cannot be changed
- Independent Claims: Each artist claims separately
- No Dilution: Fan investments don't affect artist percentage
Treasury System
Treasury Distribution
The Treasury distributes HITZ to entry reward pools with rate limiting:
- Daily Rate: 0.05% of treasury balance
- Proportional: Entries with more escrow get more rewards
- Automatic: Treasury bot runs daily
Distribution Formula
For each entry with escrow > 0:
entry_share = (entry.escrow / total_escrow) × daily_distribution
Entries with more escrow (more stream/like/download activity) receive a larger share of the HITZ distribution.
Example Distribution
Treasury Balance: 15,000,000 HITZ
Daily Distribution (0.05%): 7,500 HITZ
Entry A: 500 HITZ escrow (50%) → 3,750 HITZ
Entry B: 300 HITZ escrow (30%) → 2,250 HITZ
Entry C: 200 HITZ escrow (20%) → 1,500 HITZ
Economic Sustainability
Rate-Limited Distribution
The 0.05% daily rate ensures:
- 12+ year distribution runway
- No market flooding
- Gradual decline like Bitcoin's halving
Fixed Supply
With supply exhausted:
- No inflation possible
- Scarcity drives value
- All rewards from real engagement
Incentive Alignment
- Listeners: Contribute to entry escrow → help their favorite entries earn more
- Stakers: Stake in quality entries → earn proportional rewards
- Artists: Set equity → earn from all future rewards
Key Takeaways
- HITZ-Only Economy: All fees and rewards in HITZ tokens
- Post-Exhaustion: No minting, rewards from treasury distribution
- 1:1 Staking: Fee = stake, no oracle dependency
- Rate-Limited: 0.05% daily distribution (12-year curve)
- Proportional Claims: Stakers claim based on ownership percentage
- Non-Dilutable Artists: Artist equity never diluted by fans
- Sustainable: Fixed supply with long-term distribution