uLABS Ideas: Building Decentralized Structured Products on UMA

Kevin Chan
UMA Project
Published in
9 min readFeb 22, 2021

In this article we show how popular structured products on centralized platforms can be built in DeFi using UMA’s infrastructure. We explain what Dual Currency Products and Principal Protected Products are and how they can be created using UMA’s EMP contract. Finally, we show how the two products are related and how they can efficiently be combined together.

In traditional finance, structured products offer retail investors a passive way to access derivatives like exposure. Many of the popular structures allow investors to gain higher than normal yield by selling options embedded in the investment or obtain upside exposure to an asset with their principal protected. Similar structured products gained popularity in the crypto space with the dual currency product being one of the most talked about structures.

Dual Currency Token

The dual currency product has been made popular by centralized trading platforms. The current product is effectively a high yielding instrument that is created by depositing ETH or BTC and selling a call to limit the upside exposure. At expiry, the investor will appear to be receiving a high yield, but the asset that is returned is dependent on where ETH or BTC is trading. All that’s happening is the investor is collecting a premium for selling a call option. Matrixport provides a great explanation of this product in this article and we will use their example as an illustration, but with the numbers updated for today’s price and some modifications.

Example of Dual Currency Product from Matrixport

Let’s take a look at how the Dual Currency Product works:

Here we have a ETH/USD product with the parameters as follows:

  • Linked Price: 2000
  • Expiry Date: 15-Mar-2021
  • Yield: 5%
  • Investment Currency: ETH

On 15-Feb-2021, Alice bought 1 ETH notional of the above product.

On 15-Mar-2021

  • If ETH weakens between Feb 15 and Mar 15 and the Settlement Price is below USD 2000, Alice receives her original investment and the 5% yield in ETH. Therefore, she receives 1*(1+5%) =1.05% ETH.
  • If ETH rallies between Feb15 and Mar 15 and the Settlement Price is at or above USD 2000, Alice receives her original investment and the 5% yield in USD. Therefore, she receives 2000 + 2000 *0.05 = USD 2100.

Simply put, Alice will be guaranteed a 5% yield on the expiry date. The only uncertainty is whether she will receive the return in ETH or USDC, depending on where ETH/USD stands on the expiry date.

How this can be built on UMA

We can replicate this economically and efficiently with UMA’s expiring synthetic token contract (EMP); however, we can only return one asset in both payouts. We will create a new token called uDCT-ETH (Dual Currency Token) as an example.

  • Assume current market and strike on ETH/USD is $2000
  • Assume premium on call option is 5% or $100 ($2000*0.05)
  • Token sponsor deposits 1.05 ETH to mint 1 uDCT-ETH
  • Token holder pays 1 ETH to buy 1 uDCP-ETH

At expiry, the token holder receives the following payout:

  • If ETH/USD < 2000, token holder receives 1.05 ETH (earns 5%)
  • If ETH/USD >= 2000, token holder receives $2100 worth of ETH (earns 5% on $2000)

As a further illustration,

  • If ETH/USD = $2500, token holder receives 0.84 ETH ($2100 / $2500)

Things to note:

  1. This is the same economically as dual currency products provided by centralized venues, but it looks worse off to investors because it appears they are losing ETH as it rallies. They effectively sold their ETH for $2100 when it was initially $2000, but gave up the rights to any further upside on ETH/USD. In the scenario of ETH/USD at $2500 they start with 1 ETH, but now they end up with 0.84 ETH!
  2. From a contract design and position management perspective this is very clean. Unlike for other products on UMA, there is no need for liquidation bots and token sponsors do not need to manage collateral ratios. All you need is the 1.05 ETH to mint and there is only one price request needed at expiry to settle the token.
  3. From a financial exposure perspective, the token sponsor owns a call option for a price of 0.05 ETH. He deposited 1.05 ETH and was paid 1 ETH for the product (net cost of 0.05 ETH). In the scenario of ETH/USD settling at $2500 he net gains 0.16 ETH. 0.21 ETH of collateral is returned to the token sponsor (1.05–0.84) and he paid 0.05 ETH for this embedded option; therefore a positive 0.16 ETH PNL.

Principal Protected Token

Another popular structured product in traditional finance are principal protected notes. They allow retail investors to gain upside exposure to an asset with their downside protected.

Our friends at DEXTF use this idea to create a crypto version and call them Capital Protected Structure Tokens (CPST). To create this exposure DEXTF combines a yielding fixed income instrument with a call on an asset such as ETH or BTC. The interest earned on the fixed income instrument is used to purchase a call option on the asset. As a result, if ETH or BTC does not rally, the investor would just have lost his interest, but maintained his principal. However, if ETH or BTC does rally then the investor participates on the upside of the asset. These principal protected structures are actually an offset to the dual currency product we described earlier!

Here we will show how we can take the call option the token sponsor created from the Dual Currency Token above and create a Principal Protected Token on ETH (uPPT-ETH). All of this can be built using UMA infrastructure.

We can create a yield dollar token similar to what already exists on UMA and accessible through our partners at opendao.io.

If we take YD-ETH as a zero coupon note and combine it with the ETH/USD call option that the uDCT sponsor received we would have all the components needed to create uPPT-ETH. We use the same numbers from the dual currency token example above and illustrate how the principal protected token (uPPT-ETH) would look like.

  • Assume YD-ETH trades at 0.95 and expires with a value of 1. This is a return of ~5%.
  • ETH/USD is still at $2000
  • Token sponsor buys 2000 YD-ETH at a price of 0.95 (total cost of $1900)
  • Token sponsor buys 1 ETH call option with $2000 ETH/USD strike (embedded in the uDCT-ETH) at a price of 0.05 ETH (cost of $100)
  • Token sponsor combines the two risks to mint 2000 uPPT-ETH tokens and can sell it for $2000 USDC.
  • uPPT-ETH token holder now owns a call on ETH funded by the interest earned from his YD-ETH.

At expiry, the token holder receives the following payout:

  • If ETH/USD < 2000, token holder receives his $2000 principal back as YD-ETH settles at 1
  • If ETH/USD >= 2000, token holder receives his $2000 principal back and earns any upside on ETH through the embedded call option on ETH

Combining the uDCT and uPPT

If you are following this closely you may start to realize something. If there is demand in both uDCT and uPPT then we should be able to efficiently match these offsetting risks and also provide the desired asset payout in the uDCT. (As a reminder, in the Dual Currency Token it optically appears worse for the token holder when the payout does not switch between ETH and USDC.) You notice that the token buyer pays ETH for the uDCT-ETH and pays USDC for the uPPT-ETH. This allows for an efficient and clean way for a token sponsor to create both uDCP-ETH and uPPT-ETH together at the same time. Using the same numbers from the previous two examples above, follow the steps below.

  • Token sponsor deposits both 1.05 ETH and 2000 YD-ETH (at a price of 0.95 or 1900 USDC) as collateral and mints 1 uDCT-ETH and 2000 uPPT-ETH
  • Token buyer pays 1 ETH for uDCT-ETH
  • Token buyer pays 2000 USDC for uPPT-ETH (note that the 100 USDC later earned in interest pays for the 0.05 ETH premium in the embedded call option)

At expiry this is what happens:

uDCT-ETH holder:

  • If ETH/USD < 2000, token holder receives 1.05 ETH
  • If ETH/USD >= 2000, token holder receives 2100 USDC (the 0.05 ETH is sold for USDC)

uPPT-ETH holder:

  • If ETH/USD < 2000, token holder receives 2000 USDC
  • If ETH/USD >= 2000, token holder receives 1 ETH (the 1 ETH covers the initial principal and participates on further upside in ETH/USD)

(Note: The ETH/USD >= 2000 scenario is not as clean as the picture shows. The uPPT-ETH holder actually gets 1 ETH and the uDCT-ETH holder gets 2100 USDC.)

Both token holders get the desired payouts and all that happens is collateral is switched if ETH/USD >= 2000. Also, a premium for the call option is paid from the uPPT-ETH holder to the uDCT-ETH holder. In actual markets, the token sponsor would need to be paid something to take on the risk of creating both tokens and sourcing liquidity to offload the risk. Like in the previous examples, there is no need for bots to monitor liquidations and token sponsors to manage their collateral ratios.

How to Bring to Mainnet

As clean and efficient the design appears there are still obstacles to bring this design to mainnet. In our opinion, here are some things we may need to consider.

  1. Currently UMA’s EMP contract does not support the depositing of two collaterals in one contract nor the minting of two separate tokens at one time. This can likely be done with some modifications, but would require work and an audit.
  2. How to distribute these tokens is unclear. Most tokens built with UMA have been traded on AMMs such as Uniswap and Balancer. This product likely does not fit that mold and buyers of these structured tokens may not be looking to trade these around actively. Token sponsors also take on more risk and will likely carry some inventory given they are minting both tokens at the same time. We can imagine a few sophisticated token sponsors charging a fee to mint and market these tokens for a large number of retail like token holders. There can be many possibilities in terms of how this distribution network is built.
  3. Supply and demand between uDCT and uPPT may at times be very different. The examples above use very simple and round numbers to illustrate how this would ideally work. However, in a market like today’s where implied volatility is extremely high the numbers look very lopsided and may not work as well or does not appear as attractive for one token versus the other. For example, call options right now are very expensive and a dual currency token holder would collect a lot of premium for selling that call option. However, a principal protected token holder likely will not earn enough yield on a fixed income instrument to pay for that call option in order for this structure to make sense. It is possible to scale the uPPT so that instead of owning a call on 1 ETH the token holder could own a fraction of a call due to the high cost of options.

We would love to hear thoughts from the community on how to tackle these challenges or maybe even feedback as to whether or not this method of minting the tokens is even viable.

Conclusion

Decentralized structured products provide a passive way to earn yield or conservatively gain upside exposure to a token. This is especially attractive for crypto users who are not actively trading or who are not interested in the uncertainty of liquidity providing and farming. As DeFi, or crypto in general, becomes more widely adopted we believe structured tokens will play an even greater role as an investment vehicle. The ability to build this in a decentralized way eliminates the credit risk of a central counterparty. Our design also appears to be capital efficient and also requires no risk management by the token sponsors after it is distributed to token holders. If you are interested in learning more or helping us build these tokens please join the UMA Discord or reach out to us directly. We welcome everybody to the UMA community and would love to hear your thoughts!

--

--