This blog is a high-level iteration of how an exchange can integrate with the OMG Network to deposit and withdraw ERC20 tokens (e.g. USDt). Visit our documentation site for a more in-depth and technical explanation of how this works.
Exchanges can integrate with the OMG Network to allow their users to make faster and cheaper transactions with the same security guarantees as Ethereum.
Due to the distinct nature of each exchange’s infrastructure, development approach, UI/UX design, etc. there are no strict requirements to integrate with the OMG Network. However, after working with leading exchanges like Bitfinex, the OMG Network team recommends the following blueprint for a smooth integration experience:
Step 1: Generate ETH Addresses
As an exchange, you need to be able to generate new Ethereum addresses for your customers. If you already support Ethereum, you shouldn’t have any issues.
Step 2: Query the Blockchain
There are several components that are important for an exchange to query — from transactions, to accounts, to network data.
Step 3: Enable the Deposit and Withdrawals Functionality
The deposit terminology for an exchange is different from a deposit on the OMG Network.
- OMG Network deposit – represents an ETH transaction to the corresponding vault smart contract on the Ethereum network. This creates a new deposit on the OMG Network and allows the depositor to transact on the network until a user decides to withdraw them back to Ethereum.
- Exchange deposit – represents a standard transaction on the OMG Network. A safe number of confirmations for a given exchange should be equal to a safe number of confirmations on the Ethereum network. This is known as deposit finality period and is currently set to 10 blocks. The confirmations are counted on Ethereum because the OMG Network relies on rootchain (Ethereum) security and creates blocks only when new transactions are being formed (i.e., on-demand).
While implementing a deposit functionality on a given exchange, you should refer to the latter definition.
Exchange withdrawals represent a standard transaction on the OMG Network.
Step 4: Merge UTXO’s
The OMG Network uses a UTXO-based model to keep track of balances on its chain. Each transaction can have up to 4 UTXO as inputs and can create up to 4 UTXO as outputs. We generally suggest an exchange client merge UTXOs frequently by automating the process.
Step 5: Setup a Watcher
A Watcher is a service that continuously monitors the child chain — validating its behavior and reporting any inconsistencies it spots to end-users. Running your own Watcher ensures that only valid transactions and blocks are created and confirmed by the childchain operator.
Step 6: Deposit Funds
After the core integration is complete, the exchange should be able to deposit funds to the OMG Network. This will allow exchange users to withdraw funds from an exchange account to an OMG Network compatible wallet.
Exchanges can deposit funds via one of our supported wallets. Visit the integration guide to find the list of wallets you can work with right now.
Step 7: Rebalance Wallets
Rebalance funds between hot and cold wallets by sending funds to another wallet directly or by withdrawing funds back to the Ethereum network.
Let’s Make it Happen!
Ethereum transaction fees are high and we know the OMG Network can help exchange users transfer value more efficiently. We strive to make the integration process as seamless as possible! If you’re an exchange and you'd like to integrate with the OMG Network, visit our Exchange Integration Guide.
Dmytro is an experienced technical writer with a multi-dimensional focus on fintech startups. He has developed several open-source blockchain products and written dozens of technical papers for payment companies.Dmitry Baimuratov