# Gravity Testnet Sepolia (L2) Node Setup

{% hint style="warning" %}
We'd like to inform you that ArbOS32 will be activated on Gravity chain in the new year, and we are migrating from AnyTrust to Celestia for data availability.

Prior to April 18th, 2025, please do the following:

* Upgrade to Node version nitro-node >= v3.3.2 (Celestia fork)
* Configure your node to support both data availability sources
  {% endhint %}

### Guide

#### Prerequisites

1. A local directory for storing node data
2. An Ethereum Sepolia RPC endpoint with unlimited rate limit for eth\_getLogs
3. An Ethereum Sepolia beacon chain RPC endpoint
4. Connection to a Celestia lightnode or public testnet RPC endpoint

#### Node & DAS Server Setup

1. **Setup the Celestia DAS Server**

   * Repository: [https://github.com/celestiaorg/nitro-das-celestia/](https://github.com/celestiaorg/nitro-das-celestia/tree/main)
   * Configuration for testnet:

   ```bash
   docker run -d --rm --name celestia-das-server \
       -p 9876:9876 \
       --entrypoint /bin/celestia-server \
       ghcr.io/celestiaorg/nitro-das-celestia:v0.4.1 \
       --enable-rpc --rpc-addr=0.0.0.0 --rpc-port=9876 \
       --celestia.rpc=<YOUR_CELESTIA_TESTNET_ENDPOINT>\
       --celestia.namespace-id=<TESTNET_NAMESPACE_ID> 
   ```
2. **Connect to a Celestia testnet RPC endpoint**
   * Use [testnet RPC endpoints](https://docs.celestia.org/how-to-guides/mocha-testnet#production-rpc-endpoints)

#### Download Snapshot (Recommended)

Syncing a node from scratch can be extremely time-consuming and resource-intensive. We strongly recommend downloading our latest snapshot:

1. [Download Gravity L2 Sepolia Testnet Node Snapshot](https://storage.googleapis.com/conduit-networks-snapshots/gravity/testnet/latest.tar)

#### Running the node

Save the following script as `run-gravity-testnet-node.sh`, make it executable with `chmod +x run-gravity-node.sh`, and update the TODO variables:

```bash
#!/bin/bash

# Define dependent variables
LOCAL_DIR="TODO"                      # Replace with your local directory path
ETH_SEPOLIA_RPC="TODO"                 # Replace with your Ethereum Sepolia testnet RPC endpoint
ETH_SEPOLIA_BEACON_RPC="TODO"          # Replace with your Ethereum Sepolia beacon RPC endpoint
CELESTIA_DAS_URL="TODO"                # Replace with your Celestia DAS server URL (e.g., http://localhost:9876)

# Run the Docker container
docker run --rm -it \
    --add-host=host.docker.internal:host-gateway \
    -v "$LOCAL_DIR:/home/user/.arbitrum" \
    -p 0.0.0.0:8547:8547 \
    -p 0.0.0.0:8548:8548 \
    ghcr.io/celestiaorg/nitro:v3.3.2 \
    --parent-chain.connection.url="$ETH_SEPOLIA_RPC" \
    --chain.id=13505 \
    --chain.name=conduit-orbit-deployer \
    --http.api=net,web3,eth \
    --http.corsdomain="*" \
    --http.addr=0.0.0.0 \
    --http.vhosts="*" \
    --persistent.db-engine="pebble" \
    --chain.info-json='[
        {
            "chain-id": 13505,
            "parent-chain-id": 11155111,
            "chain-name": "conduit-orbit-deployer",
            "chain-config": {
                "chainId": 13505,
                "homesteadBlock": 0,
                "daoForkBlock": null,
                "daoForkSupport": true,
                "eip150Block": 0,
                "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
                "eip155Block": 0,
                "eip158Block": 0,
                "byzantiumBlock": 0,
                "constantinopleBlock": 0,
                "petersburgBlock": 0,
                "istanbulBlock": 0,
                "muirGlacierBlock": 0,
                "berlinBlock": 0,
                "londonBlock": 0,
                "clique": {
                    "period": 0,
                    "epoch": 0
                },
                "arbitrum": {
                    "EnableArbOS": true,
                    "AllowDebugPrecompiles": false,
                    "DataAvailabilityCommittee": true,
                    "InitialArbOSVersion": 11,
                    "InitialChainOwner": "0x218a4534C699CE35dc929ff4ca845C05Af9A57a2",
                    "GenesisBlockNum": 0
                }
            },
            "rollup": {
                "bridge": "0x946CF7F3238537e51B017369E523425A18996C23",
                "inbox": "0xe50eBd835F5f17fdEC0A547c37343F080B664357",
                "sequencer-inbox": "0x3eb7334755Fb41dC01400B15C8cC0C64B36E5969",
                "rollup": "0xDE145C4Ef9699D130848167d512dD1D09f173066",
                "validator-utils": "0xb33Dca7b17c72CFC311D68C543cd4178E0d7ce55",
                "validator-wallet-creator": "0x75500812ADC9E51b721BEa31Df322EEc66967DDF",
                "deployed-at": 5979967
            }
        }
    ]' \
    --node.data-availability.enable \
    --node.data-availability.rest-aggregator.enable \
    --node.data-availability.rest-aggregator.urls=https://das-gravity-testnet-sepolia-34ow2embsc.t.conduit.xyz \
    --node.celestia-cfg.enable=true \
    --node.celestia-cfg.url="$CELESTIA_DAS_URL" \
    --execution.forwarding-target=https://rpc-sepolia.gravity.xyz \
    --node.feed.input.url=wss://relay-gravity-testnet-sepolia-34ow2embsc.t.conduit.xyz \
    --parent-chain.blob-client.beacon-url="$ETH_SEPOLIA_BEACON_RPC"
```

### References

For more information, please check out the following guides:

1. <https://docs.arbitrum.io/node-running/how-tos/running-an-orbit-node>
2. <https://docs.conduit.xyz/guides/run-a-node/arbitrum-node>
3. <https://docs.celestia.org/how-to-guides/arbitrum-full-node>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.gravity.xyz/network/gravity-testnet-sepolia-l2-node-setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
