0D.exchange provides a user interface to a set of smart contracts on the Ethereum blockchain. These smart contracts enable conditional payments that are based on the price development of an underlying asset. Through 0D.exchange you can create your own customized conditional payments or enter into those created by other users. There is no need for a registration. 0D.exchange connects to your Ethereum client and tells it to read and write relevant information on the blockchain for you. On the blockchain you identify yourself only with your Ethereum address.
We do not hold user funds at any time. Instead, funds are deposited into smart contracts, which are created and owned by the users. The contracts are deployed on the Ethereum mainnet and do not rely on any utility tokens. All transactions made use ETH only. For test purposes, the same contracts are also deployed on the Ropsten testnet.
The main smart contract 0D.exchange provides an interface to is the 0D master contract, smart contract deployed on the Ethereum blockchain. It serves as the template for users‘ customized contracts. The deployed master contract and its verified source code can be viewed on Etherscan.
The following sections provide explanations for all main features of 0D.exchange. A general overview is given in our Medium article. If you have further questions, feel free to contact us via email:
A smart contract derived from the 0D master contract represents an agreement on a conditional payment that is based on the price development of an underlying asset. For this, the creator of the contract deposits a stake in ETH into the contract, sets a strike price and chooses whether they want to go long or short on the underlying asset’s price.
On the due date of contracts, the conditional payment is settled. The underlying asset’s spot price is compared to the strike price. The difference in percent is calculated and multiplied by a leverage factor. The user’s withdrawal amount is calculated by multiplying this leveraged percentage by the user’s stake and adding their initial stake. Then user can withdraw their respective amount. The maximum achievable profit is two times the deposited stake. Note, that the counterparties who entered a contract need to pay a fee (see VII. Fees), which is subtracted from their withdrawal amount.
Right now, only the strike price (and of course the stake to deposit) can be customized by the user that creates the contract. The only underlying supported for now is the S&P 500 index. The leverage is fixed to ‘2x’. In the future, this may change and perhaps will be made customizable, as well. We will make sure to give updates on this.
The contract creator interacts with the 0D master contract in order to create a new contract. In the creation process they set a strike price, choose whether they want to go long or short on the underlying’s price and deposit a stake (in ETH) into the contract. The stake can only be an integer multiple of 0.1 ETH.
Once contract creation is finished, the contract will be listed on 0D.exchange. Now users willing to take on the counterparty can enter. So, if the creator goes long, the counterparty users go short in this contract, and vice versa.
A contract can only be created from a single ETH account address, so there is only one creator per contract. There can be multiple counterparties, however, as counterparties only have to deposit a stake worth some integer multiple of 0.1 ETH.
The counterparties enter the position that is contrary to the creator’s position in an existing contract. Once a counterparty has deposited their desired stake into a contract, the contract becomes effective. This means that the creator’s and the counterparty’s stake, respectively, are locked in the contract until the due date. The creator’s stake, however, is locked in the contract only to the extent that it is matched by stakes of the counterparties. Several users can enter as counterparties until all of the creator’s stake is matched by counterparty stakes. The amount of remaining unmatched stake can be withdrawn by the creator at any time or kept in the contract until another counterparty matches that stake.
The due date of the contracts is the third Friday of each month. All contracts will expire on this date on a monthly basis. After the due date, the contracts are ready for settlement. Contracts created after the due date will have their due date on the third Friday of the subsequent month. If the third Friday of a month is not a trading day, the respective previous trading day is chosen as the due date. The exact due time is the corresponding asset’s market closing time.
Settlement takes place once the first user requests a withdrawal from the contract. The settlement price will be provided through an oracle (View oracle on Etherscan). Donex UG makes sure that the oracle provides the underlying’s closing price on the due date. You can compare the price provided by the oracle to other sources on the internet.
After settlement has taken place, users can withdraw their funds from the contract by using the corresponding button in the contract’s info window (under ‘Created Contracts’ or ‘Entered Contracts’ in the main page’s right column).
Using 0D.exchange and its smart contracts is free of charge. Note, however, that Ethereum transaction fees (gas costs) always apply. We are constantly working on developing contract implementations that reduce the gas costs involved for users.
From time to time, 0D.exchange offers a limited number of bounties to contract creators (View bounty contract on Etherscan). The bounties are made available to the respective creator as soon as a counterparty has entered the creator’s contract. After that, the bounty has to be actively withdrawn by the creator in the contract’s info window under ‘Created Contracts’ on the main page of 0D.exchange.