--- name: avax-aave-v4 description: Integrate Avalanche Aave V4 Hub/Spoke supply and tokenized deposits without V3 API substitutions. --- # Aave V4 on Avalanche 1. Resolve the actual V4 deployment through the [pinned address book](https://github.com/aave-dao/aave-address-book/blob/5017db7e40ba290be681b3f51da59befda3f0688/src/AaveV4Avalanche.sol) and `examples/protocols/aave-v4/manifest.json`. All paths/commands here resolve from the executable bundle root. Distinguish Core Hub shared liquidity, Main Spoke positions and supply-only ERC-4626 TokenizationSpokes. The Avalanche V4 launch was July 15, 2026; do not substitute V3 Pool/aToken interfaces. 2. Run `inspect({provider,blockTag,owner,amount})` from `examples/protocols/aave-v4/recipe.mjs`. It checks raw/configured chain 43114, pinned block/runtime/proxy identities, Hub asset ID and Main reserve ID, underlying/Hub/decimal bindings, and tokenization asset/Hub/assetId. IDs are scoped mappings, not token addresses. 3. Select supply-main, withdraw-main, deposit-tokenized or withdraw-tokenized. Check Hub-spoke active/halted and reserve paused/frozen state, current cash, account balance/debt and caps. Hub add caps are whole-token units: scale by underlying decimals except the explicit unlimited sentinel. Zero is not unlimited. 4. Build an unsigned plan with the exact owner and integer base units: ```js import { inspect, plan } from './examples/protocols/aave-v4/recipe.mjs'; const input = {chainId:43114, owner:actualOwner, operation:'supply-main', amount:'1000000'}; const evidence = await inspect({provider, owner:input.owner, amount:input.amount}); const unsigned = plan(input, evidence); ``` 5. Approve Main for main supply or the TokenizationSpoke for tokenization—not the Hub. The planner resets an insufficient nonzero allowance and approves the exact amount. Main calls supply(reserveId,amount,owner), not V3 Pool.supply. Simulate after approvals; independent eth_calls do not persist allowance changes. 6. Reconcile USDC and supplied assets or tokenized shares, as appropriate. Main withdrawals here require zero account debt and sufficient supplied assets/Hub cash. Tokenized deposits/withdrawals check exact previews and max methods. Native APIs do not enforce a requested minShares or deadline: do not describe previews as slippage protection. 7. Run `node --test examples/protocols/aave-v4/recipe.test.mjs`, `node research/parity-aave-benqi/live-proof.mjs` and `node research/parity-aave-benqi/fork-proof.mjs`. Require runtime evidence, actual local balance/share deltas and failure cases separately. ## Deployment anchors and scope Core Hub: 0xd07369fAE4A5BB13c9Ce446B052c7867B1AbDf6e. Main: 0x435272CefF93a1E657E8ABfdf0A13e95900A3a56. USDC TokenizationSpoke: 0x01D7f7B7CE2123192fECC20bd1caF3e4d9e4C10D. Native USDC: 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E, six decimals, not USDC.e. The observed USDC Hub assetId and Main reserveId were both 2; discover and verify instead of hardcoding these observations. Evidence expires after 300 seconds and must match owner/amount. The default burn-address inspection fixture is not a user wallet. Local-fork proof covers Main supply/debt-free withdrawal and tokenization deposit/withdrawal. Borrowing, repayment, leverage, collateral/manager configuration and debt-bearing withdrawals are not implemented. They need exact V4 account-wide risk simulation. A tokenization share does not imply an enabled borrowing position. **Deliver:** V4 surface/IDs; source/runtime identities; cap/account constraints; unsigned calls; current simulation; execution evidence and limits. Code hashes are not a third-party audit. Sources: [launch](https://aave.com/blog/aave-v4-live-avalanche), [deployment governance](https://governance.aave.com/t/arfc-deploy-aave-v4-on-avalanche/25165), [pinned V4 interfaces](https://github.com/aave/aave-v4/tree/4d86c2d391b039bf2d3909fb2299b69998d0b720), exact interface paths in the manifest.