It’s been a while since the last update. Given the 0x team’s recent announcement of their v3.0 roadmap I’d like to provide some insight into what’s happening to support v3.0 in 0x Tracker.

The good news is that the update will be mostly non-intrusive to existing apps. The core order structure has been maintained, with enhancements coming in the form of support for fee assets and a new protocol fee.

The 0x team are aiming for a mainnet release sometime in November 2019 and 0x Tracker is aiming to have v3.0 support from day one 🎉. If you’re interested in understanding what that entails then read on…

Fee Assets

So far v1.0, v2.0 & v2.1 of the 0x exchange contract have only supported the collection of fees through ZRX tokens. As the 0x team have discussed, this has been something of a barrier to entry when it came to collecting fees and may have contributed to relayers using other methods to collect fees in preferred tokens, such as the Matching Strategy.

Version 3.0 of the exchange contract hopes to standardise fee collection through the introduction of makerFeeAssetData and takerFeeAssetData fields. These new fields will allow relayers to specify which type of token they would like to collect fees in, rather than being restricted to ZRX 🙌.

The new fee structure is the key change that will have an impact on 0x Tracker. Since the new fields follow the existing asset data spec introduced in v2.0, it is technically possible to charge multiple fees per side (maker/taker) through multi-asset data and ERC-1155. These is quite different to the existing model and will take a bit of time to fully support.

Due to the added complexity the new fee structure introduces, charts relating to fees have been temporarily removed from the site. Since the existing maker/taker fee functionality wasn’t widely adopted, these charts have been fairly useless anyway. If they continue to operate without support for v3.0 then they will paint a false picture of activity.

For day one support, the goal is to expose fees through the fill detail pages. Users will therefore be able to explore all of the fees collected for a given fill. Longer term support will likely involve the reintroduction of fee charts in addition to enhancements on the tokens pages.

Protocol Fee

Version 3.0 will also introduce a new fee called the protocol fee. This will be charged on the taker side of each trade and used to fund a community treasury as well as incentivise makers. An in depth white paper is available which explains this new fee in detail.

Supporting the new field in 0x Tracker should be fairly trivial. It will be a single value and always taken in ETH/WETH. It’s therefore expected that it will be fully supported from day one, and will be exposed via fill detail pages.

Longer term support could potentially provide much more insight into the volume of protocol fees collected and their redistribution.

0x Event Extractor

A key part of the architecture behind 0x Tracker is the 0x Event Extractor project. This simple NodeJS application is responsible for continual fetching of new trading data from the 0x exchange contract event logs.

When v2.0 of the exchange contract was introduced, the event extractor codebase was branched into a master-v2 branch which ensured the different versions of 0x.js used for collecting v1.0 and v2.0 events didn’t clash. This meant that support for v2.0 could be built quickly but has introduced some pain for ongoing development 😪.

In order to reduce maintenance overhead going forward, a new monorepo structure has been adopted for this project using Yarn Workspaces. This will enable v3.0 support to be rapidly introduced in the event extractor without any noticeable ongoing maintenance overhead.

The monorepo also lays a foundation for introducing backwards support for v2.0, something which was lost after the v2.0 vulnerability and subsequent switch to v2.1 contracts. This hasn’t affected 0x Tracker data but it does reduce the usefulness of 0x Event Extractor to the wider community.

Working In The Open

Whilst 0x Tracker has been open source for a while now, the planning of new features and maintenance has very much happened behind closed doors. This makes it difficult for the wider community to understand what is being focused on and is a barrier to entry when it comes to contribution.

Work has been underway to shift planning into the open through the use of GitHub issues and projects. A number of projects exist for current initiatives including support for v3.0 and more will be created as time goes by. The ultimate goal being to build a platform for transparency and contribution.

If you’re interested in finding out more about v3.0 support and other ongoing work then be sure to check out the open issues and projects across the 0x Tracker organisation.