Skip to content

Starting Pantheon

Breaking Changes in v0.9

In v0.9, the command line changed to improve usability. These are breaking changes; that is, in many cases the v0.8 command line options no longer work. The examples below and the rest of the documentation has been updated to reflect these changes. The release notes include a mapping of the previous command line options to the new options.

Pantheon nodes can be used for varying purposes as described in the Overview. Nodes can connect to the Ethereum mainnet, public testnets such as Ropsten, or private networks.


Pantheon Installed

Local Block Data

When connecting to a network other than the network previously connected to, you must either delete the local block data or use the --data-path option to specify a different data directory.

To delete the local block data, delete the database directory in the pantheon/build/distribution/pantheon-<version> directory.

Genesis Configuration

Pantheon specifies the genesis configuration, and sets the network ID and bootnodes when connecting to Mainnet, Goerli, Rinkeby, and Ropsten.

When --network=dev is specified, Pantheon uses the development mode genesis configuration with a fixed low difficulty. A node started with --network=dev has an empty bootnodes list by default.

The genesis files defining the genesis configurations are in the Pantheon source files.

To define a genesis configuration, create a genesis file (for example, genesis.json) and specify the file using the --genesis-file option.

Confirm Node is Running

If you have started Pantheon with the --rpc-http-enabled option, use cURL to call JSON-RPC API methods to confirm the node is running.


  • eth_chainId returns the chain ID of the network.

    curl -X POST --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' localhost:8545
  • eth_syncing returns the starting, current, and highest block.

    curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' localhost:8545

    For example, after connecting to mainnet eth_syncing will return something similar to:

      "jsonrpc" : "2.0",
      "id" : 1,
      "result" : {
        "startingBlock" : "0x0",
        "currentBlock" : "0x2d0",
        "highestBlock" : "0x66c0"

Run a Node for Testing

To run a node that mines blocks at a rate suitable for testing purposes:

pantheon --network=dev --miner-enabled --miner-coinbase=0xfe3b557e8fb62b89f4916b721be55ceb828dbd73 --rpc-http-cors-origins="all" --host-whitelist="all" --rpc-ws-enabled --rpc-http-enabled --data-path=/tmp/tmpDatdir

Alternatively, use the following configuration file on the command line to start a node with the same options as above:


Run a Node on Ropsten Testnet

To run a node on Ropsten:

pantheon --network=ropsten

To run a node on Ropsten with the HTTP JSON-RPC service enabled and allow Remix to access the node:

pantheon  --network=ropsten --rpc-http-enabled --rpc-http-cors-origins ""

Run a Node on Rinkeby Testnet

To run a node on Rinkeby specifying a data directory:

pantheon --network=rinkeby --data-path=<path>/<rinkebydata-path>
Where <path> and <rinkebydata-path> are the path and directory where the Rinkeby chain data is to be saved.

Run a Node on Goerli Testnet

To run a node on Goerli specifying a data directory:

pantheon --network=goerli --data-path=<path>/<goerlidata-path>

Where <path> and <goerlidata-path> are the path and directory where the Goerli chain data is to be saved.

Run a Node on Ethereum Mainnet

To run a node on the Ethereum mainnet:


To run a node on mainnet with the HTTP JSON-RPC service enabled and available for localhost only:

pantheon --rpc-http-enabled
Questions or feedback? You can discuss issues and obtain free support on Pantheon Gitter channel.
For paid professional support by PegaSys, contact us at [email protected]