Explaining of ERC-721o

Andrey Belyakov
Opium
Published in
6 min readApr 28, 2019

Use cases. Advantages. Examples.

Recently we have released our open source proposal for a derivative token standard: ERC-721o. In this article, we explain the standard for non-financial people and also will explain why derivatives are such a large and interesting market.

Derivatives - to put it simply

Derivatives are financial securities, special types of contracts between two or more counterparties. According to contract agreements, counterparties owe each other amounts that are derived from the underlying asset/event.

For example, I can commit to selling a certain amount of an underlying product at a certain price in one year to my counterparty. This is called a forward contract, a very simple derivative. If I don’t want to be busy with the physical transfer of the underlying product, I can agree that my counterparty may buy the underlying on the open market and I will compensate the price difference from the agreed price or I will receive the extra funds from him (depending on which side needs to be compensated). And this is also a derivative, but with cash settlement. Cash settlement is very handy when an underlying is 10 tons of oil. I don’t need to find, store and send a tanker to the other side of the world, I just pay or receive the compensation of the price move.

Why do people like to go into such agreements?

The simple reason is to exchange risks. One party, that, for example, regularly buys oil to produce gasoline, does not like it when the price of oil goes up. Another party, that, for example, extracts and sells oil, does not like it when the price oil is going down. Because those two parties their business is not gambling on the oil price, but rather extraction and production they would love to exchange risks.

Another obvious reason why people like derivatives is to invest: take the risk to hope to be rewarded for it. It is quite easy to buy a derivative that represents 10 tons of oil and receive profits or losses in a year time, based on the price change. Much easier than to be busy trying to store a tanker in your backyard…

Exchange-traded products

So derivatives are cool instruments to exchange risks, but it is even better to trade risks on the market in a standardised way. That’s how we come to the exchange-traded products. In the example above, it was an agreement between two parties, but what if thousands of parties like to exchange certain risks? It should be standardised and put on the open market. Let’s say, we make standard agreements to buy or sell 1 liter of oil and we put it on the exchange. Very handy! I can now buy any amount of these contracts and I can have many counterparties at the same time, it does not matter as long they are all credible. So you can easily buy or hedge 457 contracts representing 457 liters of oil.

That’s how risk exchanging transforms into risk trading. To make sure all my contracts have credible counterparties, there is a clearing counterparty in between. Making the long story short: this central agent can be a blockchain. A cheap, immutable and transparent agent. It has developed fast and already can offer a solid enough infrastructure for first derivative settlements.

Multi-class Fungible Tokens

Our team has developed a simple and flexible universal protocol to trade any derivative on the Ethereum blockchain. During the development, we have faced the absence of a convenient token standard that can represent exchange-traded derivatives, OTC derivatives and their main features.

Derivatives

By nature, those products are multi-class fungible products. Each class is unique and within the class, tokens are fully fungible. As we said earlier, millions of the same fungible futures contracts are traded, but they are different from other derivatives which are also fungible only with each other.

The derivatives market is the biggest market in the world and it needs a token standard that is a combination of ERC-20 and ERC-721 standards. We were inspired by the ERC-721x proposal but adjusted it for the financial needs. In most of the cases, traders don’t need a standalone derivative, but a combination of the plain products which they trade together, manage and send as one position based on the financial logic. We have introduced the portfolio wrapping feature: just like files and folders in the file system, our tokens can be either portfolios that hold other tokens or plain derivatives.

Portfolios and spreads

It makes it easy to trade a certain derivative together with another one, with the “all or nothing execution”. For example, based on recent events I would like to buy futures for Boeing shares because I believe that the price is low and besides all the sad events, the company is a strong one. But I am not so sure about the overall stock market. I may think it is overheated because the S&P index is on historical high and money are being printed (called asset-price inflation). I would like to have a combined position: long Boeing futures & short the whole market at the same time. As traders would say; I buy the alpha risk of the company - buying company-specific risk - and selling the general stock risk. In this case, if I am right and Boeing shares will grow compared to the whole market, I am making money. It does not matter if both the market and Boeing shares will go down, the only thing that matters is the relative performance of the Boing vs the market.

Besides that such engineering is another good reason to use derivatives, my simple portfolio token represents a pure alpha trade. I can go further and add another position to this simple portfolio, let’s say hedging the tail risk events and so on…

Other features

We also recommend a minting logic that starts with the derivative ID (some unique identification; most of the time convenient to use hash of the parameters). If we mint a “long/short” position it’s identifier will be =hash(derivativeID&”long/short”). So knowing derivative ID two tokens can be derived.

Finally, another financial feature that is highly needed is spread-trading, when I want to buy a certain instrument and sell another one paying a small amount of money. And in this situation I don’t want to take the risk that they both going up or down, I am only interested in the difference of the prices. We have implemented this and other features in the Opium Protocol, because it is not needed in the token standard and only will increase the usage of gas.

Summary

Derivatives are the largest market in the world and they are composable multiclass fungible instruments.

We have introduced a new token standard that we designed during the development of our universal derivative protocol. It can easily represent both exchange-traded and OTC derivatives, supports wraps and operations with portfolios and it is backwards compatible with ERC-721 so can be fitted into the existing ecosystem of DeFi projects as much as possible in a native manner.

The reference implementation and more details can be found on the project GitHub. For more technical explanation you may be interested to read our previous article.

We look forward to getting feedback regarding our proposal. It is already implemented into alpha-version of Opium Protocol that will be released over the next few weeks after more heavy testing on a test net. To get early access, contribute and help us to test and improve the Opium Protocol please subscribe to our Telegram group.

--

--