# Protocol Data

## Distribution V5

#### isNotUpgradeable

Returns true if the contract no longer supports upgrades to a new version.

```solidity
bool public isNotUpgradeable;
```

#### depositToken

The stETH token address, see the LIDO [doc](https://docs.lido.fi/deployed-contracts/).

```solidity
address public depositToken;
```

#### l1Sender

The `L1Sender` contract address.

```solidity
address public l1Sender;
```

#### pools

Contain information about MOR reward pools for buckets, where `pools[0]` - Capital bucket.

```solidity
Pool[] public pools;
 
struct Pool {
  uint128 payoutStart;
  uint128 decreaseInterval;
  uint128 withdrawLockPeriod;
  uint128 claimLockPeriod;
  uint128 withdrawLockPeriodAfterStake;
  uint256 initialReward;
  uint256 rewardDecrease;
  uint256 minimalStake;
  bool isPublic;
}
```

| Name                           | Description                                                                         |
| ------------------------------ | ----------------------------------------------------------------------------------- |
| `payoutStart`                  | The unix epoch timestamp in seconds when the pool starts to pay out rewards.        |
| `decreaseInterval`             | The interval in seconds between reward decreases.                                   |
| `withdrawLockPeriod`           | The period in seconds when the user can't withdraw his stake.                       |
| `claimLockPeriod`              | The period in seconds when the user can't claim his rewards after the `payoutStart` |
| `withdrawLockPeriodAfterStake` | The period in seconds when the user can't withdraw his stake after staking.         |
| `initialReward`                | The initial MOR reward for the bucket.                                              |
| `rewardDecrease`               | The MOR reward decrease per `decreaseInterval`.                                     |
| `minimalStake`                 | The minimal stake amount                                                            |
| `isPublic`                     | `true` - for Capital bucket, `false` for others.                                    |

#### poolsData

Contain additional internal information about MOR reward pools for buckets, where `poolsData[0]` - Capital bucket.

```solidity
mapping(uint256 => PoolData) public poolsData;
 
/**
     * The structure that stores the pool's rate data.
     * @param lastUpdate The timestamp when the pool was updated.
     * @param rate The current reward rate.
     * @param totalVirtualDeposited The total amount of tokens deposited in the pool with multiplier.
     */
struct PoolData {
  uint128 lastUpdate;
  uint256 rate;
  uint256 totalVirtualDeposited;
 }
```

```solidity

    // User storage
    mapping(address => mapping(uint256 => UserData)) public usersData;

    // Total deposited storage
    uint256 public totalDepositedInPublicPools;

    // Pools limits, V4 update
    mapping(uint256 => PoolLimits) public poolsLimits;

    // Referall storage, V5 update
    mapping(uint256 => ReferrerTier[]) public referrerTiers;
    mapping(address => mapping(uint256 => ReferrerData)) public referrersData;
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gitbook.mor.org/smart-contracts/documentation/distribution-protocol/v5-protocol/protocol-data.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
