Resolv Docs
  • Overview
    • What is Resolv?
    • USR
    • RLP
    • Resolv Collateral Pool
    • Profit distribution
    • Why use Resolv?
  • Useful Definitions
    • Delta-Neutral Portfolio
    • Perpetual Futures
  • Using Resolv
    • USR
      • Mint
      • Stake
      • Redeem
    • RLP
      • Mint
      • Redeem
    • Resolv points
      • Seasons
        • Season 1
        • Season 2
    • External integrations
  • RESOLV token
    • Resolv Token Airdrop
    • Resolv Token Overview
    • Staked Resolv Token (stRESOLV)
    • Staking Multiplier
  • Protocol Mechanics
    • Collateral Pool
      • Futures Positions
      • Inventory Management
      • Staking
      • Liquidity Management
      • Exposure Allocation
    • Profit Distribution
      • Calculation Example
    • Fees
    • Risks and Mitigants
    • FAQ
  • For developers
    • Smart Contracts
    • Token supply operations
      • USR
      • RLP
  • Resources
    • Security
    • Contacts
  • Legal
    • Terms of Service
    • RESOLV Staking Terms
    • Privacy Policy
    • Airdrop Terms
Powered by GitBook
On this page
  • Staking & Unstaking Workflows
  • Staking
  • Unstaking
  • Rewards Distribution
  • Reward Model. Average holding period multiplier
  • Key Concepts
  • How Deposits and Withdrawals Affect WAHP
  • Deposits
  • Withdrawals
  • Staking reward allocation example
  1. RESOLV token

Staking Multiplier

Detailed description of the RESOLV staking multiplier

The multiplier is based on how long you’ve staked $RESOLV tokens. It only updates when you interact with the contract, like staking more or claiming rewards. New deposits may slightly lower it, as they count as newly staked.

$RESOLV tokens are staked in a liquid, non‑term-escrowed vault. Unstaking is permissionless but subject to a fixed 14‑day cooldown.

Staking & Unstaking Workflows

Claiming staking rewards will open together with the token listing, so that users are able to claim rewards on the day trading begins.

Staking

Users deposit $RESOLV (via a frontend interface) and receive $stRESOLV. Staking is atomic and permissionless.

Unstaking

Users trigger an unstake, which is subject to a 14‑day cooldown. Once the cooldown elapses, the staked tokens are returned, and the corresponding $stRESOLV is burned.

Rewards Distribution

  • Epochs:

    Rewards are allocated in consecutive 14‑day epochs. Reward budget for stakers is a part of total reward budget for Season 2 of Resolv point campaign, which is no lower than 5% total token supply.

  • Reward Types:

    Rewards include $RESOLV and, potentially, other tokens

  • Allocation:

    Each user’s reward share is based on their $stRESOLV holding and how long the tokens have been staked.

Reward Model. Average holding period multiplier

Allocation of staking rewards to each holder of $stRESOLV depends on the period during which it has been holding tokens. Long-term holders have a multiplier of up to 2x on their rewards as compared to users who started staking recently. The multiplier is updated for future reward accrual when a user interacts with the staking contract. Rewards accrued in the past are computed using the effective balance as it was then. When a user deposits or withdraws $RESOLV, or collects staking rewards, the contract updates effective multiplier for all future rewards.

This approach avoids retroactive recalculation. It works as follows:

Key Concepts

  1. Raw Stake (X):

    The number of tokens the user currently has staked.

  2. Accumulated Age (A):

    The total “token–seconds” the user’s stake has been held. For example, if a user stakes 50 tokens for 1 day (86,400 seconds), the accumulated age is

A=50×86,400=4,320,000 token–seconds.A = 50 \times 86{,}400 = 4{,}320{,}000 \text{ token–seconds}.A=50×86,400=4,320,000 token–seconds.
  1. Weighted Average Holding Period (WAHP):

    The average age per token, calculated as

WAHP=AX.\text{WAHP} = \frac{A}{X}.WAHP=XA​.
  1. Boost Factor:

    The boost factor rewards users for holding tokens longer. It is computed (in a fixed‑point manner) as

boostFactor=min⁡ ⁣(1+WAHP in years, 2).\text{boostFactor} = \min\!\Bigl(1 + \text{WAHP in years},\, 2\Bigr).boostFactor=min(1+WAHP in years,2).

(For example, if WAHP in years is 0.0192, then the boost factor is 1.0192x.)

  1. Effective Balance:

    The “effective balance” used for rewards is the raw stake multiplied by the boost factor:

effectiveBalance=X×boostFactor \text{effectiveBalance} = X \times \text{boostFactor}effectiveBalance=X×boostFactor

This is the value that determines each user’s share of the rewards.

  1. Global Effective Supply:

    The sum of the effective balances of all users. Rewards are distributed in proportion to each user’s effective balance compared to this global total.

How Deposits and Withdrawals Affect WAHP

Deposits

  • Before a New Deposit:

    The user’s tokens have been accumulating age. For example, if a user deposited 50 tokens and held them for 1 day, the accumulated age is 4,320,000 token–seconds, and the average age per token is 86,400 seconds (1 day).

  • When New Tokens are Deposited:

    The new tokens start with a minimal baseline age (1 second per token).

    • The overall new raw stake becomes the sum of the old stake plus the new deposit.

    • The new total accumulated age becomes the old accumulated age plus the baseline age for the new tokens.

    • The new average age (WAHP) is then

avgAgenew=old accumulated age+(new deposit baseline age)old stake+new deposit.\text{avgAge}_{\text{new}} = \frac{\text{old accumulated age} + \text{(new deposit baseline age)}}{\text{old stake} + \text{new deposit}}.avgAgenew​=old stake+new depositold accumulated age+(new deposit baseline age)​.
  • Since the new tokens contribute a very small age, the overall average is “diluted” compared to if the old tokens had continued to accumulate.

  • This diluted average age is used to compute a new boost factor (which will be lower than if all tokens had been held for longer) and, in turn, a new effective balance.

Withdrawals

  • When Tokens Are Withdrawn:

    The user’s raw stake decreases. Weighted average holding period is not affected.

  • For example:

    Suppose a user has 100 tokens with a total accumulated age of 1,000,000 token–seconds (so an average of 10,000 seconds per token). If the user withdraws 40 tokens, the new raw stake becomes 60 tokens. To maintain the same average age (10,000 seconds), the new total accumulated age should be:

Anew=1,000,000×60100=600,000 token–seconds.A_{\text{new}} = 1{,}000{,}000 \times \frac{60}{100} = 600{,}000 \text{ token–seconds.}Anew​=1,000,000×10060​=600,000 token–seconds.

Thus, the weighted average holding period does not change.

Staking reward allocation example

Example

Let’s consider a two-user scenario over a 14‑day reward period with 140 reward tokens allocated in total (10 tokens per day).

Initial Deposits (Day 0)

  • UserA: Deposits 2000 tokens

    • Raw stake = 2000

    • Accumulated age = 0 (just deposited)

    • Effective balance = 2000 (multiplier = 1)

  • UserB: Deposits 500 tokens

    • Raw stake = 500

    • Accumulated age = 0

    • Effective balance = 500

  • Global effective supply: 2000 + 500 = 2500

After 7 Days (Before Additional Deposit)

Time elapsed = 7 days = 604,800 seconds.

  • UserA:

    • The 2000 tokens accumulate:

    AA=2000×604,800=1,209,600,000 token–seconds.A_{A} = 2000 \times 604{,}800 = 1{,}209{,}600{,}000 \text{ token–seconds.} AA​=2000×604,800=1,209,600,000 token–seconds.

    • Average age

    1,209,600,000/2000=604,800seconds(7days). 1,209,600,000 / 2000 = 604,800 seconds (7 days). 1,209,600,000/2000=604,800seconds(7days).

    • Boost factor

    • Effective balance

      2000×1.0192≈2038.42000 \times 1.0192 \approx 2038.42000×1.0192≈2038.4

  • UserB:

    • Still has 500 tokens with no checkpoint update, so effective balance remains 500.

  • Global effective supply at Day 7:

    Approximately 2038.4 + 500 = 2538.4.

Rewards for day 0–7 (70 tokens) are theoretically allocated proportionally (UserA ~56 tokens; UserB ~14 tokens) but remain unclaimed.

Additional Deposit by UserA at Day 7

UserA deposits an extra 500 tokens at day 7.

  • Before Deposit for UserA:

    • Raw stake = 2000

    • Accumulated age = 1,209,600,000 token–seconds

    • Average age = 604,800 seconds.

  • New Deposit: 500 tokens, with a baseline age of 1 second per token → adds 500 token–seconds.

  • After Deposit:

    • New raw stake = 2000 + 500 = 2500 tokens.

    • New total accumulated age

      1,209,600,000+500=1,209,600,500token–seconds. 1,209,600,000 + 500 = 1,209,600,500 token–seconds. 1,209,600,000+500=1,209,600,500token–seconds.

    • New average age =

      1,209,600,5002500≈483,840.2 seconds (≈5.6 days). \frac{1,209,600,500}{2500} \approx 483,840.2 \text{ seconds (≈5.6 days)}.25001,209,600,500​≈483,840.2 seconds (≈5.6 days).

  • New Boost Factor for UserA:

    • Convert 483,840 seconds to years:

      483,84031,536,000≈0.01535.\frac{483,840}{31,536,000} \approx 0.01535.31,536,000483,840​≈0.01535.

    • Boost factor

      1+0.01535≈1.01535.1 + 0.01535 \approx 1.01535. 1+0.01535≈1.01535.

  • New Effective Balance for UserA:

    2500×1.01535≈2538.38 tokens effective.2500 \times 1.01535 \approx 2538.38 \text{ tokens effective.}2500×1.01535≈2538.38 tokens effective.

  • Global effective supply after UserA’s deposit:

    UserA: ≈ 2538.38

    UserB: still 500 (since UserB is stale)

    Total ≈ 3038.38 effective tokens.

Reward Distribution Over 14 Days

Total reward tokens = 140.

Day 0–7 Allocation:

  • Global effective supply (based on checkpoints at day 7) was 2500.

  • UserA’s share (about 56 tokens):

    2000/2500≈80%2000 / 2500 \approx 80\%2000/2500≈80%

  • UserB’s share (about 14 tokens):

    500/2500≈20%500 / 2500 \approx 20\%500/2500≈20%

Day 7–14 Allocation (after UserA’s additional deposit):

  • Global effective supply now is approximately 3038.38.

  • UserA’s effective balance is now ≈ 2538.38.

  • UserB remains at 500.

  • Fraction for UserA (58.45 tokens):

2538.38/3038.38≈83.5%2538.38 / 3038.38 \approx 83.5\%2538.38/3038.38≈83.5%

  • Fraction for UserB (11.55 tokens):

500/3038.38≈16.5%500 / 3038.38 \approx 16.5\%500/3038.38≈16.5%

Total Rewards over 14 Days:

  • UserA:

    Day 0–7: ~56 tokens

    Day 7–14: ~58.45 tokens

    Total ≈ 114.45 tokens.

  • UserB:

    Day 0–7: ~14 tokens

    Day 7–14: ~11.55 tokens

    Total ≈ 25.55 tokens.

Thus, by the end of the 14‑day period, the 140 reward tokens are distributed approximately as 114.45 tokens to UserA and 25.55 tokens to UserB.

PreviousStaked Resolv Token (stRESOLV)NextCollateral Pool

Last updated 5 days ago