Tool to index and visualize all permissions across the Aave smart contracts ecosystem.
The Aave Protocol smart contracts use a system of roles, modifiers, and access control to gate who can execute which functions. These permissions are held by various addresses: other smart contracts, multi-sigs, governance, stewards, or EOAs.
This repository indexes on-chain events to produce a comprehensive directory of tables showing:
- Which permissions are needed to execute each function of every Aave contract.
- Who holds those permissions (and the full ownership chain behind them).
- Whether each contract is upgradeable, and who controls the upgrade.
A permissions document has been generated for every pool on every network where the Aave Protocol is deployed. Each document contains the following tables:
- Contracts Upgradeability: Indicates whether each smart contract uses an upgradeable proxy and, if so, who can perform the upgrade.
- Actions Type: An aggregated view of the actions that can affect the Aave protocol, classified by who can execute them (governance, multisig, steward, or EOA).
- Contracts: Detailed per-contract information:
- contract: Name of the contract.
- proxyAdmin: The proxy admin address (if the contract follows the Proxy Pattern), which has permission to upgrade the implementation.
- modifier: The access control gate that restricts who can call a function. There is an entry for every modifier on the contract.
- permission owner: The address that holds permission to pass through the modifier, along with its ownership chain.
- functions: The functions gated by that modifier.
- Guardians: Multi-sig addresses with permissions to call certain emergency or operational methods, acting under a mandate from Aave Governance.
- Roles: The different roles defined by each protocol component (e.g., POOL_ADMIN, EMERGENCY_ADMIN) and which addresses hold each role.
| Network | System type | Tables |
|---|---|---|
| ETHEREUM | V3 | Permissions |
| ETHEREUM | LIDO | Permissions |
| ETHEREUM | ETHERFI | Permissions |
| ETHEREUM | GHO | Permissions |
| ETHEREUM | V2 | Permissions |
| ETHEREUM | V2_AMM | Permissions |
| ETHEREUM | SAFETY_MODULE | Permissions |
| ETHEREUM | V2_MISC | Permissions |
| ETHEREUM | V4 | Permissions |
| OPTIMISM | V3 | Permissions |
| BINANCE | V3 | Permissions |
| GNOSIS | V3 | Permissions |
| GNOSIS | GHO | Permissions |
| POLYGON | V3 | Permissions |
| POLYGON | V2 | Permissions |
| SONIC | V3 | Permissions |
| XLAYER | V3 | Permissions |
| XLAYER | GHO | Permissions |
| ZKSYNC | V3 | Permissions |
| METIS | V3 | Permissions |
| SONEIUM | V3 | Permissions |
| MEGAETH | V3 | Permissions |
| MANTLE | V3 | Permissions |
| MANTLE | GHO | Permissions |
| BASE | V3 | Permissions |
| BASE | GHO | Permissions |
| PLASMA | V3 | Permissions |
| PLASMA | GHO | Permissions |
| ARBITRUM | V3 | Permissions |
| CELO | V3 | Permissions |
| AVALANCHE | V3 | Permissions |
| AVALANCHE | V2 | Permissions |
| INK | V3_WHITE_LABEL | Permissions |
| INK | GHO | Permissions |
| LINEA | V3 | Permissions |
| SCROLL | V3 | Permissions |
For setup instructions, CLI options, how to add new networks and pools, and how to use Anvil forks, see the Usage Guide.
This repository is under MIT License
