Language Implementation
Feature Type
🚀 The feature, motivation and pitch
Add a Pendle V2 action provider so AgentKit agents can interact with yield-tokenized assets (PT, YT) and provide liquidity to Pendle markets directly.
Pendle is listed in WISHLIST.md under DeFi → Liquidity & Staking ("Pendle interactions (LP, PT, YT)") and currently has no PR open or merged.
Why it matters. AgentKit covers spot DeFi (Aave merged in #865, Morpho, Aerodrome in flight, vaults via Vaults.fyi), but yield trading — fixed-rate buying via PT, leveraged yield via YT, LP — is a multi-billion-TVL category that's not addressable today. Pendle V2 is deployed on Base mainnet (deployment file 8453-core.json in pendle-core-v2-public) with the same canonical router address used on Ethereum, Arbitrum, BNB, and Mantle:
- PendleRouter (all chains):
0x888888888889758F76e7103c6CbF23ABbF58F946
- RouterStatic (Base):
0xB4205a645c7e920BD8504181B1D7f2c5C955C3e7
Active markets churn by maturity, so the provider will fetch the live market set from the Pendle public API (https://api-v2.pendle.finance/core/v1/8453/markets/active) at runtime rather than hard-coding addresses.
Proposed scope (single Python PR following the Aave precedent in #865):
- Buy PT (fixed yield) with an underlying or stablecoin
- Sell PT back to underlying before or at maturity
- Buy YT (long-yield exposure)
- Add and remove dual-token liquidity to a Pendle pool
- Read market info: PT/YT/SY addresses, expiry, implied APY
TypeScript provider in a follow-up PR after Python lands.
File layout follows the merged Aave action provider in #865. Tests mock the EvmWalletProvider and assert against canonical Pendle Router calldata.
Alternatives
- Direct interactions via existing
erc20 + wallet actions — agents would need to encode Pendle Router calldata themselves, which is exactly the friction this provider removes.
- Pendle SDK as a one-off TypeScript dependency — would block the Python provider; calldata generation via the public API +
web3.py is language-agnostic.
Additional context
Happy to scope a first PR to PT-only (buy/sell + market info) if maintainers prefer smaller surface area, with YT and LP in follow-ups. Will follow the merge pattern from #865: make format && make lint && make test green, README in alphabetic order, changelog.d/ entry.
Language Implementation
Feature Type
🚀 The feature, motivation and pitch
Add a Pendle V2 action provider so AgentKit agents can interact with yield-tokenized assets (PT, YT) and provide liquidity to Pendle markets directly.
Pendle is listed in WISHLIST.md under DeFi → Liquidity & Staking ("Pendle interactions (LP, PT, YT)") and currently has no PR open or merged.
Why it matters. AgentKit covers spot DeFi (Aave merged in #865, Morpho, Aerodrome in flight, vaults via Vaults.fyi), but yield trading — fixed-rate buying via PT, leveraged yield via YT, LP — is a multi-billion-TVL category that's not addressable today. Pendle V2 is deployed on Base mainnet (deployment file
8453-core.jsoninpendle-core-v2-public) with the same canonical router address used on Ethereum, Arbitrum, BNB, and Mantle:0x888888888889758F76e7103c6CbF23ABbF58F9460xB4205a645c7e920BD8504181B1D7f2c5C955C3e7Active markets churn by maturity, so the provider will fetch the live market set from the Pendle public API (
https://api-v2.pendle.finance/core/v1/8453/markets/active) at runtime rather than hard-coding addresses.Proposed scope (single Python PR following the Aave precedent in #865):
TypeScript provider in a follow-up PR after Python lands.
File layout follows the merged Aave action provider in #865. Tests mock the
EvmWalletProviderand assert against canonical Pendle Router calldata.Alternatives
erc20+walletactions — agents would need to encode Pendle Router calldata themselves, which is exactly the friction this provider removes.web3.pyis language-agnostic.Additional context
Happy to scope a first PR to PT-only (buy/sell + market info) if maintainers prefer smaller surface area, with YT and LP in follow-ups. Will follow the merge pattern from #865:
make format && make lint && make testgreen, README in alphabetic order,changelog.d/entry.