Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Warning! Oasis is undergoing alpha testing: Proceed at your own risk, and use only small amounts of tokens.
The Oasis dapp can be accessed via https://oasisdex.com/
Please report any issues on https://github.com/OasisDEX/oasis/issues
Oasis is a simple on-chain market for all token assets in the Maker registry; MKR, DAI, ETH and more to follow. It aims to handle the backbone of trade and exchange by focusing on being good for large orders, which needs stuff like custom logic and high security, but it can also work as a regular exchange if it has a good GUI that handles the order search and does a human-friendly display of the markets. The "Simple Market" implementation doesn't have a matching engine, but someone could of course write a layer on top of it that provides such an engine.
The Oasis dapp can be accessed via https://oasisdex.com/
You'll need to run an Ethereum client, such as Mist, MetaMask or Parity Browser.
SimpleMarket contract is deployed on the Ethereum mainnet as well as on both test networks "ropsten" and "kovan". The Dapp user interface will automatically detect the network that your client is connected to and access the right contract address accordingly.
Once loaded the Oasis dapp will check that your blockchain is fully synchronized and the Oasis
SimpleMarket contract can be found; if not you'll get a warning or error message:
- no ethereum found - the local Ethereum node couldn't be accessed. Either it is not running, the RPC interface is disabled or the CORS headers aren't properly set.
- out of sync, waiting for synchronization - your blockchain is not recent, we are connected to your client but it hasn't started synchronizing yet.
- syncing 50% - the blockchain synchronization is in process, this might take a while; check the percentage indication.
- ready - you are connected to the network and your blockchain is up to date.
The MakerOTC contract is deployed on the Ethereum mainnet as well as on both test networks "ropsten" and "kovan". You can click on the contract address to inspect the contract on the EtherScan.io blockchain explorer. Note that you shouldn't send any funds to the contract address directly (they will be rejected). If you want to allow the MakerOTC to access your funds, please read below under Allowance.
ExpiringMarket contract has a limited lifetime after which no new orders can be created or existing orders accepted; also if the market is closed anyone can cancel existing orders. This is a security precaution that will allow the market to be frequently upgraded and prevents stale assets to be locked into legacy market contracts.
The account pulldown contains the Ethereum account(s) that are detected in your Ethereum client. You can switch between them, the relevant balances should update instantly. The actively selected & displayed account will be used to initiate all transactions from. Note that the account might not be unlocked (yet). Read how to unlock an account.
The balance shows the amount of ETH in your currently selected account. To pay for the gas cost of any transaction, you should have a non-zero amount in your account. If not, buy some ether and send it to this address. Please note that you can't use this amount directly to trade with. To do so you would have to first deposit it into the ETH token contract.
MakerOTC can trade any tokens that are 1) following the EIP-20 token standard and are 2) registered in the Maker registry. Currently those are the ETH, MKR, DGD, REP, ICN, 1ST, SNGLS, VSL, PLU, MLN and DAI tokens.
For the MakerOTC Dapp to be able to access your token funds for buying and/or selling, you need to first grant it access to withdraw from your personal
account by setting the allowance. This will specify the maximum that can be withdrawn, and will be reduced with each withdrawal. You can always update
the allowance or disable it completely by setting it to
0. This might seem confusing initially, but this token access pattern is common practice for
all EIP-20 tokens.
The orderbook shows which are the current open orders. You can click on any to accept the proposed trade, you'll get a confirmation modal outlining the details of the trade. There is no matching engine, so it is up to you to find and accept the best trades!
These list the open buy orders, an other trader wants to buy the amount and currency as specified under BID, which has the approximate price as specified under VALUE and in exchange you will sell the amount and currency as specified under VOLUME.
These list the open sell orders, an other trader wants to sell the amount and currency as specified under ASK, which has the approximate price as specified under VALUE and in exchange you will buy the amount and currency as specified under VOLUME.
These contain all your open buy and sell orders for the selected account. You can cancel them by clicking on the [X] next to the order line.
To place a new market order you can enter the type (buy/sell), the quote currency, the amount and the requested volume. The total price will be updated automatically. Be aware that an order created this way will NOT match against any open orders in the order book; if you want that you'll have to select them from the orderbook instead of creating a new order.
W-ETH (Wrapped Ether Tokens)
To be able to trade ETH, you first have to deposit it into the EIP-20 standard token compliant ETH Token contract. You can deposit and withdraw from it and your ETH account using this form.
W-GNT (Wrapped GNT Tokens)
To be able to trade GNT, you first have to deposit it into the GNT Token wrapper. You can deposit and withdraw from it and your GNT account using this form.