> 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
