Greetings, Aave community.
Aave V4 testnet is now live, and the full codebase is open for public review. This marks a major step toward mainnet launch and the most significant architectural evolution of the Aave Protocol since V1. The release invites service providers, integrators, and the Aave community to validate the implementation, review the risk and accounting surfaces, and provide feedback ahead of mainnet deployment. As planned, the final stage of development is now concluding in public as we address bug fixes and apply final touches.
Context
Aave V4 restructures the protocol around a new Hub and Spoke architecture. The Liquidity Hub aggregates reserves into a single shared pool, managing indices, accounting, and rate accrual. Spoke implementations handle borrowing logic, which enables upgrades and market expansion without capital fragmentation. This architecture centralizes liquidity into a single layer, removing cross-market fragmentation and providing new Spoke implementations with immediate access to liquidity.
V4 also introduces a host of new features for capital efficiency and risk optimization, one of which are Risk Premiums. Risk Premiums are a new pricing layer that directly ties borrowing costs to the quality of collateral. Safer collateral configurations receive lower premiums, while higher-volatility assets accrue a larger spread. The additional premium flows through the reserve factor, increasing supplier yield and DAO revenue in proportion to risk. Premiums give governance a direct lever over risk-adjusted income where safer assets lower borrow costs while riskier assets return a larger spread to the DAO.
Aave V4 Codebase
The full Aave V4 codebase is now public, please find it at aave-v4. This opens up the review of the new architecture and features, including the Hub and Spoke design, Risk Premiums, dynamic risk configuration, and the updated liquidation engine. Builders can start exploring the implementation and share feedback with the community, documentation can be found in aave.com/docs and aave-v4/docs/overview.md The current set of Spokes also includes the Base Spoke, Treasury Spoke, and a Vault Spoke:
-
The Base Spoke: a standard implementation used for general testing and baseline functionality.
-
The Treasury Spoke: acts as the Liquidity Fee collector, routing protocol fees to the designated treasury destination.
-
The Vault Spoke: is a minimal ERCâ4626âstyle vault that connects to the Aave V4 Hub as a registered Spoke. Its sole purpose is to enable supply and withdraw functionalities without exposing additional logic from the connected Hubs.
Once Aave V4 approaches production readiness, the codebase will be migrated to the aave-dao organization. Until that transition occurs, the codebase remains under a proprietary license to safeguard the implementation on behalf of the Aave DAO during the active audit and review phase. In the coming weeks, we will present a set of licensing frameworks for the DAO to evaluate, vote on, and ultimately decide on the licensing. Following that decision, the license will be updated upon migration in alignment with the governance outcome.
The tables below provide a comparative overview of gas consumption across the core workflows in Aave V3 and Aave V4. These benchmarks highlight how the new Hub and Spoke architecture, simplified accounting paths, and optimized positionâupdate logic affect transaction costs in practice. While results vary across action types, the data offers a clear view into where V4 reduces overhead, where costs shift due to new mechanics such as Risk Premium updates, and how the overall system behaves under typical user interactions. These values are estimations and may be subjected to change as the last fixes are applied to the codebase.
Gas Comparison of User Core workflows
ZRP = zero risk premium
| Operation | Scenario | V3 | V4 (baseline) | Î vs V3 | Î% | V4 (ZRP) | Î vs V3 (ZRP) | Î% vs V3 (ZRP) |
|---|---|---|---|---|---|---|---|---|
| Supply | 0 borrows, collateral disabled | 139,089 | 125,727 | -13,362 | -9.6% | 125,727 | -13,362 | -9.6% |
| Supply | 0 borrows, collateral enabled | 139,089 | 108,649 | -30,440 | -21.9% | 108,649 | -30,440 | -21.9% |
| Supply | First supply + enable collateral | 168,607 | 162,666 | -5,941 | -3.5% | 162,666 | -5,941 | -3.5% |
| Borrow | First borrow | 250,372 | 270,956 | +20,584 | +8.2% | 199,502 | -50,870 | -20.3% |
| Borrow | Recurrent (same reserve) | 215,290 | 239,428 | +24,138 | +11.2% | 179,474 | -35,816 | -16.6% |
| Repay | Full repay | 161,770 | 169,037 | +7,267 | +4.5% | 174,287 | +12,517 | +7.7% |
| Repay | Partial repay | 158,122 | 227,707 | +69,585 | +44.0% | 192,941 | +34,819 | +22.0% |
| Withdraw | Full (0 borrows) | 155,405 | 131,341 | -24,064 | -15.5% | 131,341 | -24,064 | -15.5% |
| Withdraw | Partial (0 borrows) | 172,161 | 136,247 | -35,914 | -20.9% | 136,247 | -35,914 | -20.9% |
| Withdraw | Partial with 1 borrow | 220,677 | 292,539 | +71,862 | +32.6% | 165,754 | -54,923 | -24.9% |
Gas Comparison of Liquidations
Note: V3 âreceive ATokensâ â V4 âreceiveSharesâ.
| Operation | Scenario | V3 | V4 (baseline) | Î vs V3 | Î% | V4 (ZRP) | Î vs V3 (ZRP) | Î% vs V3 (ZRP) |
|---|---|---|---|---|---|---|---|---|
| Liquidation | Full (no receive) | 352,397 | 356,016 | +3,619 | +1.0% | 321,234 | -31,163 | -8.8% |
| Liquidation | Partial (no receive) | 343,302 | 355,734 | +12,432 | +3.6% | 320,952 | -22,350 | -6.5% |
| Liquidation | Full (receive shares) | 349,700 | 346,078 | -3,622 | -1.0% | 311,296 | -38,404 | -11.0% |
| Liquidation | Partial (receive shares) | 340,605 | 345,796 | +5,191 | +1.5% | 311,014 | -29,591 | -8.7 |
Security
Formal verification and independent audits are in progress, with testnet operating alongside these evaluations to surface any integration or accounting issues. All reports will be published before the mainnet release, supported by an expanded bug-bounty program covering the entire V4 architecture.
The security program encompasses several layers: independent researcher reviews, multi-firm end-to-end manual audits, and formal verification led by Certora. It also includes the development of a reusable invariant-testing suite with fuzzing and scenario generation, along with a community security contest. This layered structure is designed to identify issues through diverse methodologies, minimize correlated blind spots, and offer the DAO a comprehensive security assessment before the mainnet launch.
For additional detail on the security effort, please refer to the community discussion at Aave V4 Security Funding.
Testnet Launch
Aave V4 testnet is launched as a Tenderlyâbased fork environment, which allows for deep customization and a broader and more realistic asset configuration than would be feasible on a standard Ethereum testnet. This approach allows us to more accurately exercise V4âs Hub and Spoke architecture, test interactions across a wider set of tokens, and iterate faster on configuration and operational flows.
Aave Pro
Alongside the testnet, we are introducing a redesigned Aave interface, called Aave Pro, built specifically for V4. Aave Pro is designed to improve the overall Aave experience for power users and DeFi-natives.
The testnet includes an initial, simplified version of the interface that focuses on core user flows (supply, borrow, repay, withdrawal, collateral configuration, and position visibility) while the full interface continues through active development and will be introduced in the mainnet launch. These components together provide a representative testing surface for the intended mainnet layout of Hubs and Spokes.
Hub-Spokes Architecture
The Hub and Spoke model used in the testnet reproduces a configuration potentially similar to a production release, with additional dynamics introduced for evaluation. In particular, the testnet includes crossâHub credit line configurations, such as granting credit from the Core Hub to both the Yield Seeking Spoke and the Frontier Spoke, to validate how liquidity flows behave when Spokes draw from multiple Hubs under distinct risk profiles.
The tables below summarize the Hubs deployed in the testnet, the assets supported within each, and the Spokes connected to them. These configurations were discussed in a recurring âV4 Office Hoursâ call with various service providers, but the final configuration needs to be reviewed by the risk providers and decided by a separate governance proposal.
| Hubs | Listed Assets | Connected Spokes |
|---|---|---|
| Prime Hub | ETH, wstETH, USDT, USDC, GHO | Prime Spoke |
| Core Hub | ETH, wstETH, WBTC, cbBTC, USDT, USDC, GHO, AAVE | Core Spoke |
| LST Spoke (e-Mode) | ||
| Yield Seeking Spoke | ||
| Frontier Spoke | ||
| Yield Seeking Hub | PT-sUSDe, sUSDe, USDT, USDC, GHO | Yield Seeking Spoke |
| Frontier Hub | UNI, LDO, 1INCH, USDT, USDC, GHO | Frontier Spoke |
| Spokes | Collateral Assets | Borrowable Assets | Connected Hubs |
|---|---|---|---|
| Prime Spoke | ETH, wstETH, USDT, USDC, GHO | ETH, wstETH, USDT, USDC, GHO | Prime Hub |
| Core Spoke | ETH, wstETH, WBTC, cbBTC, USDT, USDC, GHO, AAVE | ETH, wstETH, WBTC, cbBTC, USDT, USDC, GHO, AAVE | Core Hub |
| LST Spoke (e-Mode) | wstETH | ETH | Core Hub |
| Yield Seeking Spoke | PT-sUSDe, sUSDe | USDT, USDC, GHO | Yield Seeking Hub |
| Core Hub | |||
| Frontier Spoke | UNI, LDO, 1INCH | USDT, USDC, GHO | Frontier Hub |
| Core Hub |
Hubs Configuration
The following section details the configuration of each Hub deployed in the testnet. These configurations are designed to validate reserve behavior, interestârate dynamics, crossâHub credit flows, and the interaction patterns between Hubs and their connected Spokes.
By exercising multiple asset classes, risk surfaces, and these new configuration parameters, the testnet offers a comprehensive environment to evaluate how the architecture performs under realistic conditions.
Prime Hub
Assets Configuration
| Parameter | ETH | wstETH | USDT | USDC | GHO |
|---|---|---|---|---|---|
| active | True | True | True | True | True |
| Frozen | False | False | False | False | False |
| Paused | False | False | False | False | False |
| decimals | 18 | 18 | 6 | 6 | 18 |
| liquidityFee | 10_00 | 5_00 | 10_00 | 10_00 | 10_00 |
Spokes Configuration
| Parameter | ETH | wstETH | USDT | USDC | GHO |
|---|---|---|---|---|---|
| Prime Spoke | |||||
| Add Cap (asset units) | 225 | 150 | 3_000_000 | 3_000_000 | 17_500_000 |
| Draw Cap (asset units) | 200 | 75 | 2_760_000 | 2_760_000 | 15_000_000 |
| Collateral Enabled | True | True | True | True | True |
| Borrowing Enabled | True | True | True | True | True |
Interest Rate Strategy Configuration
| Parameter | ETH | wstETH | USDT | USDC | GHO |
|---|---|---|---|---|---|
| Optimal Utilization | 90_00 | 90_00 | 92_00 | 92_00 | 92_00 |
| Base Variable Borrow Rate | 0 | 0 | 0 | 0 | 0 |
| variableRateSlope1 | 2_70 | 55 | 5_50 | 5_50 | 5_50 |
| variableRateSlope2 | 80_00 | 85_00 | 35_00 | 35_00 | 35_00 |
Core Hub
Assets Configuration
| Parameter | ETH | wstETH | WBTC | cbBTC | AAVE | USDT | USDC | GHO |
|---|---|---|---|---|---|---|---|---|
| active | True | True | True | True | True | True | True | True |
| Frozen | False | False | False | False | False | False | False | False |
| Paused | False | False | False | False | False | False | False | False |
| decimals | 18 | 18 | 8 | 8 | 18 | 6 | 6 | 18 |
| liquidityFee | 10_00 | 5_00 | 50_00 | 50_00 | 10_00 | 10_00 | 10_00 | 10_00 |
Spokes Configuration
| Parameter | ETH | wstETH | WBTC | cbBTC | AAVE | USDT | USDC | GHO |
|---|---|---|---|---|---|---|---|---|
| Core Spoke | ||||||||
| Add Cap (asset units) | 800 | 45 | 20 | 5 | 9_500 | 3_000_000 | 3_000_000 | 8_000_000 |
| Draw Cap (asset units) | 725 | 15 | 7 | 3 | 5_000 | 2_760_000 | 2_760_000 | 5_500_000 |
| Collateral Enabled | True | True | True | True | True | True | True | True |
| Borrowing Enabled | True | True | True | True | True | True | True | True |
| LST Spoke (e-Mode) | ||||||||
| Add Cap (asset units) | 225 | 200 | - | - | - | - | - | - |
| Draw Cap (asset units) | 0 | 100 | - | - | - | - | - | - |
| Collateral Enabled | True | False | - | - | - | - | - | - |
| Borrowing Enabled | False | True | - | - | - | - | - | - |
| Yield Seeking Spoke | ||||||||
| Add Cap (asset units) | - | - | - | - | - | - | 2_000_000 | - |
| Draw Cap (asset units) | - | - | - | - | - | - | 1_000_000 | - |
| Collateral Enabled | - | - | - | - | - | - | False | - |
| Borrowing Enabled | - | - | - | - | - | - | True | - |
| Frontier Spoke | ||||||||
| Add Cap (asset units) | - | - | - | - | - | - | 2_000_000 | - |
| Draw Cap (asset units) | - | - | - | - | - | - | 1_000_000 | - |
| Collateral Enabled | - | - | - | - | - | - | False | - |
| Borrowing Enabled | - | - | - | - | - | - | True | - |
Interest Rate Strategy Configuration
| Parameter | ETH | wstETH | WBTC | cbBTC | AAVE | USDT | USDC | GHO |
|---|---|---|---|---|---|---|---|---|
| Optimal Utilization | 90_00 | 90_00 | 80_00 | 80_00 | 45_00 | 92_00 | 92_00 | 92_00 |
| Base Variable Borrow Rate | 0 | 0 | 30 | 0 | 0 | 0 | 0 | 0 |
| variableRateSlope1 | 2_70 | 55 | 4_00 | 4_00 | 5_00 | 5_50 | 5_50 | 5_50 |
| variableRateSlope2 | 80_00 | 85_00 | 300_00 | 60_00 | 300_00 | 35_00 | 35_00 | 35_00 |
Yield Seeking Hub
Assets Configuration
| Parameter | PT-sUSDe | sUSDe | USDT | USDC | GHO |
|---|---|---|---|---|---|
| active | True | True | True | True | True |
| Frozen | False | False | False | False | False |
| Paused | False | False | False | False | False |
| decimals | 18 | 18 | 6 | 6 | 18 |
| liquidityFee | 10_00 | 10_00 | 10_00 | 10_00 | 10_00 |
Spokes Configuration
| Parameter | PT-sUSDe | sUSDe | USDT | USDC | GHO |
|---|---|---|---|---|---|
| Yield Seeking Spoke | |||||
| Add Cap (asset units) | 6_000_000 | 5_000_000 | 3_000_000 | 3_000_000 | 17_500_000 |
| Draw Cap (asset units) | 0 | 0 | 2_760_000 | 2_760_000 | 15_500_000 |
| Collateral Enabled | True | True | False | False | False |
| Borrowing Enabled | False | False | True | True | True |
Interest Rate Strategy Configuration
| Parameter | PT-sUSDe | sUSDe |
|---|---|---|
| Optimal Utilization | 45_00 | 90_00 |
| Base Variable Borrow Rate | 0 | 0 |
| variableRateSlope1 | 10_00 | 6_25 |
| variableRateSlope2 | 300_00 | 40_00 |
Frontier Hub
Assets Configuration
| Parameter | UNI | LDO | 1INCH | USDT | USDC | GHO |
|---|---|---|---|---|---|---|
| active | True | True | True | True | True | True |
| Frozen | False | False | False | False | False | False |
| Paused | False | False | False | False | False | False |
| decimals | 18 | 18 | 18 | 6 | 6 | 18 |
| liquidityFee | 5_00 | 10_00 | 10_00 | 10_00 | 10_00 | 10_00 |
Spokes Configuration
| Parameter | UNI | LDO | 1INCH | USDT | USDC | GHO |
|---|---|---|---|---|---|---|
| Frontier Spoke | ||||||
| Add Cap (asset units) | 600_000 | 50_000_000 | 500_000 | 3_000_000 | 3_000_000 | 17_500_000 |
| Draw Cap (asset units) | 0 | 0 | 0 | 2_760_000 | 2_760_000 | 15_500_000 |
| Collateral Enabled | True | True | True | False | False | False |
| Borrowing Enabled | False | False | False | True | True | True |
Interest Rate Strategy Configuration
| Parameter | UNI | LDO | 1INCH |
|---|---|---|---|
| Optimal Utilization | 45_00 | 45_00 | 45_00 |
| Base Variable Borrow Rate | 0 | 0 | 0 |
| variableRateSlope1 | 7_00 | 7_00 | 9_00 |
| variableRateSlope2 | 300_00 | 300_00 | 300_00 |
Spokes Configuration
Prime Spoke - Reserve Config
| Parameter | ETH | wstETH | USDT | USDC | GHO |
|---|---|---|---|---|---|
| active | True | True | True | True | True |
| Frozen | False | False | False | False | False |
| Paused | False | False | False | False | False |
| borrowable | True | True | True | True | True |
| collateral | True | True | True | True | True |
| decimals | 18 | 18 | 6 | 6 | 18 |
| liquidationBonus | 105_00 | 106_00 | 100_00 | 100_00 | 100_00 |
| collateralRisk | 0 | 0 | 0 | 0 | 0 |
| CollateralFactor | 85_00 | 83_00 | 83_00 | 83_00 | 83_00 |
| liquidationFee | 10_00 | 10_00 | 10_00 | 10_00 | 10_00 |
| Hub | Prime Hub | Prime Hub | Prime Hub | Prime Hub | Prime Hub |
Core Spoke - Reserve Config
| Parameter | ETH | wstETH | WBTC | cbBTC | USDT | USDC | GHO | AAVE |
|---|---|---|---|---|---|---|---|---|
| active | True | True | True | True | True | True | True | True |
| Frozen | False | False | False | False | False | False | False | False |
| Paused | False | False | False | False | False | False | False | False |
| borrowable | True | True | True | True | True | True | True | True |
| collateral | True | True | True | True | True | True | True | True |
| decimals | 18 | 18 | 8 | 8 | 6 | 6 | 18 | 18 |
| liquidationBonus | 105_00 | 106_00 | 105_00 | 107_50 | 100_00 | 100_00 | 100_00 | 105_00 |
| collateralRisk | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| CollateralFactor | 85_00 | 83_00 | 78_00 | 78_00 | 83_00 | 83_00 | 83_00 | 78_00 |
| liquidationFee | 10_00 | 10_00 | 10_00 | 10_00 | 10_00 | 10_00 | 10_00 | 10_00 |
| Hub | Core Hub | Core Hub | Core Hub | Core Hub | Core Hub | Core Hub | Core Hub | Core Hub |
LST Spoke (e-Mode) - Reserve Config
| Parameter | ETH | wstETH |
|---|---|---|
| active | True | True |
| Frozen | False | False |
| Paused | False | False |
| borrowable | True | False |
| collateral | False | True |
| decimals | 18 | 18 |
| liquidationBonus | 0 | 106_00 |
| collateralRisk | 0 | 0 |
| CollateralFactor | 0 | 93_00 |
| liquidationFee | 0 | 15_00 |
| Hub | Core Hub | Core Hub |
Yield Seeking Spoke - Reserve Config
| Parameter | PT-sUSDe | sUSDe | USDT | USDC | GHO | USDCâ |
|---|---|---|---|---|---|---|
| active | True | True | True | True | True | True |
| Frozen | False | False | False | False | False | False |
| Paused | False | False | False | False | False | False |
| borrowable | False | False | True | True | True | True |
| collateral | True | True | False | False | False | False |
| decimals | 18 | 18 | 6 | 6 | 18 | 6 |
| liquidationBonus | 105_00 | 106_00 | 0 | 0 | 0 | 0 |
| collateralRisk | 8_00 | 9_00 | 0 | 0 | 0 | 0 |
| CollateralFactor | 78_00 | 80_00 | 0 | 0 | 0 | 0 |
| liquidationFee | 10_00 | 10_00 | 0 | 0 | 0 | 0 |
| Hub | Yield Seeking Hub | Yield Seeking Hub | Yield Seeking Hub | Yield Seeking Hub | Yield Seeking Hub | Yield Seeking Hub |
Frontier Spoke - Reserve Config
| Parameter | UNI | LDO | 1INCH | USDT | USDC | GHO | USDCâ |
|---|---|---|---|---|---|---|---|
| active | True | True | True | True | True | True | True |
| Frozen | False | False | False | False | False | False | False |
| Paused | False | False | False | False | False | False | False |
| borrowable | False | False | False | True | True | True | True |
| collateral | True | True | True | False | False | False | False |
| decimals | 18 | 18 | 18 | 6 | 6 | 18 | 6 |
| liquidationBonus | 105_00 | 106_00 | 105_00 | 0 | 0 | 0 | 0 |
| collateralRisk | 5_00 | 7_00 | 10_00 | 0 | 0 | 0 | 0 |
| CollateralFactor | 78_00 | 78_00 | 78_00 | 0 | 0 | 0 | 0 |
| liquidationFee | 10_00 | 10_00 | 10_00 | 0 | 0 | 0 | 0 |
| Hub | Frontier Hub | Frontier Hub | Frontier Hub | Frontier Hub | Frontier Hub | Frontier Hub | Core Hub |
Next Steps
The V4 testnet will remain active throughout the audit and parameter-calibration period. During this window we invite contributors to review the codebase, validate Hub-to-Spoke liquidity flows and liquidation behavior, and assess how Risk Premiums evolve under different collateral compositions.
Testnet marks the final major gate before the mainnet proposal. As reviews progress, we will consolidate findings, refine parameters where needed, and return to the DAO with the deployment configuration for Aave V4. Thank you to the service providers and community members who have supported the development process. We look forward to your feedback as Testnet enters this validation phase.
Aave Labs



