> 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
