Decentralized exchanges
A decentralized exchange, or DEX, is a peer-to-peer marketplace where transactions are executed directly between parties. There is no central intermediary that executes the transaction, such as a bank, broker, or other institution. Each transaction is recorded directly onchain. DEXs are primarily used to trade or swap cryptocurrencies.
Centralized exchanges versus decentralized exchanges
A centralized exchange allows for fiat currencies and cryptocurrencies to be exchanged for one another. On a centralized exchange such as Coinbase, you can trade ICP for its worth in USD, then transfer that USD directly to your bank.
A decentralized exchange only allows for cryptocurrencies to be traded for other cryptocurrencies through crypto pairs. They may also support more advanced actions like limit orders and margin trades. Each transaction is handled by the decentralized exchange via an order book, which uses the current buy and sell orders for that token to establish the price. Decentralized exchanges use a set of smart contracts to establish the price of different cryptocurrencies against each other. They also use liquidity pools, where investors can facilitate trades by locking funds within an exchange in return for rewards.
ICP decentralized exchanges
ICP enables decentralized exchanges and order books to run onchain, utilizing ICP's cheap storage and computation. The DEX's internal balance and transactions can be stored in a canister, alongside user balances and data.
Some examples of DEXs running on ICP include:
Interacting with a DEX
To use a decentralized exchange (DEX) on ICP, you can interact with the web application for the exchange, use tooling such as an SDK or API for more technical interactions, or create your own decentralized exchange application. DEXs are used to interact with the token mechanics of ICP, the native token of the Internet Computer, and ICRC-1 compliant tokens.
Tooling
To use a decentralized exchange, you can interact with its web application directly. For developers, several DEXes on ICP have also created utilities, such as SDKs and APIs, that allow for more technical interactions, such as:
The Helix SDK includes libraries in Rust, Python, and C# that enable order book management such as making trades, depositing assets, and accessing order book data on Helix Markets.
ICPSwap offers an API that allows developers to create staking pools, add liquidity, trade tokens, retrieve order book data, and more, directly on ICPSwap.
Moreover, the following DEXes have open-sourced their entire codebase for you to reference:
Examples
The following code samples demonstrate implementing a decentralized exchange on ICP:
Please note that DIP-20 has been replaced by ICRC-2 and is not recommended for the deployment of new tokens.