Skip to main content

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:

AspectBefore (Minting)After (Distribution)
Token sourceMinted on actionsTreasury distribution
Oracle dependencyYes (for staking)No (1:1 staking)
Reward timingInstant on actionDelayed (via treasury)
Supply riskInflation possibleFixed 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

ParameterValue
Max Supply21,000,000 HITZ
Current Supply~20,000,000 HITZ
Decimals7 (1 HITZ = 10,000,000 stroops)
StatusDistribution-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:

YearCumulative 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:

ActionDifficultyFee (HITZ)Stakes?Destination
Stream10.1 HITZNoTreasury (escrow)
Like20.2 HITZNoTreasury (escrow)
Download30.3 HITZNoTreasury (escrow)
Mine101.0 HITZYesContract (stake)
InvestDynamic3+ HITZYesContract (stake)

Fee Calculation

Formula: Fee = base_fee × difficulty

Where:

  • base_fee = 0.1 HITZ (1,000,000 stroops) by default
  • difficulty = 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)
InvestmentDifficultyStake
3 HITZ303 HITZ
10 HITZ10010 HITZ
100 HITZ1000100 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:

  1. User pays HITZ fee (0.1-0.3 HITZ)
  2. HITZ goes to Treasury wallet
  3. Entry's escrow value increases
  4. 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:

  1. User pays HITZ fee (1+ HITZ)
  2. HITZ goes to Contract as stake (1:1)
  3. Entry's tvl and total_stake increase
  4. User gets proportional ownership stake
  5. 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:

  1. Your HITZ fee is transferred to the contract
  2. Fee becomes your stake (1:1 ratio)
  3. Entry's total stake increases
  4. 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

  1. 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
  2. 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
  3. 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

  1. Verified Artist Status: Artists must be verified before they can set equity
  2. Upload with Equity: When uploading, verified artists can set their equity percentage (0-99.9%)
  3. Non-Dilutable: Artist equity is never diluted by fan investments
  4. 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:

  1. Daily Rate: 0.05% of treasury balance
  2. Proportional: Entries with more escrow get more rewards
  3. 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

  1. HITZ-Only Economy: All fees and rewards in HITZ tokens
  2. Post-Exhaustion: No minting, rewards from treasury distribution
  3. 1:1 Staking: Fee = stake, no oracle dependency
  4. Rate-Limited: 0.05% daily distribution (12-year curve)
  5. Proportional Claims: Stakers claim based on ownership percentage
  6. Non-Dilutable Artists: Artist equity never diluted by fans
  7. Sustainable: Fixed supply with long-term distribution