
Grimoire Aave
Pull Aave V3 chain listings, markets, reserves, and health data through Grimoire CLI commands for DeFi agents and strategy scripts.
Overview
Grimoire Aave is an agent skill for the Build phase that fetches Aave V3 public market data via the Grimoire venue CLI.
Install
npx skills add https://github.com/franalgaba/grimoire --skill grimoire-aaveWhat is this skill?
- Grimoire venue commands: health, chains, markets, market, reserve, reserves, reserves-snapshot
- Preflight via `grimoire venue doctor --adapter aave` with chain and RPC URL
- Supports npx `@grimoirelabs/cli`, repo-local bun, and `grimoire-aave` binary paths
- Optional user address on markets for position-aware listings
- reserves-snapshot emits spell `params:` blocks for agent workflows
- 8 documented Aave venue command families (health through reserves-snapshot)
- Doctor preflight flags: adapter aave, chain, and rpc-url
Adoption & trust: 1k installs on skills.sh; 5 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your agent needs normalized Aave V3 reserve and market snapshots but you do not want to maintain custom subgraph parsers.
Who is it for?
Indie builders wiring Claude Code or Codex to read Aave state on Ethereum and listed chains before writing spells or dashboards.
Skip if: Non-custodial wallet UX, trade execution, or compliance advice without separate security review and your own key management.
When should I use this skill?
Need Aave V3 health checks, chain listings, market metadata, reserve info, or reserves snapshots via Grimoire venue CLI.
What do I get? / Deliverables
You get JSON or table CLI output—and optional spell params blocks—for strategy inputs after a documented doctor preflight.
- CLI JSON or table output for markets and reserves
- Optional spell params block from reserves-snapshot
Recommended Skills
Journey fit
Build/integrations is where on-chain venue CLIs wire into agents and local tooling—not launch marketing. Integrations subphase covers third-party protocol adapters invoked from the terminal.
How it compares
Protocol integration skill around Grimoire CLI, not the Aave smart contracts docs alone or a generic MCP market-data server.
Common Questions / FAQ
Who is grimoire-aave for?
Solo developers building DeFi agents or scripts that need Aave V3 listings, reserves, and health checks from the terminal.
When should I use grimoire-aave?
During Build when integrating lending venue data into an agent, spell, or monitor—after you have an RPC URL and target chain id.
Is grimoire-aave safe to install?
Review the Security Audits panel on this page; CLI skills run shell and network calls and may read on-chain data via your RPC—never paste private keys into agent prompts.
SKILL.md
READMESKILL.md - Grimoire Aave
# Grimoire Aave Skill Use this skill to query Aave V3 metadata and reserve snapshots for strategy inputs. Preferred invocations: - `grimoire venue aave ...` - `npx -y @grimoirelabs/cli venue aave ...` (no-install) - `bun run packages/cli/src/index.ts venue aave ...` (repo-local) - `grimoire-aave ...` (direct binary from `@grimoirelabs/venues`) Recommended preflight: - `grimoire venue doctor --adapter aave --chain 1 --rpc-url <rpc> --json` ## Commands - `grimoire venue aave health` — check Aave protocol health - `grimoire venue aave chains` — list supported chains - `grimoire venue aave markets --chain <id> [--user <address>]` — list markets on a chain (optionally with user positions) - `grimoire venue aave market --chain <id> --address <market> [--user <address>]` — single market details - `grimoire venue aave reserve --chain <id> --market <address> --token <address>` — single reserve details - `grimoire venue aave reserves --chain <id> [--market <address>] [--asset <symbol|address>]` — list reserves with optional filters - `grimoire venue aave reserves-snapshot --chain <id> [--market <address>] [--asset <symbol|address>]` — generate spell `params:` block for reserves (agent-only) ## Examples ```bash grimoire venue aave health grimoire venue aave health --format table grimoire venue aave chains grimoire venue aave markets --chain 1 --format table grimoire venue aave market --chain 1 --address 0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2 grimoire venue aave reserve --chain 1 --market 0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2 --token 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 grimoire venue aave reserves --chain 1 --asset USDC --format table grimoire venue aave reserves --chain 1 --asset USDC --format spell grimoire venue aave reserves-snapshot --chain 1 --asset USDC ``` Use `reserves-snapshot` to emit a `params:` block for spell inputs. This is an agent-only command (output suppressed in interactive mode). ## Supported Chains | Chain | Market Address | |-------|---------------| | Ethereum (1) | `0x87870Bca3F3fD6335C3F4ce8392D69350B4fA4E2` | | Base (8453) | `0xA238Dd80C259a72e81d7e4664a9801593F98d1c5` | ## Spell Constraints Aave V3 actions do not currently support runtime constraints (`max_slippage`, `min_output`, etc.). The adapter handles approvals and amount conversion automatically. ```spell aave_v3.lend(USDC, params.amount) aave_v3.withdraw(USDC, params.amount) aave_v3.borrow(USDC, params.amount) aave_v3.repay(USDC, params.amount) ``` ## Metric Surface (Spell Comparisons) Aave exposes the `apy` metric surface for comparisons: ```spell aave_apy = apy(aave, USDC) aave_apy_generic = metric("apy", aave, USDC) ``` Use this in conditional logic (for example, compare against Morpho APY before reallocating). ## Amount Format The `@aave/client` SDK uses different amount formats per action: | Action | Format | Example (0.1 USDC) | |--------|--------|---------------------| | supply | `value: "0.1"` | Human-readable BigDecimal | | borrow | `value: "0.1"` | Human-readable BigDecimal | | withdraw | `value: { exact: "100000" }` | Raw amount in `exact` wrapper | | repay | `value: { exact: "100000" }` | Raw amount in `exact` wrapper | The adapter handles this conversion automatically. ## Notes - Read-only metadata endpoints only. - Outputs JSON/table; `reserves` also supports `--format spell`. - Prefer `--format json` in automation; use table for quick interactive checks.