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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions