Skip to content

Install celestia-app

This tutorial will guide you through installing celestia-app, both from source and with a pre-built binary

Celestia-app is the software that enables you to run consensus nodes (including validators) and provide RPC endpoints.

Supported architectures

Celestia-app officially supports the following architectures:

  • linux/amd64
  • linux/arm64
  • darwin/amd64 (macOS Intel)
  • darwin/arm64 (macOS Apple Silicon)

Only these four architectures are officially tested and supported.

Building binary from source

This section of the tutorial assumes you completed the steps in setting up your own environment.

The steps below will create a binary file named celestia-appd inside $HOME/go/bin folder which will be used later to run the node. Be sure to select the correct network to install the binary for.

  1. Remove any existing copy of celestia-app, clone the repository, and change into the directory:

    bash
    cd $HOME
    rm -rf celestia-app
    git clone https://github.com/celestiaorg/celestia-app.git
    cd celestia-app
    cd $HOME
    rm -rf celestia-app
    git clone https://github.com/celestiaorg/celestia-app.git
    cd celestia-app
  2. Check out to the desired version, based on the network you will use:

    bash
    git checkout tags/v3.10.3
    git checkout tags/v3.10.3
    bash
    git checkout tags/v4.0.7-mocha
    git checkout tags/v4.0.7-mocha
    bash
    git checkout tags/v4.0.7-arabica
    git checkout tags/v4.0.7-arabica
  3. Build and install the celestia-appd binary with multiplexer support:

    bash
    make install
    make install
  4. To check if the binary was successfully installed you can run the binary using the --help flag:

    sh
    celestia-appd --help
    celestia-appd --help

You will see an output with the menu for celestia-appd. Learn more on the helpful CLI commands page

Installing a pre-built binary

Installing a pre-built binary is the fastest way to get started with your Celestia consensus node. Releases after celestia-app v1.3.0 should have these binaries available.

The steps below will download a binary file named celestia-appd. Depending on the setup that you choose during installation, the celestia-appd binary will be available at either:

  • $HOME/celestia-app-temp/celestia-appd
  • /usr/local/bin/celestia-appd

Pre-built binaries are available for:

  • Operating systems: Darwin (Apple), Linux
  • Architectures: x86_64 (amd64), arm64

To install the latest, or a specific version of the pre-built binary you can run this command in your terminal:

bash
# Install latest version
bash -c "$(curl -sL https://docs.celestia.org/celestia-app.sh)"

# Install specific version, latest version for Mocha testnet in this example
bash -c "$(curl -sL https://docs.celestia.org/celestia-app.sh)" -- -v v4.0.7-mocha
# Install latest version
bash -c "$(curl -sL https://docs.celestia.org/celestia-app.sh)"

# Install specific version, latest version for Mocha testnet in this example
bash -c "$(curl -sL https://docs.celestia.org/celestia-app.sh)" -- -v v4.0.7-mocha

Follow the instructions in the terminal output to choose your installation preferences.

You will see an output with the menu for celestia-appd. Learn more on the helpful CLI commands page

View the script to learn more about what it is doing.

Ports

When interacting with a consensus node, you may need to open ports on your machine to allow communication between nodes, such as bridge nodes. It is essential that specific ports are accessible. Make sure that your firewall allows connections to the correct ports.

If you run a node on a cloud server, make sure that the ports are open on the server's firewall. If you run a node at home, make sure that your router allows connections to the correct ports.

For example, validator ports 9090 and 26657 need to be accessible by the bridge, and port 2121 is required for P2P connections for all node types.

The following ports are used by Celestia app nodes:

PortProtocolAddressDescriptionEnabled by default on nodeFlag
1317HTTP0.0.0.0REST API (gRPC-gateway) - HTTP endpoints for blockchain queriestrue--api.address string
2121TCP/UDP127.0.0.1P2P networking - Communication between nodes in the networktrueN/A
9090HTTP0.0.0.0gRPC server - Programmatic access for advanced integrationstrue--grpc.address string
26657TCP127.0.0.1Tendermint RPC - JSON-RPC server for blockchain queries and txsfalse (only open to localhost)--rpc.laddr string

Understanding port exposure and security

External exposure requirements

When setting up your consensus node, understanding which ports need external access is crucial for both functionality and security:

Ports that typically need external exposure:

  • Port 2121: Required for P2P connectivity with other nodes in the network
  • Port 9090: Needed if your node will serve gRPC clients (like bridge nodes)
  • Port 26657: Required for external RPC access (enable with --rpc.laddr tcp://0.0.0.0:26657)

Ports for internal/localhost access:

  • Port 1317: REST API, often used internally or through proxies
  • Port 26657: By default only listens on localhost for security

App vs Core endpoint distinction

Celestia consensus nodes expose different types of endpoints:

App-level endpoints (Cosmos SDK):

  • Port 1317: REST API using gRPC-gateway for HTTP-based blockchain queries
  • Port 9090: gRPC server for efficient programmatic access to blockchain data

Core-level endpoints (Tendermint/CometBFT):

  • Port 26657: Tendermint RPC for consensus-layer operations, transaction submission, and blockchain queries
  • Port 2121: P2P networking for consensus communication between validators and nodes

For bridge nodes connecting to your consensus node, they typically use the gRPC endpoint (port 9090) to access blockchain data efficiently. The distinction matters because app-level endpoints provide access to application state and transactions, while core-level endpoints handle consensus operations and network communication.

For more details on Cosmos SDK APIs, see the Cosmos SDK documentation.

Next steps

Now that you've installed celestia-appd, learn how to run a consensus and validator node.