> For the complete documentation index, see [llms.txt](https://docs.gravity.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.gravity.xyz/legacy-alpha-mainnet-l2/gravity-testnet-sepolia-l2-node-setup.md).

# Sepolia Testnet (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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.gravity.xyz/legacy-alpha-mainnet-l2/gravity-testnet-sepolia-l2-node-setup.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
