Skip to content

feat: Pendle V2 action provider (PT/YT/LP) #1143

@Ridwannurudeen

Description

@Ridwannurudeen

Language Implementation

  • Python

Feature Type

  • Action Provider Template

🚀 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions