> ## Documentation Index
> Fetch the complete documentation index at: https://docs.celo.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Network Information

> How to choose a Celo network based on your needs and objectives.

export const AddNetworkButton = ({network = "mainnet"}) => {
  const NETWORKS = {
    mainnet: {
      title: "Add Celo Mainnet to your wallet",
      desc: "Chain ID 42220 · CELO",
      params: {
        chainId: "0xa4ec",
        chainName: "Celo Mainnet",
        nativeCurrency: {
          name: "Celo",
          symbol: "CELO",
          decimals: 18
        },
        rpcUrls: ["https://forno.celo.org"],
        blockExplorerUrls: ["https://celoscan.io"]
      }
    },
    sepolia: {
      title: "Add Celo Sepolia to your wallet",
      desc: "Chain ID 11142220 · Testnet",
      params: {
        chainId: "0xaa044c",
        chainName: "Celo Sepolia",
        nativeCurrency: {
          name: "Celo",
          symbol: "CELO",
          decimals: 18
        },
        rpcUrls: ["https://forno.celo-sepolia.celo-testnet.org"],
        blockExplorerUrls: ["https://celo-sepolia.blockscout.com"]
      }
    }
  };
  const cfg = NETWORKS[network] || NETWORKS.mainnet;
  const [status, setStatus] = useState(null);
  const [pending, setPending] = useState(false);
  const track = (event, result) => {
    window.dataLayer?.push({
      event,
      network: cfg.params.chainName,
      ...result ? {
        result
      } : {}
    });
  };
  const handleClick = async () => {
    setStatus(null);
    track("add_network_click");
    const eth = window.ethereum;
    const provider = eth && Array.isArray(eth.providers) && eth.providers.length ? eth.providers.find(p => p && p.isMetaMask) || eth.providers[0] : eth;
    if (!provider || !provider.request) {
      track("add_network_result", "no_wallet");
      setStatus({
        kind: "info",
        text: "No browser wallet detected. Install MetaMask, then try again."
      });
      return;
    }
    setPending(true);
    try {
      await provider.request({
        method: "wallet_addEthereumChain",
        params: [cfg.params]
      });
      track("add_network_result", "success");
      setStatus({
        kind: "success",
        text: `${cfg.params.chainName} added to your wallet.`
      });
    } catch (err) {
      console.error("wallet_addEthereumChain failed", err);
      const rejected = err && err.code === 4001;
      track("add_network_result", rejected ? "rejected" : "error");
      const text = rejected ? "Request cancelled in your wallet." : `Couldn't add the network${err && err.message ? `: ${err.message}` : "."}`;
      setStatus({
        kind: "error",
        text
      });
    } finally {
      setPending(false);
    }
  };
  const descText = pending ? "Opening your wallet…" : status ? status.text : cfg.desc;
  const descColor = status && status.kind === "error" ? "text-red-600 dark:text-red-400" : status && status.kind === "success" ? "text-primary dark:text-primary-light" : "text-gray-600 dark:text-gray-400";
  return <button type="button" onClick={handleClick} disabled={pending} aria-label={cfg.title} className="card block font-normal group relative my-2 ring-2 ring-transparent rounded-2xl bg-white dark:!bg-[#0b0d10] border border-gray-950/10 dark:border-white/10 overflow-hidden w-full text-left cursor-pointer hover:!border-primary dark:hover:!border-primary-light disabled:cursor-not-allowed">
      <div className="px-6 py-5 relative">
        <div className="h-6 w-6 text-primary dark:text-primary-light">
          <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className="h-6 w-6 shrink-0" aria-hidden="true">
            <circle cx="12" cy="12" r="10" />
            <path d="M8 12h8" />
            <path d="M12 8v8" />
          </svg>
        </div>
        <div>
          <h2 className="not-prose font-semibold text-base text-gray-800 dark:text-white mt-4">
            {cfg.title}
          </h2>
          <div className={`prose mt-1 font-normal text-base leading-6 ${descColor}`}>
            <span>{descText}</span>
          </div>
        </div>
      </div>
    </button>;
};

Overview of Celo Mainnet and the Celo Sepolia Testnet.

***

## Celo Mainnet

| Name | Value |
| - | - |
| Network Name | Celo Mainnet |
| Description | The production Celo network |
| Chain ID | 42220 |
| Currency Symbol | CELO |
| RPC Nodes | [List of RPC providers](/tooling/nodes/overview#as-a-service) |
| RPC Endpoint (best effort) | [https://forno.celo.org](https://forno.celo.org) <br /> Note: [Forno](/tooling/nodes/forno#celo-mainnet) is rate limited, as your usage increases consider options that can provide the desired level of support (SLA). |
| Block Explorers | <ul><li>[https://explorer.celo.org](https://explorer.celo.org)</li><li>[https://celoscan.io](https://celoscan.io)</li></ul> |
| Bridge Link | [List of bridges](/developer/bridges/bridges) |

<AddNetworkButton network="mainnet" />

## Celo Sepolia Testnet

| Name | Value |
| - | - |
| Network Name | Celo Sepolia |
| Description | The New Developer Testnet network (replacing Alfajores) |
| Chain ID | 11142220 |
| Currency Symbol | CELO |
| RPC Nodes | [List of RPC providers](/tooling/nodes/overview#as-a-service) |
| RPC Endpoint (best effort) | [https://forno.celo-sepolia.celo-testnet.org](https://forno.celo-sepolia.celo-testnet.org) |
| OP-Node RPC Endpoint (best effort) | [https://op.celo-sepolia.celo-testnet.org](https://op.celo-sepolia.celo-testnet.org) |
| Block Explorer | [https://celo-sepolia.blockscout.com](https://celo-sepolia.blockscout.com) |
| Bridge Link | [https://testnets.superbridge.app](https://testnets.superbridge.app/?fromChainId=11155111\&toChainId=11142220) <br /> Note: Ensure you enable Testnet in settings |
| Faucet Links | <ul><li>[https://cloud.google.com/application/web3/faucet/celo/sepolia](https://cloud.google.com/application/web3/faucet/celo/sepolia)</li><li>[https://faucet.celo.org/celo-sepolia](https://faucet.celo.org/celo-sepolia)</li></ul> |

<AddNetworkButton network="sepolia" />

The Celo Sepolia Testnet is Celo's new developer testnet built on Ethereum Sepolia, designed to replace Alfajores following the planned Holesky deprecation in September 2025.

**Key Features:**

* **Fresh State**: Starts with a clean slate, no state inheritance from Alfajores
* **L1 Foundation**: Built on Ethereum Sepolia for enhanced stability
* **Developer-Focused**: Provides the same developer experience as Alfajores

<Tip>
  **New Celo Sepolia Testnet Now Live!**

  Try Celo's new developer testnet on Ethereum Sepolia.
  [Learn more →](/operate/notices/archive/celo-sepolia-launch)
</Tip>

<Warning>
  The Celo Sepolia Testnet is designed for testing and experimentation by developers. Its tokens hold no real world economic value. The testnet software will be upgraded on a regular basis. This will erase your accounts, their balance and your transaction history. You may encounter bugs and limitations with the software and documentation.
</Warning>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.