Rewards Overview
Skyhitz rewards accrue via on-chain variables maintained per entry and per user.
- TVL (Total Value Locked): total equity-bearing investments (stroops) across all users
- Escrow: total funds held by the contract for the entry (includes equity + earnings)
- APR: annualized rate derived on-chain from excess escrow over TVL
- Shares: user-specific equity (stroops); ownership =
shares / tvl
Only investments strictly greater than 0.3 XLM grant shares. Micro-spends at or below 0.3 XLM (stream completion, like, download) do not grant shares but increase escrow, which can raise APR.
Micro-spends vs. Investments
- Micro-spends (≤ 0.3 XLM): stream completion, like, download — increase escrow, no shares, may raise APR
- Investments (> 0.3 XLM): Invest or the equity half of Mine — increase escrow and TVL, grant shares proportionally to amount
Actions
All spend/invest actions ultimately call the same contract function invest(user, id, amount)
with different amount
values (converted to stroops × 1e7). Whether you earn shares depends on the single-call amount compared to the 0.3 XLM threshold.
-
Mine
- Total cost: 1.0 XLM split by the APR math (see “APR Math & Mining Partition”)
- Two contract invests: a micro-spend, inits escrow (≤ 0.3 XLM, no shares) and an equity invest (typically > 0.3 XLM, grants shares)
- Also includes a fee payment to the contract admin (Skyhitz comission)
-
Like
- Micro-spend (≤ 0.3 XLM), increases escrow only
- No shares are granted; can raise APR for all holders
-
Download
- Micro-spend (≤ 0.3 XLM) required before downloading
- Increases escrow only; no shares
-
Stream (completion)
- Micro-spend (≤ 0.3 XLM) on track completion
- Increases escrow only; no shares
-
Invest
- Any single invest amount strictly greater than 0.3 XLM grants shares and increases TVL.
- Shares are dilutive: ownership is
your_shares / tvl
. When others invest (> 0.3 XLM),tvl
grows and your percentage may decrease unless you also invest. Your absolute shares (stroops) never decrease; only the fraction can change as TVL expands.
-
Creator Claim (not yet implemented in the app)
- After manual verification, the creator can claim ownership of an entry.
- Initial allocation: 25% of total shares at claim time.
- Promotional boost: If they promote post‑claim (criteria to be published), their allocation increases to 50%.
-
Creator Takedown (not yet implemented in the app)
- After verification and a diligent process, an entry can be removed if necessary.
- TVL (invested funds) will be returned to users pro‑rata; shares and APR for the removed entry cease to exist.
-
Internal Mine / Mint
- For exclusive collaborations initiated with Skyhitz. Creators can launch exclusives where the initial share split is agreed up‑front.
- The exact initial percentage for creators is case‑by‑case and defined during the agreement phase.
- To start the process, email [email protected] (see landing page for more details).
Claiming Earnings
Earnings are the surplus lumens that accumulate in contract escrow beyond the equity TVL. Holders claim based on their ownership fraction.
Terminology (per entry):
- Earnings pool:
max(escrow - tvl, 0)
- User fraction:
user_shares / tvl
(computed in‑contract using 6‑decimal scaling) - Previously withdrawn:
withdrawn_earnings[user]
- Claimable amount:
user_fraction * earnings_pool - previously_withdrawn
Flow:
- Preview (read‑only): We expose a
claimableEarningsPreview
API that computes the same formula without invoking the contract, so the UI only enables “Claim” when the preview is > 0. - Invoke: When preview > 0, the app calls
claim_earnings(user, id)
on the Soroban contract. - Contract updates atomically:
- Decreases
escrow
byclaimable
- Increases
withdrawn_earnings[user]
byclaimable
- Recomputes
apr
- Transfers
claimable
from contract to the user
- Decreases
Units & rounding:
- Contract uses stroops (
i128
); 1 XLM = 10,000,000 stroops - Proportional math uses a scale constant (1_000_000) to reduce rounding error
- Client surfaces values in XLM with appropriate formatting
Example:
- tvl = 10.0 XLM, escrow = 12.0 XLM → earnings pool = 2.0 XLM
- user_shares = 2.5 XLM → user fraction = 2.5 / 10.0 = 25%
- previously_withdrawn = 0.4 XLM
- claimable = 25% × 2.0 − 0.4 = 0.1 XLM
Edge cases & FAQs:
- Why is claimable 0 even though escrow > tvl? You may have 0 shares, or your previously withdrawn amount equals your current entitlement.
- Does claiming change my shares? No. Claiming only decreases
escrow
and increaseswithdrawn_earnings[user]
. - Does claiming reduce APR? Often yes. Since APR is derived from
(escrow − tvl) / tvl
, paying out earnings lowers the numerator. - Can I spam claim? You can call again, but the second call typically returns 0 until new earnings accrue.