Rather than manually tracking the state of a protocol and writing one-off deployment scripts to execute changes, Cannonfiles serve as deployment plans which specify the desired state of a chain. Deployments using Cannon result in a package of data. If a change is desired, a Cannonfile can be modified and Cannon will automatically determine the transactions that need to be executed to “build” the chain into the desired state. Packages can also be “cloned” by Cannonfiles to easily redeploy entire protocols on a local node for testing or to a live chain.

Cannon has been used to deploy thousands of smart contracts across Ethereum and its L2s. At the time of writing, 1,095 were deployed to Arbitrum One using Cannon, 3,020 to Reya Network (an Arbitrum Orbit chain), 3,813 to Base, 880 to Optimism, and 1,078 to Ethereum mainnet.

The deployment data pertaining to these smart contracts and more have been published to Cannon’s registry in over 2,000 packages for over 180 different projects. (Notably, over half of these packages were published in just the last 3 months.)