Rewards Calculation
Etherex Pools
Note: For Etherex pools, the displayed APR on the UI is just an estimate using last week rewards and current TVL. The actual APR of your LP position depends on the swap volume your liquidity absorbs and the corresponding swap slippage.
Rewards for each LP are allocated based on the swap volume generated by their liquidity and the slippage of each swap. The detailed reward formula is as follows.
For each pool and each epoch (1 epoch = 1 week), suppose there are $K$ swaps and $N$ LPs.
Then LP $i$’s reward for the pool and the epoch can be calculated as
$$ R_i=R_{total}\cdot\frac{\sum_{k=1}^KV_{(i,k)}F(\Delta P_k)}{\sum_{j=1}^N \sum_{k=1}^KV_{(j,k)}F(\Delta P_k)} $$
- $R_{total}$ is the total amount of LINEA rewards allocated to the pool during the epoch.
- $V_{(i,k)}$ is the volume absorbed by LP $i$ in swap $k$.
- $\Delta P_k$ is the actual slippage of swap $k$. For example, $\Delta P_k=0.003$ means that the execution of swap $k$ moves the price by 0.3% (either price up or price down).
- $F(\Delta P_k)=a\cdot(\Delta P_k)^b$ is a function of $\Delta P_k$ where parameter $a$ and $b$ are decided by the Linea team.
Note: Note: The reward reward formula and parameters might be updated on a weekly basis by the Linea team.
Lending Pools
Note: Looping or leveraged lending may be penalized. Please see reward details below.
For lending pools (Aave and Euler), the following reward calculation rules are applied.
Step 1: Compute Reward Allocation for Each Pool
For each epoch, there is a total reward amount $R_{total}$ for all the lending pools.
For each pool $k$, its weight $W_k$ during the epoch can be calculated as
$$ W_k=\beta_k Q_k *TVL^k_a $$
- $\beta_k$ is a per-pool constant (defined by the Linea team).
- $TVL^k_a$ is the actual effective TVL TWA (Time-Weighted Average) during the epoch in pool $k$.
- $TVL^k_t$ is the target TVL for pool $k$ (defined by the Linea team).
- $Q_k=Q_{min}+(Q_{max}-Q_{min}) \exp(-\alpha \frac{TVL^k_a}{TVL^k_t} )$, where $Q_{min}$ is the min ratio (e.g., 0.02) and $Q_{max}$ is the max ratio (e.g., 0.15). $\alpha >0$ is a sensitivity parameter (e.g., $\alpha=2$).
Then the reward allocated to pool $k$ during the epoch can be calculated as
$$ R_k = R_{total}*\frac{W_k}{\sum_{j} W_j} $$
Note: Each “pool” as mentioned above corresponds to an asset (e.g., USDC). If there are multiple lending protocols that support the same asset (e.g., Aave USDC and Euler USDC), the above formula can be used to calculate the reward allocation for each asset (where $TVL^k_a$ is the sum of actual TVLs from these protocols). Then the rewards are further split to different lending protocols proportional to their actual TVLs.
Step 2: Compute Each Users’ Rewards in a Lending Pool
For each pool $k$ and each epoch, the reward for LP $i$ can be calculated as
$$ R^k_{i}=R_k\cdot\frac{S^k_i}{\sum_{j=1}^N S^k_j} $$
- $R_k$ is the reward allocated to the pool (computed according to the formulas in Step 1).
- $S^k_i$ is the eligible holding by LP $i$ in pool $k$, calculated as $S_i^k = \max (0, c_i^k - \frac{d_i^k}{l_k})$, where
- $c_i^k$ is the supplied collateral (aToken/eToken) TWA by LP $i$ in pool $k$
- $d_i^k$ is the debt (dToken) TWA by LP $i$ in pool $k$
- $l_k$ is the liquidation threshold for pool $k$ (e.g., 78% for Aave USDC/USDT pool, 83% for Aave ETH pool). For all Euler pools, the liquidation threshold is hardcoded to 92%.
Note: With the above formula of eligible holding, users who loop the collateral with the debt of the same asset will be penalized.
Note: Note: The reward reward formula and parameters might be updated on a weekly basis by the Linea team.