What is Catapulta?

Catapulta is a smart contracts deployment tool, which allows to ensure the best Chain Ops practices via automation to keep your deployments organized.

The major benefits of using Catapulta in your Solidity project are:

  • Direct access to +14 networks, with a single provider
  • Automated deployment reports saved in your private dashboard
  • Automated Etherscan verification, with nested deployments support
  • Hosting of artifacts and addresses in JSON, plug your frontend/backend faster
  • Minimal boilerplate config, remove the need to maintain RPC URLs or Etherscan API keys in your project.

With Catapulta, you can boost your Solidity environment with a single API Key, allowing to bootstrap your project quickly into production to +14 networks, with less boilerplate. Forget about setting up RPC URLs, Etherscan URL or API keys in your configuration file.

The Catapulta Dashboard UI allows you to create new projects to separate context, store past deployments, add deployment notes, download deployment reports, and share your deployment reports with your team in a collaborative way.

The goal of Catapulta is to simplify the Dev Ux around Solidity development and set the best Chain Ops practices, without any major changes in your workflow.

Getting started

To be able to interact with the Catapulta platform, you need the following requirements.

Catapulta Templates

The fastest way to try out the benefits of Catapulta, check the Catapulta Forge or Hardhat Templates which contains an step by step guide to deploy your first smart contract with Catapulta:

Catapulta CLI

npm

The catapulta tool which is compatible with Foundry and Hardhat allows to host smart contract artifacts, broadcast transactions to the Catapulta RPC Relay, store deployment reports, and automatize Etherscan/Blockscout verification of the deployed contracts.

You can install the catapulta package globally with NPM, open your terminal and run:

$ Terminal

npm i -g catapulta

To check if is installed correctly, run the following command to get the current CLI version:

$ Terminal

catapulta -v

Output:

Catapulta.sh - Chain Ops CLI 🏹

Version: 0.1.33

If you prefer the command can also be run with NPX:

$ Terminal

npx catapulta -v

Once installed, sign in Catapulta.sh, navigate to your Project and paste your CATAPULTA_API_KEY into your project .env file to attach your deployment session to the Catapulta RPC Relay.

Forge: How to deploy with Catapulta?

Once the CATAPULTA_API_KEY environment variable is set in your Foundry project at .env file, you can deploy your smart contracts defined in your Solidity script using the following catapulta command:

$ Terminal, at your Foundry project directory

catapulta script scripts/YourDeployScript.sol --chain sepolia

Output:

  Catapulta.sh 🏏 deployment
  ============================
  
  Project name: Ghost Deployments
  Project URL: https://catapulta.sh/project/64e6272a59b37a3a4a7afb55
  Deployment UUID: e5b3c126-c225-46c9-a9de-4e8860df0e07
  
  📀 Building artifacts...
  
  🗜  Compressing artifacts...
  
  📤 Uploading artifacts to the Catapulta DB...
  
  ✅ Artifacts uploaded successfully.
  
  📡 Broadcasting deployments to Catapulta Relay: 
  
  📜 Running Foundry script: forge script scripts/DeployBasic.sol --chain 11155111 --rpc-url "https://catapulta.sh/api/run/add/chain/11155111/e5b3c126-c225-46c9-a9de-4e8860df0e07/gNd4vq8AqnRWhxwPJiMS" --broadcast 
   
  [...]
  
  ✅ Deployment successfully broadcasted 
  
  - Etherscan verification request sent. Check the dashboard for keeping track verifications. If contracts are not verified in 10 minutes, contact support at the web chat in https://catapulta.sh .
  
  💾 Artifacts stored at:
  https://users-artifacts.s3.eu-west-1.amazonaws.com/e5b3c126-c225-46c9-a9de-4e8860df0e07-deployment-artifacts/artifacts.zip
  
  📸 Check your deployment report at:
   - https://catapulta.sh/project/64e6272a59b37a3a4a7afb55/op/e5b3c126-c225-46c9-a9de-4e8860df0e07
   

If you don't want to use .env files or environment variables, you can also pass the API KEY as a input parameter with --api-key

$ Terminal, at your Foundry project directory

catapulta script scripts/YourDeployScript.sol --network sepolia --api-key your-project-api-key

Hardhat: How to deploy with Catapulta?

For full Hardhat Deploy support, you must install Catapulta in your project.

$ Terminal, at your Hardhat project

npm i catapulta

Proceed to import the Catapulta Hardhat plugin at the top of your hardhat.config.ts file.

$ hardhat.config.ts

import "catapulta/hardhat";



// Rest of your hardhat.config.ts file

Once the CATAPULTA_API_KEY environment variable is set in your Foundry project at .env file, you can deploy using Hardhat Deploy scripts or Hardhat scripts.

We recommend using Hardhat Deploy if you use libraries in your Solidity contracts, for ensuring Etherscan verification.

$ Terminal, hardhat-deploy

catapulta deploy --network sepolia

You can also run Hardhat scripts

$ Terminal, hardhat script

catapulta run scripts/deploy.ts --network sepolia

Catapulta helpers

To see the supported networks, you can run the following command:

$ Terminal

catapulta networks

To generate a new private key locally and save it at .env file as PRIVATE_KEY, or to view the current address, you can run:

$ Terminal, at your Foundry project directory

catapulta wallet

Deployment Report

If you open the deployment report URL from the output of the command, you will see a deployment report generated from your deployment, which includes all the transactions and contracts deployed in one single deployment session. You can always comeback to your deployment report from your Project page.


Features of the Catapulta deployment report:

  • Name your deployment
  • Add deployment notes
  • Check all Txs involved in your deployment
  • Check contracts deployed and constructor args
  • Links to Etherscan for each TX and Contract
  • Download JSON report with ABO and addresses of each contract
  • Download Artifacts ZIP
  • Copy the JSON report hosted URL, to load your deployment at your frontend or backend

FAQ

What networks are supported at Catapulta?

Currently we support +14 networks:

  • Ethereum Mainnet
  • Ethereum Sepolia
  • Ethereum Holesky
  • Ethereum Goerli
  • Polygon
  • Polygon Mumbai
  • Polygon ZK EVM
  • Polygon ZK EVM Testnet
  • Base
  • Base Sepolia
  • Base Goerli
  • Optimism
  • Optimism Sepolia
  • Optimism Goerli
  • Arbitrum
  • Arbitrum Goerli
  • Arbitrum Sepolia
  • Fantom
  • Fantom Testnet
  • Celo
  • Blast L2 Testnet
  • Moonbeam
  • Metis
  • Metis Goerli
  • BSC (Binance Smart Chain)
  • BSC Testnet
  • Gnosis
  • Gnosis Chiado Testnet
  • ZkSync Era Mainnet
  • ZkSync Era Testnet

What is the Catapulta RPC Relay?

The Catapulta RPC Relay is an aggregator of RPC node providers, which allows to access more networks with a single CATAPULTA_API_KEY, removing the need of context switching looking in different RPC providers every time you create a new project.

The future is cross-chain, and we aim to aggregate and support as much networks as requested to simplify development with a single payment subscription.

What are the costs for using Catapulta?

During the Alpha, you can test Catapulta for free in production and testnet networks.

After the alpha period, the free tier allows to deploy in any Testnet of choice, with some rate limits. The paid tier allows you to deploy in production networks. You can see the pricing table in the Pricing page. Pricing could change after the initial alpha release.