Oops, Mars is missing


Devops tool for Ethereum Smart Contract.
To take your project to the moon and beyond.


  • 01

    Fearless deployments and updates

    Forget about deployment pain! Write once, dry-run and deploy to multiple networks. With support for Proxy pattern, contract updates are first-class citizen.

  • 02

    Focus on what’s important

    Don’t roll your own hacky script. Let Mars handle the details: gas fees, resuming broken deployments, waiting for confirmations and storing the results.

  • 03


    Solidity source does not paint the full picture. Store deployment configuration, enviroments and infrastructure in your git repository.

  • 04

    Learn in 5 minutes

    No need to learn a new language. Write your configuration in JS/TS with familiar tooling like ethers.js and Waffle.


import { deploy, connect, contract } from 'ethereum-mars'
import { ERC20, WETH9, AwesomeExchange } from './build/artifacts'

deploy(() => {
  const myToken = contract('myToken', ERC20, [20_000])
  const weth = connect('weth', WETH9, '0xC02a...6Cc2')
  contract(AwesomeExchange, [myToken, weth])
> mars deploy

Transaction: Deploy myToken
  Fee: $5.72, Ξ0.00875217
  Balance: $753.86, Ξ1.15322565145876257
  Hash: 0x98dd...bdd8
  Block: 22650076
  Address: 0x4b0a4...F2f8b

Transaction: Deploy market
  Fee: $2.74, Ξ0.00419342
  Balance: $738.00, Ξ1.13018515145876257
  Sending ...
  Hash: 0x60c0...a2bd
  Block: 22650101
  Address: 0x0522...991F

  Done in 20s


Use Yarn:
yarn add --save-dev ethereum-mars
Use Npm:
npm install --save-dev ethereum-mars