Introduction of PT Oracle
In the Pendle system, can be freely traded from and to utilizing our AMM. With the built-in TWAP oracle library, the geometric mean price of in terms of SY or asset can be derived from our PendleMarket contracts fully on-chain. Please refer to the StandardizedYield doc for more details of SY & asset
Oracle design
Pendle's oracle implementation is inspired by the idea of the UniswapV3 Oracle (see here) with a slight difference in how we define the cumulative rate. In short, our oracle stores the cumulative logarithm of implied APY (the interest rate implied by pricing). From the cumulative logarithm of Implied APY, we can calculate the geometric mean of Implied APY, which will be used to derive the mean price.
In a way, the Pendle AMM contract has a built-in oracle of interest rate, which can be used to derive prices.
Formulas
Our oracle storage is in the following form:
struct Observation {
// the block timestamp of the observation
uint32 blockTimestamp;
// the tick logarithm accumulator, i.e., ln(impliedRate) * time elapsed since the pool was first initialized
uint216 lnImpliedRateCumulative;
// whether or not the observation is initialized
bool initialized;
}
The geometric mean price of for the time interval of is: