Building index-tracking assets on top of options instead of debt

This is a design space I’ve been exploring for a long time, very happy to see others noticing it! I have a lot of thoughts on the topic.

Benefits

Let me summarize the benefits of the “options” class of designs:

  • much safer for borrowers, immune to momentary oracle (and price!) manipulation; with very little compromise from lenders
  • soundness (the instrument is well-defined, no circular definition like in perps or “algo-stables”)
  • no assumptions about how the price moves are made –> no “instrument failure” modes like bad debt
  • the ability to express your own opinion about the price/safety (for synthetics: in the happy path)

One important note is that liquidations do NOT protect against a price breakdown. They are a mere heuristic on how to “evolve“ the strike price of a continuously-rolling short option users have on the underlying asset (note: rolling happens not for a constant number of instruments, instead number of shorts * strike price is kept constant). If the call option holders did not give sufficient collateral for an increasing number of short puts they need to underwrite, their position is wound down. The wind-down assumes some short-put-holders (P holders) are willing to close their position, which is very handwavy. Consider a case where the collateral’s price instantaneously falls to 20% of its initial value. Both options and debt respond in the same way.

Options

First of all, if the asset already exists on chain, one can replicate its payoff by creating a covered option with exactly the payoff described. The options’ notional can be orders of magnitude larger than the underlying asset, since it is only used in settlement, which doesn’t happen in the happy path (rolling is preferred). No oracle is needed in any case.

Simple sound options

Note that in covered options (from first principles), it is impossible to replicate a short call payoff. This is why I propose to call the short put payoff simply a “short option”. Note that a short option does NOT have a negative delta, “short”ing comes from selling the option.

asset = call + short

numeraire = put + short

The transition can be done both ways before expiry. This rule already implements option exercise (call-put parity on spot):

call + numeraire = call + (short + put) = (call + short) + put = asset + put

…which means that the call enabled us to swap numeraire for speculative – which is the exercise. We also got an analogous put (the right to undo the call exercise before maturity).

At expiry, puts and calls turn worthless, while the remaining collateral (left from deposits + exercises) is redeemable by short option holders – their payoff says they need to be fine with either asset; receiving the wrong one can only make them happier according to their perceived price. The proof that there is enough collateral is left as a quick exercise to the reader.

I call this design “sound options”.

Sound options

The above design can be generalized to arbitrary nonnegative payoff functions, while preserving oraclelessness (every participant can have a different perception of the price and will be happy with the result).

You can see more details on my talk from ETH Warsaw 2025 (recommend setting the time 1.5x)

The point is, it’s possible to oraclelessly & efficiently implement any strategies like bull spreads, which enable risk stratification for these setups.

For synthetic setups, enabling risk stratification is trivial.

Oracleless design

There is an oracleless design alternative I played with – if untrusted assets of the desired denomination are on chain. The assumptions are as follows:

  • the collateral asset (e.g. ETH) won’t decrease in value too drastically
  • there are some handwavy versions of the “bridged” asset we want to replicate
  • at least one of these assets will hold its value for a certain short period of time (e.g. 1 day)
  • none of the bridged replicated assets will rise above the value of the replicated asset

Let’s also define the “multi-asset option“, where a certain set of assets in preset amounts are needed to mint multi-asset-call and multi-asset-short and by expiry, the multi-asset-call owners have to claim one of the assets. After expiry, multi-asset-short options are redeemable for the remaining assets.

Note that with our assumptions, the multi-asset-call replicates the synthetic’s value! But it’s incredibly inefficient – it requires all handwavy synthetic assets to be deposited for the whole duration – making the risks huge for providing security.

Now, consider typical covered call options on the collateral (e.g. ETH) as the asset and multi-asset-call as the numeraire. Let the expiry of the option be e.g. 1 day before the expiry of the underlying multi-asset option.

Short options here very well replicate the desired synthetic payoff.

Note:

  • in the happy path, calls (N holders) and shorts (P holders) agree on the price and roll the expiries or exit the positions simultaneously
  • if they don’t agree on the fair value, settlement is triggered:
    • first, calls (N holders) have the right to buy their ETH back for numeraire – multi-asset-call. Only here, for settlement, they deposit all “handwavy tokens“ to create multi-asset calls and shorts.
    • secondly, the shorts (P holders) have a short timeframe to choose which of the assets they want to receive – giving them strong guarantees, while keeping the time assets are needed low
    • lastly, the N holders claim back the remaining “handwavy tokens”

Of course, this design is still vulnerable to the price of the collateral decreasing.

Note that it can be made more efficient where the P holders choose the asset they want first, and then N holders must give it to receive their collateral back.

It’s a really cool showcase on what composability can enable, this is what I’m working on at blueprints.finance.

One-time oracle

Oracles which push values one after the other are mostly useful for answering the question “should someone be liquidated?“, rather than settling derivatives. For derivatives, only a single response is ever needed. This response doesn’t need to come at any specific time and the design should allow lazy settlement – where settlement is independent of subjective chain availability. It’s fine for oracles (or users in “pull” designs) to push the result only when it’s needed and answer a customizable query. (this is how Touchmarket positions are settled)

On function representations

As mentioned earlier, it may be useful to stratify the risk. It’s useful to generalize the function set to piecewise f(x) = ax^{-1} + b + cx. This way, one can implement tranching (solving situations like when a user seeking stability wants a $1500 strike while a speculator wants a $1750 strike) and neutrality towards price inversion (f(x^{-1}) is representable in the above format iff f(x) is representable).

Of course, the latter property may be a yacht problem in terms of actual implementations.

Things like power-derivatives can be implemented by just changing this representation or generalizing it to f(x) = \sum_{k \in K} a_k x^k, for a given choice of the set K.

The design space as perps

Perps can be seen as a basket of payoffs (futures), well defined here.

The problem with perps is that as a trader you’re forced into rolling for whatever price the market (the oracle!) determines (funding), rather than choosing whether you want to roll yourself. This makes perps depend on the price of themselves, creating a circular dependency. Traders can be forced into paying whatever others (in total) determine, which incentivizes extractive behavior/cornering. For this reason, I consider perps unsound. This design fixes it.


Now, some responses to others’ points.


Core mistake in OP rebalancing logic

In general, it doesn’t make sense to consider the function of value of the option now of the current price. If your model assumes that the price can jump -20% right after position entry, then Black-Scholes does not remotely resemble the risk you’d be considered to take as a P holder. On the other hand, if you’re assuming +/- brownian motion (Black-Scholes), then the price can’t (with reasonable probability) move that much right now. It will take a long (expected) time to have a reasonable probability of the price being down 20%. For example, for a >10% probability, it could be 25 days out of 30 days until maturity of your option. In this case of a downturn, with remaining 5 days to maturity, the analogous graph will be very flat (low delta), there will be no need to rebalance.

Side note: expected time to maturity is mentioned only to show the outline of the problem. This value is meaningless for most calculations.

For the graph you displayed [option value of current price], the only relevant part is the point at 2500 – how far below 1500 it is (assuming zero BS interest rate) shows the expected loss due to the price being below 1500 at maturity.

Delta doesn’t matter as much if you plan to hold longer – as the value of your position decreases with price decrease, the theta gets more negative, which means that you recover more as time passes. I’m not saying you’re instantaneously neutral to the price movements, I’m only saying the final payout is just a function of the final price – and you should model the EV lost directly based on the pricing at the moment of entry.


A pretty useful way is modelling such short put options by determining the BS price and the BS price at 0% interest rates and with the “current price” shifted up by the interest rate – that’s close to the EV leaked. Their ratio should be very high, meaning that the premium should be mainly coming from the interest rates (lending/leverage), not the expected value of the call option settling out of the money (optionality). It is quite easy to get these parameters so that dynamic rebalancing is never needed. What’s needed is only rolling of the expiries, which can be done very simply and efficiently.


We don’t need “rebalancing”, only predictable rolling

You can always use lower strike prices to decrease the risk further. Also, an excellent solution is decreasing the time to maturity – setting it to e.g. 3-4 days and rolling when there’s 1 day left with a strike at 60% of the current price sounds extremely safe. In the end, the shorter the timeframe, the further this design converges to “standard” lending, except liquidation happens when there’s no counterparty to roll your position, or the amount of premium you’d have to pay is too high for you to want to roll as a borrower/N holder.

Of course, users will get better effective rates (premiums) as the expiries get further in the future.

In fact, all parties are incentivized to roll very soon after entering – it’s associated with highest negative theta for P holders and best risk management for N holders.

tldr: use shorter timeframe options and roll them before expiry, the risk of a shortfall can be practically zero; no dynamic algorithms/heuristics for rebalancing are needed


I think it’s pretty easy to have ultra narrow spreads for rolling. It’s like a bond market, but where both sides really want to match to the other side. I think even a gradual auction will do – as a P holder, I’ll just decrease how much I want to earn by 0.01bp per minute, a lender will certainly match at some point within 1-2 hours. If due to a 10-day option I plan to earn 10bps, then with 1 day left I’ll probably have pocketed 9.0±0.3bps. Losing 1/30 of the yield in this example does not come close to 1-4% of the capital per year. It’s closer to 0.10%, in the worse-than-average scenario. The crux is: no dynamic rebalancing due to extremely far OTM options.


By quadratically, I think you just mean that there is concavity + small delta? If you approximate any function with the first and second derivative (in this case gamma and delta), [nearly] everything will look like a quadratic function locally.

The decrease as a function of collateral (ETH) price is sublinear.


That’s true. You fundamentally can’t replicate something of a higher value than your collateral. The point is that you should have the expiry set soon enough that the price won’t get to go that far, and you’ll be able to revise your collateralization needs. In extreme scenarios, you should customize how much protection you want (how much ETH collateral is needed for your position).


Firstly, a 1-year put is probably way too long for this design. 1-3 months tops at 50% volatility would make more sense imo.

Secondly, the P holders have a covered short put position, meaning they get paid. Your number is close to what I got when considering the ratio of the theta of a put option to the put option value. There is no put option value here – only a short put payoff and a long call. After you account for this, numbers won’t look weird anymore. It’s the call option holders (N holders) that pay this time-value (mostly interest).


Wording

“Prediction markets” are now associated with binary payoffs on arbitrary oracle’s responses. Here, we want to create a non-binary (continuous) payoff based on a scalar response of a one-time oracle. To avoid confusion, I call these instruments “oracle-based payoffs“. I think it’s cleaner and more descriptive.

2 Likes