0x (ZRX) (pronounced “zero-ex”) is described in its white paper as “an open protocol for decentralized exchange on the Ethereum blockchain”. Designed for those looking to trade ERC20 tokens, 0x enables trustless transactions and creates shared liquidity on the Ethereum network. 0x users can trade directly with known counterparties for free or use the protocol’s ZRX tokens for access to liquidity pools to complete quick and easy token trades.

In this guide we will focus primarily on the underlying technology of 0x and some of its practical use cases. The information will be broken up into the following sections:

What is 0x?

The 0x protocol is a pluggable tool for decentralized applications (dApps) and decentralized exchanges. I’d like to take the opportunity to clarify a common misconception about the 0x protocol: 0x is not a decentralized exchange in and of itself, but rather a system that facilitates decentralized trading. It is designed for integration into decentralized exchanges in order to make them faster, more user-friendly and secure.

With the large number of security breaches being experienced by centralized exchanges, it makes sense for developers and users to seek out decentralized options. Decentralized exchanges are typically built using smart contracts on top of the Ethereum blockchain, and when properly executed, offer a high degree of security.

Decentralized exchanges are not perfect, however. Some decentralized exchanges like Ether Delta have great functionality, but the smart contract functions require each transaction of the trading process to be recorded on the blockchain. Ethereum blockchain transactions cost gas, a fee paid in Ether, to incentivize miners to validate the network. Depositing funds, canceling, and filling an order all cost gas, meaning high-volume trading can become costly.

0x offers a solution to this problem with off-chain orders, meaning all trading functions are carried out off-chain and only recorded on the blockchain when the trade is complete. The features of the protocol offer liquidity not readily available in existing markets.

Who is Behind 0x?

0x was founded by CEO Will Warren and CTO Amir Bandeali. The core team is made up of 15 individuals with previous experience in engineering, research, business, finance and design. According to the 0x website, the team is motivated by a belief in decentralized technologies’ “potential to act as an equalizing force in the world.”

How Does 0x Work?

0x facilitates the exchange of ERC20 tokens through the 0x message format, Relayers, and various smart contracts.

Message Format

Each exchange order using the 0x protocol is made up of a data packet consisting of order parameters and an associated signature. The originator of the order signs the packet with their private key.

One of the simplest uses of 0x is a point-to-point order that allows two parties to complete a direct transaction. The packet of data that makes up the order can be represented as a few hundred bytes of hex that can be sent through any medium the parties desire (email, text, Facebook message, etc.). The order can only be filled by specified taker addresses, meaning the order cannot be intercepted by outside parties.

Relayers

The real heart of the protocol, however, is the broadcast order system. In order to create liquidity in the marketplace, there must be a public medium where buyers and sellers can interact in some way before transacting. On 0x, the entities that host and maintain an order book for buyers and sellers are called Relayers, rather than exchanges.

The 0x developers user the term ‘Relayer’, because when you think of an exchange you picture a system that must be built from the ground up to execute trades and handle funds. The 0x protocol handles all of those infrastructural, tasks and Relayers simply facilitate the signaling between buyers and sellers.

Relayers are ultimately responsible for hosting and maintaining off-chain order books and are paid transaction fees in ZRX tokens.

The following excerpt from the 0x white paper explains the steps of broadcasting and filling an order:

1. Relayer cites a fee schedule and the address they use to collect transaction fees. 2. Maker creates an order, setting feeA and feeB to values that satisfy Relayer’s fee schedule, setting feeRecipient to Relayer’s desired recieving address and signs the order with their private key. 3. Maker transmits the signed order to Relayer. 4. Relayer receives the order, checks that the order is valid and that it provides the required fees. If the order is invalid or does not meet Relayer’s requirements, the order is rejected. If the order is satisfactory, Relayer posts the order to their order book. 5. Takers recieve an updated version of the order book that includes Maker’s order. 6. Taker fills Maker’s order by submitting it to the exchange contract on the Ethereum blockchain.

Traditional exchanges use matching engines to fill market orders, and their users are asked to trust that the exchange is completing these trades at fair prices. Therefore, these entities require legal regulation.

For 0x to remain trustless, Relayers are not given the ability to execute trades on behalf of the participants. Relayers are only allowed to recommend the best available price to takers, who then agree to sign the transaction and have it recorded on the blockchain.

Smart Contracts

The exchange functions built into the 0x protocol are written as a Ethereum smart contracts that are publicly visible and completely free to use, outside of standard gas costs used to transact on the Ethereum network. The contract is written in the Solidity programming language and consists of two primary functions: fill and cancel orders. The smart contract is only about 100 lines of code and costs around 90k gas to add it to the blockchain.

ZRX Token

ZRX is primarily a governance token used to give stakeholders a vote in protocol upgrades. dApps and Relayers using the 0x protocol are incentivized to hold tokens in order to give themselves a greater degree of influence over the network they operate on. Over 30 dApps and Relayers are using 0x and ZRX as a core component of their functionality.

ZRX tokens are also used to pay fees to Relayers. Relayers collect 100% of the fees paid in ZRX.

How to Buy and Store ZRX Tokens

ZRX is available for trading on some major cryptocurrency exchanges such as Binance and Poloniex through Bitcoin and Ether trading pairs.

ZRX is an ERC20 token so it is supported by MyEtherWallet, Meta Mask, Ledger Nano, Trezor and other ERC20 compatible wallets.

Conclusion

0x is one of the most rapidly growing Ethereum-based projects, with more than 30 independent projects building on the protocol as Relayers or dApps. These projects cover a broad spectrum of application, from margin trading systems to fully-operational decentralized organizations.

The 0x development team looks to grow the use of the protocol while remaining as neutral as possible. They have stated on the project’s official blog, “Members of the 0x core team will not take a financial stake in, formally advise, or partner with other players in the 0x ecosystem.”

It would be only logical to assume that as decentralization in this field of technology grows, that the leaders in the decentralization methods would be at the forefront. 0x is an interesting project that has already shown great promise with no signs of slowing down.