Introduction of PT Oracle
In Pendle system, can be freely traded from and to ultilizing 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 from the idea of 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 used to derive the mean price.
In a way, the Pendle AMM contract has a built-in oracle of interest rate, which can 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: