> For the complete documentation index, see [llms.txt](https://docs.armchain.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.armchain.org/get-started/network-configuration.md).

# Network Configuration

Everything you need to connect your development tools, wallets, and applications to Armchain.

## Armchain Devnet

| Parameter               | Value                             |
| ----------------------- | --------------------------------- |
| **Network Name**        | Armchain Devnet                   |
| **Chain ID**            | `55`                              |
| **Currency Symbol**     | ARM                               |
| **Currency Decimals**   | 18                                |
| **RPC URL (HTTP)**      | `https://www.armchain.org/devnet` |
| **Transaction Type**    | Type 3 (PQC)                      |
| **Signature Algorithm** | ML-DSA44                          |

## Armchain Local (Fakenet)

| Parameter             | Value                   |
| --------------------- | ----------------------- |
| **Network Name**      | Armchain Local          |
| **Chain ID**          | `55`                    |
| **Currency Symbol**   | ARM                     |
| **Currency Decimals** | 18                      |
| **RPC URL (HTTP)**    | `http://localhost:4000` |
| **WebSocket URL**     | `ws://localhost:4500`   |
| **Block Explorer**    | -                       |

> See [Fakenet Setup](/node-operators/fakenet.md) for instructions on running a local development network.

## Connecting Tools

### Hardhat

> **⚠ Partial Compatibility**: Hardhat's built-in signers use ECDSA and **cannot sign Armchain transactions**. Configure network connectivity as below, but use `@armchain-ethersv6/ethers` for all signing operations. Do **not** use `hre.ethers.getSigners()` or `hre.ethers.getContractFactory().deploy()` as they will fail.

```javascript
// hardhat.config.js
require("@nomicfoundation/hardhat-toolbox");

module.exports = {
  solidity: {
    version: "0.8.24",
    settings: { evmVersion: "london" },
  },
  networks: {
    armchain: {
      url: "https://www.armchain.org/devnet",
      chainId: 55,
      // Do not set 'accounts' here - use @armchain-ethersv6/ethers for signing
    },
    "armchain-local": {
      url: "http://localhost:4000",
      chainId: 55,
    },
  },
};
```

### Armchain Ethers SDK

```typescript
import { JsonRpcProvider, Wallet } from "@armchain-ethersv6/ethers";

// Connect to devnet
const provider = new JsonRpcProvider("https://www.armchain.org/devnet");

// Connect to local network
const localProvider = new JsonRpcProvider("http://localhost:4000");

// Create a wallet
const wallet = new Wallet(privateKey, provider);

// Check balance
const balance = await provider.getBalance(wallet.address);
console.log("Balance:", balance.toString(), "wei");
```

### Standard ethers.js (Read-Only)

For read-only operations (querying balances, reading contract state), standard ethers.js can connect to Armchain RPC:

```typescript
import { ethers } from "ethers";

const provider = new ethers.JsonRpcProvider("https://www.armchain.org/devnet");

// Read-only operations work with standard ethers
const balance = await provider.getBalance("0x...");
const blockNumber = await provider.getBlockNumber();
```

> **Important**: Signing transactions requires `@armchain-ethersv6/ethers` with ML-DSA44 support. Standard ethers.js cannot produce valid Armchain signatures.

### curl (Direct RPC)

```bash
# Get latest block number
curl -X POST https://www.armchain.org/devnet \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

# Get balance
curl -X POST https://www.armchain.org/devnet \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0xYOUR_ADDRESS","latest"],"id":1}'

# Get chain ID
curl -X POST https://www.armchain.org/devnet \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'
```

## Default Ports

When running your own node, these are the default ports:

| Port    | Protocol | Description                        |
| ------- | -------- | ---------------------------------- |
| `5050`  | TCP/UDP  | P2P (devp2p) network communication |
| `18545` | TCP      | HTTP JSON-RPC                      |
| `18546` | TCP      | WebSocket JSON-RPC                 |

When running a Fakenet demo:

| Port Pattern | Description                      |
| ------------ | -------------------------------- |
| `3000 + i`   | P2P port for validator `i`       |
| `4000 + i`   | HTTP RPC port for validator `i`  |
| `4500 + i`   | WebSocket port for validator `i` |

## API Namespaces

Armchain supports the following JSON-RPC API namespaces:

| Namespace  | Description                                         |
| ---------- | --------------------------------------------------- |
| `eth`      | Standard Ethereum API (transactions, blocks, state) |
| `net`      | Network information                                 |
| `web3`     | Web3 utility methods                                |
| `personal` | Account management (lock/unlock)                    |
| `txpool`   | Transaction pool inspection                         |
| `debug`    | Debugging and tracing                               |
| `admin`    | Node administration (peers, etc.)                   |
| `arm`      | Armchain-specific methods                           |
| `dag`      | DAG-specific queries                                |

## Gas Configuration

| Parameter                        | Value                                      |
| -------------------------------- | ------------------------------------------ |
| **Minimum Gas Price**            | 1 Gwei (`1000000000` wei)                  |
| **Max Block Gas**                | 20,500,000                                 |
| **Default Gas Limit (transfer)** | 21,000                                     |
| **Gas Price Model**              | EIP-1559 (dynamic base fee + priority fee) |

## Next Steps

* [Quickstart](/get-started/quickstart.md) to deploy your first contract
* [JSON-RPC Reference](/api-reference/json-rpc.md) for full API documentation
* [Node Types](/node-operators/node-types.md) for GC modes, sync modes, and resource requirements


---

# 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.armchain.org/get-started/network-configuration.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.
