https://github.com/aave/incentives-controller
https://github.com/aave/incentives-controller
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/aave/incentives-controller
- Owner: aave
- License: other
- Created: 2021-04-07T07:21:47.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-08-23T10:27:11.000Z (almost 3 years ago)
- Last Synced: 2025-04-12T10:04:40.519Z (about 2 months ago)
- Language: TypeScript
- Size: 556 KB
- Stars: 15
- Watchers: 3
- Forks: 39
- Open Issues: 5
-
Metadata Files:
- Readme: readme.md
- License: LICENSE.md
Awesome Lists containing this project
README
[](https://www.gnu.org/licenses/agpl-3.0)
[](https://github.com/aave/incentives-controller/actions/workflows/node.js.yml)
[](https://codecov.io/gh/aave/incentives-controller)# Aave incentives
## Introduction
This repo contains the code and implementation of the contracts used to activate the liquidity mining program on the main market of the Aave protocol.
## Implementation
The rewards are distributed in the form of stkAAVE, which is obtained by staking Aave in the Safety Module Staking contract located at https://etherscan.io/address/0x4da27a545c0c5b758a6ba100e3a049001de870f5.
The incentives controller contract, `StakedTokenIncentivesController`, stakes the rewards while transferring the obtained stkAAVE to the claiming user.
The implementation logic is defined as follow:
- Each asset has a defined `emissionPerSecond`
- For each asset, an `assetIndex` keeps track of the total accumulated rewards
- For each user, a `userIndex` keeps track of the user accumulated rewards
- On `handleAction()`, that is triggered whenever an aToken/debt Token is minted/burned by a user, the `userIndex` and the `assetIndex` are accumulated depending on the time passed since the last action
- At any point in time the user pending rewards can be queried through the `getRewardsBalance()` function