Howdy, folks! Many amazing developments are finally coming to a head, so there’s a lot to share.



0x exchange v3.0

Version 3.0 of the Exchange contract has been finalized and deployed to the Kovan testnet! We’ll be making the 3.0 protocol spec available soon, so you can all start trying to break it. In the meantime, the ZEIPs make a decent provisional reference.



In addition to some last-minute improvements, we’ve been concentrating heavily on security in the past month. Towards this goal, we’ve augmented our test suites with many, many more unit tests, established more rigorous best-practices, and converted assembly implementations to more readable solidity implementations, wherever possible.

v3.0 Roadmap

So everyone is on the same page, here’s what our timeline for v3.0 is looking like:

September to mid-October

Ongoing audits of the v3.0 contracts. Finalize and deploy the Exchange and Staking contracts on testnet. Upgrade extension contracts (Forwarder, Coordinator, DevUtils, etc.). Write ERC20BuyerAssetProxy and various ERC20Buyer contracts.

October

Tooling migration to v3.0 (Typescript and Python libs). ZRX holders vote on whether to approve or deny v3.0

November

After the 2 week grace period, and pending voter approval, v3.0 launches on mainnet! 🎉

v3.0 offers a lot more flexibility for every kind of participant in the 0x ecosystem over v2.0, so we’re pretty jazzed! You can learn about all the upgrades here.

ZRX Staking Program

Right now, we’re busily making upgrades and improvements to the Staking contracts, that will be working in concert with the v3.0 Exchange. As this will be the inaugural launch of the staking program, our focus is on fairness, security, and correctness.



We discussed potential staking details with ecosystem projects and didn’t receive any objections on what we feel are sensible launch parameters for the system. Keep in mind that many of these values can be adjusted in response to actual market dynamics, post-launch:

Alpha: 0.5 — This is the term in the Cobb-Douglas reward formula (outlined in our staking proposal post) that controls how fees vs stake influences reward payout. This chosen value provides equal weighing between the two.

Epoch length: 2 weeks — Most actions in the system (staking, delegating, etc) have a one-epoch delay. Short epochs are open to abuse and long epochs aren’t great for UX.

Minimum stake: 100 ZRX — This minimizes griefing, since finalizing an epoch may potentially be gas-intensive.

Protocol fee multiplier: 150,000 — The actual fee per fill will be this amount times the transaction gas price. This value was chosen because it’s roughly the average gas cost to fill an order. Protocol fees can be paid in either ETH or WETH.

Maximum makers per pool: 10 — These are the order makerAddress es associated with a market maker’s staking pool. Placing a cap on this number is intended to foster more diversity in the system.

es associated with a market maker’s staking pool. Placing a cap on this number is intended to foster more diversity in the system. Delegated stake weight: 90% — This is the weight of stake delegated to a pool by non-operators when computing the pool’s rewards at the end of the epoch. This needs to be < 100% to incentivize market makers to create their own pools rather than just joining other pools.

For more discussion over the motivations behind these values, check out the last Ecosystem Dev Call. If you want to chime in, feel free to comment in the staking ZEIP.

0x Mesh Updates

For the uninitiated, Mesh is our decentralized alternative to the Standard Relayer API (SRA). Instead of sourcing orders from relayers, mesh leverages a peer-to-peer network of nodes that share orders in a more efficient and transparent manner. Mesh has been in open beta for the past month and we’re already seeing thousands of orders flowing through it!



Mesh is rapidly evolving and shortly we’ll be dropping version 4.0.0-beta , which will allow you to run Mesh directly in your browser! This vastly reduces the barrier-to-entry and encourages even more decentralization. Our focus in the near-term will be on hardening the Mesh infrastructure for reliability and correctness, improved topic filters, and adding custom order validation. We’ll be shooting for a version 1.0 (non-beta) release near the end of the month so stay tuned!

Asset Swapper

This month we also announced the release of the new Asset Swapper Typescript package. This package makes it trivial to tap into 0x’s liquidity and smart contracts to exchange tokens from right within your app, dapp, or platform. You don’t need to worry about searching for orders, getting quotes, or preparing transaction data for your forwarding contracts — AssetSwapper will handle it all for you with minimal configuration required. For an easy to follow guide on how you can integrate AssetSwapper into your product, check out our docs.

Shiny New 0x Documentation

Earlier, we announced the launch of our beautiful, new documentation interface. It offers lots of guides that walk you through the many ways to integrate with 0x, all organized by difficulty, language, and product. And every bit of it is searchable in real-time. Check them out at 0x.org/docs!

Python contract wrappers, and the code that generates them

We’ve published a Python API for interacting with the 0x smart contracts, 0x-contract-wrappers on PyPI, driven by Web3.py. Check out the documentation, which is chock full of continuously verified examples, showing how to create, sign, fill and cancel orders.

In addition to the Python contract wrappers, we’ve also released the tool that generated those wrappers. Indeed, aside from a few small, manually crafted extensions, the bulk of the 0x-contract-wrappers package is automatically generated from the Solidity smart contract source code. A long while back we built abi-gen , which we use to generate TypeScript wrappers for contracts. Now abi-gen can output Python as well. If you’d like to try it out, you can look at how it’s invoked by the setup.py file in 0x-contract-wrappers . (Note that you’ll need a Node.js runtime environment.)



New Faces

We're super happy to welcome the following people to our team!