Update: A follow-up post is available here

This post will introduce the mechanics behind Timeless perpetual yield tokens and negative yield tokens. It will also provide a model for pricing them based on the expected future yield rate.

What are perpetual yield tokens?

Timeless perpetual yield tokens (PYT) represent streams of future yield earned by a certain amount of principal. For example, say we have a PYT that uses yearn’s USDC vault to generate yield, then 1 PYT represents the right to claim the yield generated by 1 USDC in the yearn USDC vault from now to forever in the future.

PYTs are useful because their prices move in the same direction as the yield rates of the yield-generating vaults they use, so it’s easy to use them to speculate on yield rates. But how are PYTs implemented?

We will use another example to illustrate the mechanics underlying PYTs. Suppose you have 100 USDC, and you want to use it to mint PYT using the yearn USDC vault as the yield source. You would give your 100 USDC to Timeless, and Timeless will deposit it into the yearn vault and mint you 100 PYT as well as 100 negative yield tokens (NYT). We will introduce what NYTs are in a bit. You can now use the PYT & NYT however you want, be it transferring to another wallet you own or depositing into another DeFi protocol. The wallet that owns the 100 PYT will be able to claim the yield generated by your 100 USDC whenever they want. If you wanted to get back your 100 USDC, you can do so by simply returning 100 PYT and 100 NYT to Timeless.

PYTs and NYTs have an interesting property: the price of 1 PYT plus the price of 1 NYT must add up to 1 of the underlying asset. For our example above, this translates into the value of your 100 PYT and 100 NYT is always equal to 100 USDC. This makes intuitive sense: you should never pay more than 100 USDC for them, since you can just use 100 USDC to mint them; and you should never sell them for less, since you can just burn them to get back your 100 USDC.

But how is this relevant? Well, if you think about it, whenever the price of PYT goes up, the price of NYT must go down in order for them to still sum up to 1, and whenever PYT goes down NYT must go up. This means the price of NYT moves in the opposite direction as the yield rate. Thus, NYTs can be used as an instrument to short yield rates, which is why they’re called negative yield tokens.

More juicy details

The mechanics behind PYTs and NYTs are, as you can see, fairly simple. This is why we have committed to also making the implementation of Timeless as simple and elegant as it can be. Here are some more details about what the implementation looks like:

Maximally composable

Timeless PYTs and NYTs are ERC20 tokens, meaning they can be easily integrated into other platforms. However, because PYTs give their holders the right to claim from a yield stream, and each holder might have different accrued yield amounts, transferring them to protocols that do not have Timeless integration might cause accrued yield to be lost.

This is why Timeless also offers xPYT, which is a vault protocol that auto-compounds the yield earned by deposited PYT back into more PYT. Since xPYTs are basic ERC20 tokens without any bells an whistles, they can be easily composed with other protocols that didn’t specifically add Timeless support, meaning you can easily trade them on Uniswap, lend/borrow them on Rari Fuse, or use them in any other existing DeFi protocol.

Swapper

One thing we have observed in existing yield tokenization protocols (Element, Pendle, etc) is that they have fragmented liquidity. This is caused not just by the need for yield tokens (and thus liquidity pools) with different expiries, but also by their decision to have separate liquidity pools for their principal tokens (analogous to NYT) and yield tokens (analogous to PYT).

Another thing we observed is that they’re not taking advantage of the fact that the prices of their principal tokens & yield tokens always add up to 1 of the underlying token, making their LPs lose money to arbitrageurs who profit when this relationship is broken. For example, if PT is trading at 0.6 and YT is trading at 0.4, suppose someone bought some PT and increased its price to 0.7, then an arbitrageur can mint 1 PT + 1 YT for a cost of 1, and sell the PT & YT on the market for 0.7 + 0.4 = 1.1.

Learning from these observations, we have designed & built a Swapper contract, which solves both of the abovementioned issues.

  • The Swapper contract uses an underlying xPYT-NYT trading pair on an external AMM (such as Uniswap).
  • Whenever a user needs to swap between an xPYT/NYT and its underlying asset, the Swapper mints/burns PYT and NYT to convert between yield tokens and underlying assets. This not only obviates having a trading pair between PYT/NYT & their underlying asset, but also reduces price impact since minting/burning PYT & NYT is in effect a 0-price-impact swap.
    • The usage of minting & burning implicitly guarantees that the prices of PYT and NYT sum up to 1, preventing arbitrageurs from exploiting LPs.
  • Timeless has far higher capital efficiency (20x+) in terms of generating yield token liquidity. For instance, \$1 of principal can be used to mint only \$0.05 of YTs using protocols such as Element or Pendle (assuming 10% APY and 6 months expiry), whereas \$1 of principal can be used to mint \$1 of PYT & NYT via Timeless. This makes providing PYT & NYT liquidity far more capital efficient.
  • And of course, because Timeless PYTs and NYTs do not have expiries, there is no liquidity fragmentation across different expiries.

Permissionless & Decentralized

The Timeless smart contracts are completely permissionless & decentralized, meaning:

  • Anyone can deploy PYTs & NYTs for any yield-bearing asset, without having to ask the Timeless team to whitelist/add support for anything. This is achieved via our support for vaults following the ERC4626 standard as well as Yearn v2 vaults.
  • Anyone can deploy xPYT vaults for any PYT. Furthermore, xPYT vaults are designed to be permissionlessly managed, meaning they don’t need any vault managers/strategists, they simply expose MEV when there’s claimable yield and let MEV bots perform the auto-compounding. xPYT vaults also rely on the Timeless AMM TWAP oracles to ensure that losses to sandwiching etc is minimized, without resorting to off-chain price feeds/aggregators.

Thus, after Timeless is deployed, the protocol does not require any input/maintenance from the team, it will simply work forever. Another example of a protocol with this level of permissionlessness & decentralization is Uniswap, for which we have much respect.

How do you price PYTs & NYTs?

One thing that has caused confusion to friends who we have introduced Timeless to is: how do you price PYTs & NYTs?

This is a natural question, since even the concept of a yield token that’s perpetual is baffling to some. After all, if you hold PYT, you have the right to claim the yield generated by the underlying principal forever, so won’t the value of PYTs be infinite?

As you will see, this is far from the case, and there does exist a way to rationally price PYTs & NYTs. This is because we can employ exponential discounting, which basically says we can treat the value of money in the future to be less than that of money in the present, because of the various ways we can generate returns if we had money now rather than later, such as yield farming or investing. Exponential discounting makes the value of PYTs finite, which makes it possible for us to price them.

In the rest of this section, we will describe exactly how to price PYTs and NYTs using some basic math. If you’re uncomfortable with math, feel free to skip ahead to the observations section to see what we have observed from the results.


We will first consider regular yield bearing tokens. Suppose we have $x$ USDC’s worth of yUSDC. Our yUSDC has two types of value: principal value and yield value.

Principal value refers to the value of the underlying principal, which equals to $x$ in our case. We will denote principal value as

$$ P(x) = x $$

Yield value refers to the value of the future yield generated by the principal. One might mistakenly think that the yield value is always infinite since the time horizon is infinite, but that’s only assuming we do not do any discounting (i.e. treat the value of 1 USDC at some future time to be less than that of 1 USDC in the present). Here, we will use exponential discounting with discount factor $\beta \in (0, 1)$. We will denote yield value as

$$ Y_\beta(x) = \int_0^\infty \beta^t y(x, t) dt $$

where $y(x, t)$ is the instantaneous yield earned by $x$ amount of principal at time $t$.

One interesting note is that when you price the yield bearing tokens only the principal value is considered, since you can always mint/burn them just using the principal, but it’s obvious that the yield value is also valuable, since you would never give away the yield stream generated by your principal for free. This makes the yield value sort of ethereal / imaginary.

When we “split up” the yield bearing tokens into $x$ PYT and $x$ NYT, we will split up the principal value and yield value between them. Specifically, the principal value will be divided evenly between the PYT and NYT, and the yield value will be assigned to the PYT. We will define the virtual value of PYTs and NYTs as the following:

$$ V_{PYT}(x) = \frac12 P(x) + Y_\beta(x) = \frac12 x + Y_\beta(x) $$

$$ V_{NYT}(x) = \frac12 P(x) = \frac12 x $$

Virtual value represents the total value of PYT/NYT by adding up its principal value and its yield value. It is virtual in the sense that the PYT/NYT is not traded at this valuation, since if it did then the prices of PYT and NYT would add up to more than 1, but it is useful for determining the relative pricing between PYT and NYT since it captures both their principal value and their yield value.

We know the prices of PYT and NYT add up to 1, hence the price of PYT is:

$$ Price_{PYT} = \frac{V_{PYT}(x)}{V_{PYT}(x) + V_{NYT}(x)} = \frac{\frac12 x + Y_\beta(x)}{x + Y_\beta(x)} = 1 - \frac{x}{2(x + Y_\beta(x))} $$

This expression isn’t that useful if we don’t replace $Y_\beta(x)$ with something more specific. Suppose that

$$ y(x, t) = \lambda x $$

which means the yield is generated at a constant rate of $\lambda$ (e.g. if the time unit is year, $\lambda = 0.1$ means the APR is 10%). Linear growth is used rather than exponential growth because the yield is assumed to be continuously claimed by the PYT holder rather than compounded.

Thus, we have

$$ Y_\beta(x) = \lambda x \int_0^\infty \beta^t dt = \left. \frac{\lambda x}{\ln \beta} \beta^t \right\vert_{t=0}^\infty = - \frac{\lambda}{\ln \beta} x $$

$$ \therefore Price_{PYT} = 1 - \frac{1}{2(1 -\frac{\lambda}{\ln \beta})} $$

Another interesting note is that even though the yield bearing token’s yield value is “ethereal” such that it doesn’t affect the pricing, when we split the yield bearing token into PYT & NYT the yield value becomes “corporeal” and does affect the pricing.

Observations

Now that we have a pricing formula for PYT, we can play around with it, plug in some numbers, and make some observations. We will use $\beta = 0.85$, and use year as the time unit.

Desmos link

Firstly, we can see that as the yield rate $\lambda$ increases, the slope of the price curve decreases and approaches 0. This means that PYTs are more sensitive to yield rate changes when the yield rate is low. For instance, if the yield rate increases from $5\%$ to $10\%$, the price of PYT goes from $0.6176$ to $0.6905$, a $11.80\%$ increase. If the yield rate increases again from $10\%$ to $15\%$, however, the price of PYT goes from $0.6905$ to $0.74$, only a $7.17\%$ increase.

Secondly, we can see that the price of PYT is insensitive to yield rate changes. As we just saw, doubling the yield rate from $5\%$ to $10\%$ only increases the price of PYT by $11.80\%$, which is far lower than the $100\%$ increase in the yield rate. This property is caused by the fact that the price of PYT is bounded between $0.5$ and $1$, meaning at best it can do a 2x, making PYTs usually very insensitive to yield rate changes.

PYTs are more suitable for yield leveraging rather than speculation. The most basic yield leveraging strategy is using your principal to buy PYTs on the market, versus depositing your principal into a vault directly. The amount of leverage you can get is $\frac{1}{Price_{PYT}}$, and the insensitivity of PYT means the leverage is usually significantly above 1x, while your principal’s value is relatively stable. Of course, the leverage you get from this basic strategy is still pretty low, with a maximum of 2x leverage, but you can increase the leverage by employing a more complex strategy. For example, if there is a lending pool for the PYT, you can leverage up your PYT position to boost the yield leverage you get.

Thirdly, while the price of PYT is doomed to be insensitive, the same is not true of the price of NYT. Instead of ranging between $0.5$ and $1$, it ranges between $0$ and $0.5$, meaning it can theoretically increase by any proportion. For example, if the yield rate decreases from $80\%$ to $20\%$, the price of NYT goes from $0.0844$ to $0.2242$, a $165\%$ increase. Thus, NYTs are more suitable for yield speculation than PYTs.

Conclusion

In this post, we have introduced Timeless perpetual yield tokens and negative yield tokens, how they work, how they’re better than existing yield tokenization protocols, and how to price them. We hope you’re now as excited about them as we are!

Much love & thanks to 0xmons, CometShock, and 0xcarnation for providing valuable feedback to this post <3