Synthetic assets on the blockchain: introducing the conditional value UTXO

Joey Rich
PolyCash
Published in
4 min readMay 13, 2019

PolyCash originated as a platform for binary options on the blockchain. Binary options are contracts such as sports bets which pay out at the payout amount or at zero.

But PolyCash has recently been re-worked to support a wider variety of financial instruments. PolyCash now supports synthetic assets which means that you can hold and transfer coins that mimic the value of BTC, ETH or even stocks like AAPL and GOOG. PolyCash synthetic assets most accurately mimic the value of these assets when using a stablecoin backed by something like dollars. PolyCash synthetic assets require long positions to be fully matched by short positions. Synthetic assets mimic an asset, but only for a specific time period and only between a minimum and maximum price. Users can mimic indefinite holding of a position by purchasing more synthetic assets whenever their positions expire.

To create a synthetic asset, add a market to your PolyCash asset and specify a starting block, a final block and a payout block. The starting and final block determine the time window when people can issue new synthetic assets by buying into the market. The payout block is when the payout price is locked in and when the synthetic asset is terminated and converted back into base coins. Or rather than specifying block numbers, you can specify start, stop and payout times and PolyCash can convert these times to block numbers.

When creating your market, you will also specify a minimum and maximum price defining the price range between which your synthetic asset will track the real asset. Commonly, zero is chosen as the minimum price. The min and max prices determine the leverages associated with your market. Choosing a minimum price above zero will give buyers a leverage above one which means that each buy position will be associated with a negative balance of base coins in addition to the synthetic position held.

The image below shows an example of a stablecoin called dollars and a market mimicking the Monero cryptocurrency. In this example, the market tracked Monero for about 24 hours and has already been paid out.

A market for buying long and short positions in Monero (XMR) up to $100
An example UTXO for the Monero market above.

Synthetic assets rely on data about the real-world prices of mimicked assets. Price data should regularly be pulled from sources such as a oracles or trusted APIs. Prior to the payout block, price data is only used to estimate the current value of UTXOs. At the payout block, a payout price for the mimicked asset must be determined and attached to the market. Since PolyCash assets are decentralized and run on a number of nodes, consensus must be maintained on the payout price for each market. If all nodes get price data from the same APIs they should naturally stay in consensus. If not, other measures must be taken to ensure that all nodes remain in consensus.

Both binary options and synthetic assets are implemented in PolyCash with a concept that we call the “conditional value UTXO.” UTXOs which are associated to a betting event (or synthetic asset market) are called “conditional value UTXOs” and are described as “unresolved” until the payout block. These UTXOs have an amount of 0 until the payout block when they are marked as resolved and their amount is updated to the correct payout amount. Although their amount is technically 0 until payout, their details and estimated value are shown at the user interface level. Spending of conditional value UTXOs prior to resolution (payout) is problematic. Spending unresolved UTXOs gives all associated outputs indeterminate value and is therefore currently disabled at the user interface level. We are working on upgrading the PolyCash protocol to enable unresolved UTXOs to be divided. Once this upgrade is complete, spending unresolved UTXOs will result in the creation of some outputs associated with the same event, rather than making all outputs have indetermined value.

If you’re interested in learning more about synthetic assets on the blockchain, please try out our Daily Crypto Markets game. Sign up via poly.cash, receive 10,000 mock dollars for free and try buying long or short positions in top 10 cryptocurrencies. Or set up your own node and install Daily Crypto Markets on your own computer. To learn more please visit poly.cash or check out our source code on GitHub.

--

--