Cache generator for the Aave Governance V3 Interface. It fetches governance, voting machine, payload, and IPFS metadata, stores the raw cache under cache/, and derives UI-ready proposal/event files under cache/ui/.
A GitHub Actions workflow runs every 3 hours and commits cache updates back to the repository.
- Node.js 22 (
.nvmrcis pinned to22) - Corepack-enabled Yarn 1 (
packageManageris pinned toyarn@1.22.22)
corepack enable
corepack yarn install --frozen-lockfileCreate a .env file or provide the same variables through GitHub Actions secrets.
You need RPC access for the governance core chain and any voting machine / payload chains you want to refresh.
Recommended:
ALCHEMY_API_KEY
Optional overrides:
CORE_NETWORK=mainnetorCORE_NETWORK=sepoliaIPFS_GATEWAY=https://...- Per-chain
RPC_*variables such asRPC_MAINNET,RPC_POLYGON,RPC_AVALANCHE,RPC_OPTIMISM,RPC_BASE,RPC_ARBITRUM,RPC_ZKEVM,RPC_ZKSYNC,RPC_XLAYER,RPC_SEPOLIA,RPC_AVALANCHE_FUJI
Notes:
- Per-chain
RPC_*variables take precedence overALCHEMY_API_KEY. - The scripts rely on
@aave-dao/toolboxRPC resolution, so additional supportedRPC_*variables can also be used. - Public fallback RPCs are best-effort only. For CI or scheduled runs, provide explicit RPC credentials for the chains you need to refresh.
cache:parseis not a pure file split step. It also performs RPC reads and ENS lookups while producing the UI cache.
yarn typecheck
yarn cache:update
yarn cache:parseWhat each command does:
cache:updatefetches on-chain governance, voting machine, payload, event, and IPFS data intocache/.cache:parsederives per-proposal UI files incache/ui/<network>/....typecheckvalidates the TypeScript entrypoints used by the workflow.
The scheduled workflow in .github/workflows/update-cache.yml:
- Installs dependencies with the lockfile
- Runs
typecheck - Runs
cache:update - Runs
cache:parse - Commits changes to
cache/if anything changed
At minimum, set ALCHEMY_API_KEY or a suitable set of per-chain RPC_* secrets before enabling the workflow.
MIT - Copyright 2026 Aave DAO