OpenZeppelin 2019 Development Recap

Hey everyone! In the spirit of our past monthly development updates, we wanted to share an overview of everything we have been developing at OpenZeppelin during 2019. Also, don’t miss A Year of Research at OpenZeppelin by @tinchoabbate to know what the Research team has been up to during the year!

A New Name

Perhaps the most important change through 2019 has been a full rename of all our tools - and even the company itself! We changed the company name from Zeppelin to OpenZeppelin, and rebranded our Contracts, SDK and Starter Kits to have more meaningful names.

As much as we loved the ZeppelinOS name, we had to acknowledge the Operating System metaphor was a bit far-fetched :stuck_out_tongue_winking_eye:

A New Home for the Community

During 2019 we ditched our old public Slack and migrated our entire community to this brand new forum.

We have since seen much richer discussions here, and more interesting participation from the community. The chat format may have worked while the community was small, but 2019 required a new home to make room for all of us!

A Comprehensive SDK

While we had originally built the ZeppelinOS CLI to manage contract upgrades, during 2019 we extended the OpenZeppelin SDK to cover all aspects of smart contract development: develop, compile, deploy, interact, test, and upgrade.

We put all of this together in a unified documentation site for our entire suite, so you can learn everything about OpenZeppelin tools in a single spot.

Contracts Contracts Contracts!

Even though much of the new features we shipped during 2019 were around the SDK, we kept our work on Contracts, which is still our most popular library with over 8K public dependent projects, 7.5K stargazers, 3K forks, and 100 contributors.

We shipped 4 releases (2.1, 2.2, 2.3, and 2.4) which included features like ERC777 tokens, revert reasons, and ERC20 snapshots. The Contracts library was also included by the Microsoft Azure team into the official VSCode Ethereum plugin, so you can now download OpenZeppelin Contracts directly in your favorite IDE!

Better Development Experience

Much of our work during 2019 on the OpenZeppelin CLI was to improve the development experience (DX). While we had shipped a lot of features in 2018, in 2019 we took our time to pay a much needed usability debt. We removed complexities around admin accounts, added interactive mode to all commands, built new commands for interacting with your contracts from the terminal, and improved all outputs. The results speak for themselves.

We not only worked on the CLI DX, but also on having a better experience when building dapps. To that effect, we created the hot-loader webpack plugin to have automatic upgrades on local development as soon as you change your Solidity contracts. We also created the network-js library for easy setup of the web3 connection to the Ethereum network from a dapp.

And to set everything up easily, we bundled all of it together in the Starter Kits.

Bootstrapping with Starter Kits

Early in the year we launched Zepkit, now known as Starter Kits. These are React webapp templates pre-configured with OpenZeppelin tools and libraries, Infura connections, and Rimble components, so you can start developing your dapp right away.

Reception was great, especially in the context of EthGlobal hackathons, as these allowed hackers to start working on their apps right away, without losing time in the project setup. Starter Kits have since become a part of the set of OpenZeppelin tools, including a tutorial kit, and we have had community members contribute by building their own kits!

Going Gasless

In 2019 we partnered with TabooKey to launch the Gas Station Network, a decentralized meta-transaction solution. This facilitates user onboarding by allowing you to pay the gas for your users’ transactions, so they don’t need to have ETH to start using your app.

As part of our efforts to get the GSN to production, we audited and helped rewrite the main contracts that build the protocol, added first-class GSN support in Contracts, forked a custom provider, built a set of development & testing helpers, and rolled out the relayer and recipient online tools together with DeltaCamp.

Around the World

During 2019, the team has been around the world sharing our work in conferences and hackathons, and gathering feedback from the community in-person on how to keep improving our tools. We were fortunate to be present in:

What’s next?

2019 was a super exciting year, but we’re even more hyped for 2020. For the upcoming weeks, we are working on an improved version of our documentation, support for Solidity 0.6, a new minor release of the SDK, and ultimately removing the need for having a separate fork of Contracts for upgradeability to have a more unified suite.

Stay tuned!