| contract | upgradeable by |
|---|---|
| PoolAddressesProvider | not upgradeable |
| Pool | Governance |
| PoolConfigurator | Governance |
| AaveOracle | not upgradeable |
| RewardsController | Governance |
| WrappedTokenGatewayV3 | not upgradeable |
| ParaSwapLiquiditySwapAdapter | not upgradeable |
| ParaSwapRepayAdapter | not upgradeable |
| EmissionManager | not upgradeable |
| PoolAddressesProviderRegistry | not upgradeable |
| ProxyAdmin | not upgradeable |
| ProxyAdminLong | not upgradeable |
| ACLManager | not upgradeable |
| AaveMerkleDistributor | not upgradeable |
| SvrOracleSteward | not upgradeable |
| EdgeRiskStewardDiscountRate | not upgradeable |
| EdgeRiskStewardRates | not upgradeable |
| EdgeRiskStewardEMode | not upgradeable |
| EdgeInjectorPendleEMode | not upgradeable |
| EdgeInjectorDiscountRate | not upgradeable |
| EdgeInjectorRates | not upgradeable |
| PoolExposureSteward | not upgradeable |
| AavePolEthBridge | not upgradeable |
| Manual AGRS | not upgradeable |
| CollectorSwapSteward | not upgradeable |
| Collector | Governance |
| ClinicSteward | not upgradeable |
| Aave a/v/s tokens | Governance |
| GranularGuardian | not upgradeable |
| AaveGovernanceV3 | Governance |
| PayloadsController | Governance |
| VotingMachine | not upgradeable |
| VotingPortal_Eth_Eth | not upgradeable |
| VotingPortal_Eth_Avax | not upgradeable |
| VotingPortal_Eth_Pol | not upgradeable |
| Executor_lvl1 | not upgradeable |
| Executor_lvl2 | not upgradeable |
| EmergencyRegistry | not upgradeable |
| CCIP adapter | not upgradeable |
| Polygon native adapter | not upgradeable |
| LayerZero adapter | not upgradeable |
| Hyperlane adapter | not upgradeable |
| CrossChainController | Governance |
| type | can be executed by |
|---|---|
| updateReserveBorrowSettings | Governance |
| configureProtocolFees | Governance |
| updateReserveCaps | Governance,Steward,External Contract |
| updateReserveSettings | Governance |
| configureCollateral | Governance |
| upgradeAaveTokens (a/v/s) | Governance |
| upgradeAaveOracles | Governance |
| reserveUpgradeability | Governance |
| pausePool | Governance,Multi-sig |
| pauseAndFreezeReserve | Governance,Steward,External Contract,Multi-sig |
| reserveListing | Governance |
| adminsConfiguration | Governance |
| protocolUpgradeablity | Governance |
| adiConfigurations | Governance |
| retryAndInvalidateMessages | Multi-sig,Governance |
| configureGovernance | Governance |
| cancelProposal | Multi-sig |
| updateRiskParameters | Governance,Steward |
| contract | proxyAdmin | modifier | permission owner | functions |
|---|---|---|---|---|
| PoolAddressesProvider | - | onlyOwner | Executor_lvl1 | setMarketId, setAddress, setAddressAsProxy, setPoolImpl, setPoolConfiguratorImpl, setPriceOracle, setACLManager, setACLAdmin, setPriceOracleSentinel, setPoolDataProvider |
| Pool | PoolAddressesProvider | onlyPoolConfigurator | PoolConfigurator | initReserve, dropReserve, setReserveInterestRateStrategyAddress, setConfiguration, updateBridgeProtocolFee, updateFlashloanPremiums, configureEModeCategory, resetIsolationModeTotalDebt |
| Pool | PoolAddressesProvider | onlyPoolAdmin | Executor_lvl1 | rescueTokens |
| PoolConfigurator | PoolAddressesProvider | onlyPoolAdmin | Executor_lvl1 | dropReserve, dropReserve, updateAToken, updateStableDebtToken, updateVariableDebtToken, setReserveActive, updateBridgeProtocolFee, updateFlashloanPremiumTotal, updateFlashloanPremiumToProtocol |
| PoolConfigurator | PoolAddressesProvider | onlyAssetListingOrPoolAdmins | Executor_lvl1 | initReserves |
| PoolConfigurator | PoolAddressesProvider | onlyRiskOrPoolAdmins | Executor_lvl1, Core GHO Aave Steward, Manual AGRS, Gho Core Direct Minter, EModeCategory_CoreAgent, PendleDiscountRate_CoreAgent, RateStrategy_CoreAgent, CapoPriceCap_CoreAgent | setReserveBorrowing, setReserveBorrowing, configureReserveAsCollateral, setReserveStableRateBorrowing, setBorrowableInIsolation, setReserveFactor, setDebtCeiling, setSiloedBorrowing, setBorrowCap, setSupplyCap, setLiquidationProtocolFee, setEModeCategory, setAssetEModeCategory, setUnbackedMintCap, setReserveInterestRateStrategyAddress, setReserveFlashLoaning |
| PoolConfigurator | PoolAddressesProvider | onlyRiskOrPoolOrEmergencyAdmins | Executor_lvl1, Core GHO Aave Steward, Manual AGRS, Gho Core Direct Minter, EModeCategory_CoreAgent, PendleDiscountRate_CoreAgent, RateStrategy_CoreAgent, CapoPriceCap_CoreAgent, Aave Protocol Guardian Ethereum | setReserveFreeze |
| PoolConfigurator | PoolAddressesProvider | onlyEmergencyOrPoolAdmin | Executor_lvl1, Aave Protocol Guardian Ethereum | setPoolPause, setReservePause |
| AaveOracle | - | onlyAssetListingOrPoolAdmins | Executor_lvl1 | setAssetSources, setFallbackOracle |
| RewardsController | PoolAddressesProvider | onlyEmissionManager | EmissionManager | configureAssets, setTransferStrategy, setRewardOracle, setClaimer |
| WrappedTokenGatewayV3 | - | onlyOwner | Executor_lvl1 | emergencyTokenTransfer, emergencyEtherTransfer |
| ParaSwapLiquiditySwapAdapter | - | onlyOwner | Executor_lvl1 | rescueTokens |
| ParaSwapRepayAdapter | - | onlyOwner | Executor_lvl1 | rescueTokens |
| EmissionManager | - | onlyOwner | Executor_lvl1 | setClaimer, setEmissionAdmin, setRewardsController, renounceOwnership, transferOwnership |
| EmissionManager | - | onlyEmissionAdmin | ACI Safe, 0x87D93d9B2C672bf9c9642d853a8682546a5012B5 (Safe), 0x189Cb93839AD52b5e955ddA254Ed7212ae1B1f61 (Safe), 0xbDa6C9cd7eD043CB739ca2C748dAbd1fCA397132 (Safe), MASIV Safe | configureAssets, setTransferStrategy, setRewardOracle, setDistributionEnd, setEmissionPerSecond |
| PoolAddressesProviderRegistry | - | onlyOwner | Executor_lvl1 | registerAddressesProvider, unregisterAddressesProvider |
| ProxyAdmin | - | onlyOwner | Executor_lvl1 | changeProxyAdmin, upgrade, upgradeAndCall |
| ProxyAdminLong | - | onlyOwner | Executor_lvl2 | changeProxyAdmin, upgrade, upgradeAndCall |
| ACLManager | - | onlyRole | Executor_lvl1 | setRoleAdmin |
| AaveMerkleDistributor | - | onlyOwner | Executor_lvl1 | addDistributions, emergencyTokenTransfer, emergencyEtherTransfer |
| SvrOracleSteward | - | onlyOwner | Executor_lvl1 | removeOracle, enableSvrOracles |
| SvrOracleSteward | - | onlyGuardian | Aave Protocol Guardian Ethereum | disableSvrOracle |
| EdgeRiskStewardDiscountRate | - | onlyOwner | Executor_lvl1 | setRiskConfig, setAddressRestricted, setEModeCategoryRestricted, renounceOwnership, transferOwnership |
| EdgeRiskStewardDiscountRate | - | onlyRiskCouncil | AaveStewardInjectorDiscountRate | updatePendleDiscountRates |
| EdgeRiskStewardRates | - | onlyOwner | Executor_lvl1 | setRiskConfig, setAddressRestricted, setEModeCategoryRestricted, renounceOwnership, transferOwnership |
| EdgeRiskStewardRates | - | onlyRiskCouncil | EdgeInjectorRates | updateRates |
| EdgeRiskStewardEMode | - | onlyOwner | Executor_lvl1 | setRiskConfig, setAddressRestricted, setEModeCategoryRestricted, renounceOwnership, transferOwnership |
| EdgeRiskStewardEMode | - | onlyRiskCouncil | AaveStewardInjectorEMode | updateEModeCategories |
| EdgeInjectorPendleEMode | - | onlyOwner | Executor_lvl1 | addMarkets, removeMarkets, renounceOwnership, transferOwnership |
| EdgeInjectorPendleEMode | - | onlyOwnerOrGuardian | BGD Injector Guardian, Executor_lvl1 | disableUpdateById, pauseInjector, updateGuardian |
| EdgeInjectorDiscountRate | - | onlyOwner | Executor_lvl1 | addMarkets, removeMarkets, renounceOwnership, transferOwnership |
| EdgeInjectorDiscountRate | - | onlyOwnerOrGuardian | BGD Injector Guardian, Executor_lvl1 | disableUpdateById, pauseInjector, updateGuardian |
| EdgeInjectorRates | - | onlyOwner | Executor_lvl1 | addMarkets, removeMarkets, renounceOwnership, transferOwnership |
| EdgeInjectorRates | - | onlyOwnerOrGuardian | BGD Injector Guardian, Executor_lvl1 | disableUpdateById, pauseInjector, updateGuardian |
| PoolExposureSteward | - | onlyOwner | Executor_lvl1 | approvePool, revokePool |
| PoolExposureSteward | - | onlyOwnerOrGuardian | Finance Risk Council, Executor_lvl1 | depositV3, withdrawV3, withdrawV2, migrateV2toV3, migrateBetweenV3 |
| AavePolEthBridge | - | onlyOwner | Executor_lvl1 | bridge |
| AavePolEthBridge | - | onlyRescueGuardian | Executor_lvl1 | emergencyTokenTransfer, emergencyEtherTransfer |
| Manual AGRS | - | onlyOwner | Executor_lvl1 | setRiskConfig, setAddressRestricted |
| Manual AGRS | - | onlyRiskCouncil | Risk Council | updateCaps, updateRates, updateCollateralSide, updateLstPriceCaps, updateStablePriceCaps |
| CollectorSwapSteward | - | onlyOwner | Executor_lvl1 | increaseTokenBudget, decreaseTokenBudget, setSwappablePair, setTokenOracle, setLimitOrderPriceChecker, setMilkman, setRelayer, renounceOwnership, transferOwnership |
| CollectorSwapSteward | - | onlyOwnerOrGuardian | Finance Risk Council, Executor_lvl1 | swap, twapSwap, cancelSwap, cancelLimitSwap, cancelTwapSwap, rescueToken, updateGuardian |
| Collector | ProxyAdmin | onlyFundsAdmin | Executor_lvl1, ClinicSteward, Lido ClinicSteward, PoolExposureSteward, ClinicStewardV2, ClinicStewardV2 AMM, SwapSteward | approve, transfer, setFundsAdmin, createStream |
| Collector | ProxyAdmin | onlyAdminOrRecipient | ProxyAdmin, Executor_lvl1, ClinicSteward, Lido ClinicSteward, PoolExposureSteward, ClinicStewardV2, ClinicStewardV2 AMM, SwapSteward | withdrawFromStream, cancelStream |
| ClinicSteward | - | onlyCleanUpRole | CleanUp Admin, ACI Automation | renewAllowance, batchRepayBadDebt, batchLiquidate, batchRepayBadDebt |
| ClinicSteward | - | onlyAdmin | Executor_lvl1 | setAvailableBudget |
| contract | proxyAdmin | modifier | permission owner | functions |
|---|---|---|---|---|
| GranularGuardian | - | onlyRetryGuardian | BGD | retryEnvelope, retryTransaction |
| GranularGuardian | - | onlyEmergencyGuardian | Aave Governance Guardian Ethereum | solveEmergency |
| GranularGuardian | - | onlyDefaultAdmin | Executor_lvl1 | updateGuardian |
| AaveGovernanceV3 | ProxyAdminLong | onlyOwner | Executor_lvl1 | updateGasLimit, addVotingPortals, removeVotingPortals, setVotingConfigs, setPowerStrategy |
| AaveGovernanceV3 | ProxyAdminLong | onlyGuardian | Aave Governance Guardian Ethereum | rescueVotingPortal, cancelProposal |
| AaveGovernanceV3 | ProxyAdminLong | onlyOwnerOrGuardian | Aave Governance Guardian Ethereum, Executor_lvl1 | updateGuardian |
| PayloadsController | ProxyAdmin | onlyOwner | Executor_lvl1 | updateExecutors |
| PayloadsController | ProxyAdmin | onlyGuardian | Aave Governance Guardian Ethereum | cancelPayload |
| PayloadsController | ProxyAdmin | onlyOwnerOrGuardian | Aave Governance Guardian Ethereum, Executor_lvl1 | updateGuardian |
| PayloadsController | ProxyAdmin | onlyRescueGuardian | Executor_lvl1 | emergencyTokenTransfer, emergencyEtherTransfer |
| VotingMachine | - | onlyOwner | Executor_lvl1 | updateGasLimit |
| VotingPortal_Eth_Eth | - | onlyOwner | Executor_lvl1 | setStartVotingGasLimit, setVoteViaPortalGasLimit |
| VotingPortal_Eth_Avax | - | onlyOwner | Executor_lvl1 | setStartVotingGasLimit, setVoteViaPortalGasLimit |
| VotingPortal_Eth_Pol | - | onlyOwner | Executor_lvl1 | setStartVotingGasLimit, setVoteViaPortalGasLimit |
| Executor_lvl1 | - | onlyOwner | PayloadsController | executeTransaction |
| Executor_lvl2 | - | onlyOwner | PayloadsController | executeTransaction |
| EmergencyRegistry | - | onlyOwner | Executor_lvl1 | setEmergency |
| CCIP adapter | - | trustedRemote | CrossChainController(Pol), CrossChainController(Avax) | receiveMessage |
| Polygon native adapter | - | trustedRemote | CrossChainController(Pol) | receiveMessage |
| LayerZero adapter | - | trustedRemote | CrossChainController(Pol), CrossChainController(Avax) | receiveMessage |
| Hyperlane adapter | - | trustedRemote | CrossChainController(Pol), CrossChainController(Avax) | receiveMessage |
| CrossChainController | ProxyAdmin | onlyOwner | Executor_lvl1 | approveSenders, removeSenders, enableBridgeAdapters, disableBridgeAdapters, updateMessagesValidityTimestamp, allowReceiverBridgeAdapters, disallowReceiverBridgeAdapters |
| CrossChainController | ProxyAdmin | onlyOwnerOrGuardian | GranularGuardian, Executor_lvl1 | retryEnvelope, retryTransaction, updateGuardian |
| CrossChainController | ProxyAdmin | onlyRescueGuardian | Executor_lvl1 | emergencyTokenTransfer, emergencyEtherTransfer |
| CrossChainController | ProxyAdmin | onlyApprovedSenders | AaveGovernanceV3, Old VotingMachine, Old VotingPortal_Eth_Eth, Old VotingPortal_Eth_Avax, Old VotingPortal_Eth_Pol, VotingMachine, VotingPortal_Eth_Eth, VotingPortal_Eth_Avax, VotingPortal_Eth_Pol | forwardMessage |
| CrossChainController | ProxyAdmin | onlyApprovedBridges | CCIP adapter, Polygon native adapter, LayerZero adapter, Hyperlane adapter | receiveCrossChainMessage |
| contract | proxyAdmin | modifier | permission owner | functions |
|---|---|---|---|---|
| UmbrellaProxyAdmin | - | onlyOwner | Executor_lvl1 | changeProxyAdmin, upgrade, upgradeAndCall |
| Umbrella | UmbrellaProxyAdmin | onlyCoverageManager | Executor_lvl1, Deficit Offset Clinic Steward | coverDeficitOffset, coverPendingDeficit, coverReserveDeficit |
| Umbrella | UmbrellaProxyAdmin | onlyAdmin | Executor_lvl1 | setDeficitOffset, createStakeTokens, setCooldownStk, setUnstakeWindowStk, updateSlashingConfigs, removeSlashingConfigs |
| Umbrella | UmbrellaProxyAdmin | onlyRescueGuardian | Executor_lvl1 | emergencyTokenTransferStk, emergencyEtherTransferStk |
| Umbrella | UmbrellaProxyAdmin | onlyPauseGuardian | Executor_lvl1 | pauseStk, unpauseStk |
| PermissionedPayloadsControllerProxyAdmin | - | onlyOwner | Executor_lvl1 | changeProxyAdmin, upgrade, upgradeAndCall |
| PermissionedPayloadsController | PermissionedPayloadsControllerProxyAdmin | onlyGuardian | BGD | setExecutionDelay |
| PermissionedPayloadsController | PermissionedPayloadsControllerProxyAdmin | onlyOwnerOrGuardian | BGD, BGD | updateGuardian |
| PermissionedPayloadsController | PermissionedPayloadsControllerProxyAdmin | onlyRescueGuardian | BGD | emergencyTokenTransfer, emergencyEtherTransfer |
| PermissionedPayloadsController | PermissionedPayloadsControllerProxyAdmin | onlyPayloadsManagerOrGuardian | BGD, Finance Risk Council | cancelPayload |
| PermissionedPayloadsController | PermissionedPayloadsControllerProxyAdmin | onlyPayloadsManager | Finance Risk Council | createPayload |
| PermissionedExecutor | - | onlyOwner | PermissionedPayloadsController | executeTransaction |
| contract | proxyAdmin | modifier | permission owner | functions |
|---|---|---|---|---|
| EModeCategory_CoreAgent | - | onlyAgentHub | AgentHub | inject |
| PendleDiscountRate_CoreAgent | - | onlyAgentHub | AgentHub | inject |
| RateStrategy_CoreAgent | - | onlyAgentHub | AgentHub | inject |
| CapoPriceCap_CoreAgent | - | onlyAgentHub | AgentHub | inject |
| AgentHub | AgentHubProxyAdmin | onlyOwner | Executor_lvl1 | registerAgent, setAgentAdmin, setMaxBatchSize, setAgentAddress, renounceOwnership, transferOwnership |
| AgentHub | AgentHubProxyAdmin | onlyOwnerOrAgentAdmin | Executor_lvl1 | setAgentAsPermissioned, addPermissionedSender, removePermissionedSender, addAllowedMarket, removeAllowedMarket, addRestrictedMarket, removeRestrictedMarket, setExpirationPeriod, setAgentEnabled, setMinimumDelay, setAgentContext, setMarketsFromAgentEnabled, addAllowedMarket, addAllowedMarket |
| AgentHubProxyAdmin | - | onlyOwner | Executor_lvl1 | changeProxyAdmin, upgrade, upgradeAndCall |
| RangeValidationModule | - | onlyHubOwnerOrAgentAdmin | Executor_lvl1 | setDefaultRangeConfig, setRangeConfigByMarket |
| contract | proxyAdmin | modifier | permission owner | functions |
|---|---|---|---|---|
| PermissionedPayloadsControllerProxyAdmin | - | onlyOwner | Executor_lvl1 | changeProxyAdmin, upgrade, upgradeAndCall |
| PermissionedPayloadsController | PermissionedPayloadsControllerProxyAdmin | onlyOwnerOrGuardian | BGD, BGD | updateGuardian, updatePayloadsManager |
| PermissionedPayloadsController | PermissionedPayloadsControllerProxyAdmin | onlyRescueGuardian | BGD | emergencyTokenTransfer, emergencyEtherTransfer |
| PermissionedPayloadsController | PermissionedPayloadsControllerProxyAdmin | onlyPayloadsManagerOrGuardian | BGD, Finance Risk Council | cancelPayload |
| PermissionedPayloadsController | PermissionedPayloadsControllerProxyAdmin | onlyPayloadsManager | Finance Risk Council | createPayload |
| PermissionedPayloadsController | PermissionedPayloadsControllerProxyAdmin | onlyGuardian | BGD | setExecutionDelay |
| PermissionedExecutor | - | onlyOwner | PermissionedPayloadsController | executeTransaction |
| Role | Contract |
|---|---|
| DEFAULT_ADMIN | Executor_lvl1 |
| SOLVE_EMERGENCY_ROLE | Aave Governance Guardian Ethereum |
| RETRY_ROLE | BGD |
| Role | Contract |
|---|---|
| DEFAULT_ADMIN | Executor_lvl1 |
| COVERAGE_MANAGER_ROLE | Executor_lvl1, Deficit Offset Clinic Steward |
| RESCUE_GUARDIAN_ROLE | Executor_lvl1 |
| PAUSE_GUARDIAN_ROLE | Executor_lvl1 |
| REWARDS_ADMIN_ROLE | Executor_lvl1, PermissionedExecutor |
| Role | Contract |
|---|---|
| DEFAULT_ADMIN | Executor_lvl1 |
| FUNDS_ADMIN_ROLE | Executor_lvl1, ClinicSteward, Lido ClinicSteward, PoolExposureSteward, ClinicStewardV2, ClinicStewardV2 AMM, SwapSteward |
| Role | Contract |
|---|---|
| DEFAULT_ADMIN | Executor_lvl1 |
| CLEANUP_ROLE | CleanUp Admin, ACI Automation |