# XDC Zero + Chain 138 — config templates Templates for pairing **DBIS Chain 138** with **XDC Network mainnet** JSON-RPC (`https://rpc.xinfin.network`, chain id 50) or Apothem/devnet, using the [XDC-Zero](https://github.com/XinFinOrg/XDC-Zero) Endpoint pattern, **without** replacing your existing subnet↔parent XDC-Relayer deployment. ## XDC Network (parent) — facts for XDC Zero | Item | Mainnet | Testnet (Apothem) | |------|---------|-------------------| | Chain ID | **50** (`0x32`) | **51** (`0x33`) | | Gas / native currency | **XDC** (not ETH) | **TXDC** (testnet) | | Default JSON-RPC (this repo) | `https://rpc.xinfin.network` | `https://rpc.apothem.network` | | More RPC URLs | [Chainlist — XDC (50)](https://chainid.network/chain/50/) | [Chainlist — Apothem (51)](https://chainid.network/chain/51/) | | Block explorers | [xdcscan.com](https://xdcscan.com), [xdcscan.io](https://xdcscan.io) | Apothem explorers on Chainlist | | Project / docs hub | [xinfin.org](https://xinfin.org) | — | `PARENTNET_URL` / `XDC_PARENTNET_URL` must be **XDC-compatible** JSON-RPC. Variables such as `ETHEREUM_MAINNET_RPC` are for other workflows (verification, CCIP) and are **not** substitutes for the XDC parent endpoint. | File | Purpose | |------|---------| | [`xdc-zero-chain138-pair.example.env`](xdc-zero-chain138-pair.example.env) | Env vars for the **second** relayer pair (parent ↔ 138). Includes both operator-only Core RPC guidance and the public RPC values relayer/services should actually use. | | [`xdc-relayer.dotenv.example`](xdc-relayer.dotenv.example) | Clone-local `.env` for a manually run **XDC-Relayer** checkout (`node dist/server.js`). | | [`xdc-zero-relayer-138-pair.example.defaults`](xdc-zero-relayer-138-pair.example.defaults) | `/etc/default/xdc-zero-relayer-138-pair` example for the **systemd** unit. | | [`network.config.xdc-mainnet.example.json`](network.config.xdc-mainnet.example.json) | Example `network.config.json` for XDC-Zero `endpoint/`: **XDC mainnet** `https://rpc.xinfin.network` + LAN Chain 138. Merge or copy keys into your clone. | | [`endpointconfig.fragment.chain138.example.json`](endpointconfig.fragment.chain138.example.json) | Top-level **`chain138`** block to **merge** into XDC-Zero `endpointconfig.json`. Also **append** one object to existing `xdcparentnet.registers[]` for peer chain id 138 (see runbook). | | [`xdcparentnet-register-chain138.fragment.json`](xdcparentnet-register-chain138.fragment.json) | Single **`registers[]`** entry (chain id **138**) consumed by the merge helper for `xdcparentnet`. Replace zero addresses after CSC/Endpoint deploy. | **Scripts:** [scripts/xdc-zero/README.md](../../scripts/xdc-zero/README.md) — full list; start with `run-xdc-zero-138-operator-sequence.sh`. **Troubleshooting:** [docs/03-deployment/CHAIN138_XDC_ZERO_DEPLOYMENT_TROUBLESHOOTING.md](../../docs/03-deployment/CHAIN138_XDC_ZERO_DEPLOYMENT_TROUBLESHOOTING.md) **systemd (second relayer):** [`../systemd/xdc-zero-relayer-138-pair.example.service`](../systemd/xdc-zero-relayer-138-pair.example.service) + [`xdc-zero-relayer-138-pair.example.defaults`](xdc-zero-relayer-138-pair.example.defaults). Use [`xdc-relayer.dotenv.example`](xdc-relayer.dotenv.example) only for a clone-local relayer `.env`. **Canonical procedure:** [docs/03-deployment/CHAIN138_XDC_ZERO_BRIDGE_RUNBOOK.md](../../docs/03-deployment/CHAIN138_XDC_ZERO_BRIDGE_RUNBOOK.md) **Preflight:** `bash scripts/verify/xdc-zero-chain138-preflight.sh` Upstream repos (clone separately): [XDC-Zero](https://github.com/XinFinOrg/XDC-Zero), [XDC-CSC](https://github.com/XinFinOrg/XDC-CSC), [XDC-Relayer](https://github.com/XinFinOrg/XDC-Relayer).