> For the complete documentation index, see [llms.txt](https://docs-v4.venus.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-v4.venus.io/technical-reference/reference-oracle/correlated-token-oracles/pendle-oracle.md).

# PendleOracle

`PendleOracle` prices a dated Pendle principal token from either a PT-to-asset or PT-to-SY TWAP and the configured underlying USD price. Deployment artifacts contain at least two incompatible generations.

## V1 proxy generation

```solidity
constructor(
    address market,
    address ptOracle,
    uint8 rateKind,
    address ptToken,
    address underlyingToken,
    address resilientOracle,
    uint32 twapDuration
)
```

`rateKind` selects `PT_TO_ASSET` or `PT_TO_SY`. BNB Chain proxy `0xEa7a92D12196A325C76ED26DBd36629d7EC46459` pointed to V1 implementation `0x8A183a0d35290D849e8915710D3aEE7e463705E7` at block `118367342`.

## V2 capped generation

The [`PendleOracle` v2.16.0 source](https://github.com/VenusProtocol/oracle/blob/v2.16.0/contracts/oracles/PendleOracle.sol) takes one 13-field structure:

```solidity
struct ConstructorParams {
    address market;
    address ptOracle;
    RateKind rateKind;
    address ptToken;
    address underlyingToken;
    address resilientOracle;
    uint32 twapDuration;
    uint256 annualGrowthRate;
    uint256 snapshotInterval;
    uint256 initialSnapshotMaxExchangeRate;
    uint256 initialSnapshotTimestamp;
    address accessControlManager;
    uint256 snapshotGap;
}
```

It also exposes immutable `MARKET`, `PT_ORACLE`, `RATE_KIND`, `TWAP_DURATION`, and `UNDERLYING_DECIMALS`, plus the [common V2 cap API](/technical-reference/reference-oracle/correlated-token-oracles/correlated-token-oracle.md). Construction verifies that the Pendle oracle has sufficient observation history for the requested duration.

BNB Chain `PendleOracle-PT-USDe-30OCT2025` at `0xAa5138e86c078fd2859a929173B3870b5003EC30` is a non-proxy V2 example with code present at block `118367342`.

A maturity date in an artifact name is not enough to delete its reference. Before labeling an instance historical, verify the current ResilientOracle token config, consuming market balances and debt, and any remaining exit or recovery duty.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs-v4.venus.io/technical-reference/reference-oracle/correlated-token-oracles/pendle-oracle.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
