> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vita.finance/llms.txt
> Use this file to discover all available pages before exploring further.

# Session-Based Rewards

> Understanding Vita's unique weekly reward distribution system

You earn rewards based on your **actual contribution time** during each weekly session, not just a snapshot balance. This time-weighted system prevents gaming and ensures you receive truly fair rewards for your participation.

<Info>
  **Key Innovation**: Your rewards are calculated using time × balance, not just balance at snapshot time. This means you earn proportionally to how long you maintain your position.
</Info>

## How Sessions Work

Each session runs for exactly 7 days, from Monday 00:00 UTC to Sunday 23:59 UTC. Your rewards accumulate throughout this period based on your time-weighted balance.

## Session Timeline

<Steps>
  <Step title="Session Start (Monday 00:00 UTC)">
    • New reward pool allocated\
    • Tracking begins for all staked positions\
    • Previous session rewards become claimable
  </Step>

  <Step title="Active Period (7 Days)">
    • Your time-weighted balance accumulates\
    • You can stake/unstake anytime\
    • Your rewards calculate proportionally
  </Step>

  <Step title="Session End (Sunday 23:59 UTC)">
    • Final calculations completed\
    • Your rewards finalized based on participation\
    • You can claim accumulated rewards
  </Step>

  <Step title="Claim Period (Anytime After)">
    • Claim your session rewards\
    • 80% paid in xVITA (locked)\
    • 20% paid in VITA (liquid)
  </Step>
</Steps>

## Reward Sources

### Where Session Rewards Come From

Session rewards are funded by AMM trading fees:

<Card title="AMM Trading Fees">
  • Default 0.3% fee on all swaps\
  • Proportional to volume\
  • Consistent revenue stream
</Card>

<Note>
  AMM fees contribute to session rewards through protocol and community vaults.
</Note>

Fees are distributed through configurable protocol\_fee\_rate and community\_fee\_rate parameters.

## Reward Calculation

### The Formula

Your rewards are calculated using a **time-weighted average** of your holdings:

<Card title="Your Session Reward">
  ```
  reward = (time × balance) / total_weight × pool
  ```

  **Where:**

  * **time:** hours you held
  * **balance:** your xVITA amount
  * **total\_weight:** all users combined
  * **pool:** session rewards
</Card>

### Real Example

<Tabs>
  <Tab title="Simple Example">
    **Session Example**

    **Your Activity:**

    * You staked 1,000 xVITA for 3.5 days (50% of session)
    * Then increased to 2,000 xVITA for remaining 3.5 days

    **Calculation:**

    ```
    Weight = (1,000 × 84 hours) + (2,000 × 84 hours)
           = 84,000 + 168,000
           = 252,000 xVITA-hours

    Average = 252,000 / 168 hours = 1,500 xVITA
    ```

    **Result:** Your reward is proportional to your share of the total pool weight.
  </Tab>

  <Tab title="Complex Example">
    **Multiple Stakes/Unstakes**

    | Period  | Amount      | Duration |
    | ------- | ----------- | -------- |
    | Mon-Tue | 500 xVITA   | 48 hrs   |
    | Wed     | 2,000 xVITA | 24 hrs   |
    | Thu-Fri | 1,500 xVITA | 48 hrs   |
    | Sat-Sun | 2,000 xVITA | 48 hrs   |

    **Total Weight:**

    ```
    = (500 × 48) + (2,000 × 24) + (1,500 × 48) + (2,000 × 48)
    = 24,000 + 48,000 + 72,000 + 96,000
    = 240,000 xVITA-hours
    ```
  </Tab>
</Tabs>

## Reward Distribution

### 80/20 Split

<CardGroup cols={2}>
  <Card title="xVITA Rewards" icon="lock">
    **80%** of rewards

    • Locked tokens (non-transferable)\
    • Compounds your staking power\
    • Requires vesting to unlock
  </Card>

  <Card title="VITA Rewards" icon="coin">
    **20%** of rewards

    • Liquid tokens\
    • Immediately tradeable\
    • No vesting required
  </Card>
</CardGroup>

## Farming Boost Mechanics

### Enhanced Rewards Through Boosting

Your farming rewards can be boosted through xVITA holdings:

**xVITA Boost:** 1.0x to 2.5x multiplier

The boost uses a sophisticated sigmoid function based on your share of total boost tokens, not a simple linear formula.

## Session Strategies

<AccordionGroup>
  <Accordion title="Early Week Staking" icon="sunrise">
    **Maximize Your Time Component**

    Staking early in the session (Monday/Tuesday) gives you the full week of earning potential:

    | Stake Day | Earning Time        |
    | --------- | ------------------- |
    | Monday    | 168 hours (optimal) |
    | Thursday  | 96 hours (reduced)  |
    | Sunday    | 24 hours (minimal)  |

    <Note>
      The earlier you stake, the more weight you accumulate!
    </Note>
  </Accordion>

  <Accordion title="Compound Strategy" icon="layer-group">
    **Stack Your Rewards**

    Since 80% of rewards are paid in xVITA:

    1. Claim rewards at session end
    2. Your xVITA balance automatically increases
    3. Next session you earn on larger balance
    4. Compound effect accelerates over time
  </Accordion>

  <Accordion title="Partial Unstaking" icon="sliders">
    **Optimize Your Position**

    You can adjust your stake mid-session:

    * Unstake portion if you need liquidity
    * Add more if you have extra VITA
    * Weight calculated precisely for each period

    This flexibility means you're never locked for the full week.
  </Accordion>
</AccordionGroup>

## Technical Implementation

### Checking Your Staking Info

<CodeGroup>
  ```bash Near CLI theme={null}
  # Get your complete staking information
  near view [TBD] get_user_staking_info \
    '{"account_id": "your-wallet.near"}'

  # Check pending vested unstakes
  near view [TBD] get_pending_vested_unstakes \
    '{"account_id": "your-wallet.near"}'
  ```

  ```javascript JavaScript theme={null}
  // Using Near-API-JS
  const contract = new Contract(
    account,
    "[TBD]",
    {
      viewMethods: ["get_user_staking_info", "get_pending_vested_unstakes"],
    }
  );

  const stakingInfo = await contract.get_user_staking_info({
    account_id: "your-wallet.near"
  });

  const pendingUnstakes = await contract.get_pending_vested_unstakes({
    account_id: "your-wallet.near"
  });
  ```
</CodeGroup>

### Claiming Rewards Interface

<Frame caption="Claim your accumulated rewards with a single click">
  <img className="block dark:hidden" src="https://mintcdn.com/vita-29cb4832/0BX7ec2JKnkM5V86/images/screenshots/staking-dashboard.png?fit=max&auto=format&n=0BX7ec2JKnkM5V86&q=85&s=70f908087aa4a1a4a2504edf9c35ef6d" alt="Staking Rewards Claim Interface" width="1112" height="404" data-path="images/screenshots/staking-dashboard.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/vita-29cb4832/0BX7ec2JKnkM5V86/images/screenshots/staking-dashboard.png?fit=max&auto=format&n=0BX7ec2JKnkM5V86&q=85&s=70f908087aa4a1a4a2504edf9c35ef6d" alt="Staking Rewards Claim Interface" width="1112" height="404" data-path="images/screenshots/staking-dashboard.png" />
</Frame>

In the staking rewards section, you can see your accumulated rewards and claim them with a single click.

## Interactive Calculator

### Session Rewards Calculator

Calculate your potential rewards based on your staking activity:

<Card title="Session Calculator" icon="calculator" href="/tools/session-calculator">
  Input your xVITA amount and staking duration to see estimated rewards
</Card>

<Note>
  The calculator provides estimates based on current session metrics. Actual rewards depend on total participation.
</Note>

## FAQ

<AccordionGroup>
  <Accordion title="What happens if I stake mid-session?">
    You start earning immediately, but only for the remaining time. For example, staking on Thursday gives you 4 days of earning instead of 7.
  </Accordion>

  <Accordion title="Can I claim rewards from multiple sessions?">
    Yes! Your unclaimed rewards accumulate and you can claim them anytime. There's no expiration on claiming.
  </Accordion>

  <Accordion title="How are farming rewards different?">
    NFT position farming rewards work similarly but depend on your liquidity being in the active price range. Out-of-range positions earn 0 rewards.
  </Accordion>

  <Accordion title="Why 80% xVITA / 20% VITA split?">
    This encourages long-term participation (80% locked) while still providing immediate liquidity (20% liquid) for active traders.
  </Accordion>
</AccordionGroup>

## Related Topics

<CardGroup cols={3}>
  <Card title="Start Staking" icon="lock" href="/concepts/xvita-staking">
    Learn how to stake VITA for xVITA
  </Card>

  <Card title="xVITA System" icon="coins" href="/concepts/xvita-staking">
    Understand the dual-token model
  </Card>

  <Card title="Farming Rewards" icon="seedling" href="/concepts/nft-positions">
    Earn with liquidity positions
  </Card>
</CardGroup>
