XDC Network, Enterprise-Grade Hybrid Blockchain
Build on XDC Network with Dwellir's globally distributed RPC endpoints. Hybrid public/private architecture, fast finality, and institutional-grade tooling.
XDC Network RPC
With Dwellir, you get access to our global XDC Network network which always routes your API requests to the nearest available location, ensuring low latency and the fastest speeds.
Get your API keyWhy Build on XDC Network
- Enterprise ready: Optimized for trade finance, tokenized real-world assets, and enterprise-grade integrations
- Hybrid architecture: Public network with optional private state channels for sensitive data
- Ethereum-compatible tooling: Seamless migration for Solidity smart contracts and EVM tooling
- ISO 20022 alignment: Built with financial messaging standards and compliance workflows in mind
- Efficient consensus: XinFin Delegated Proof of Stake (XDPoS) delivers ~2 second block times and low fees
Quick Start
Connect Endpoints
curl -sS -X POST https://api-xdc-mainnet.n.dwellir.com/<API_Keys_Are_Not_Made_for_Bots> \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'import { JsonRpcProvider } from 'ethers';const provider = new JsonRpcProvider( 'https://api-xdc-mainnet.n.dwellir.com/<API_Keys_Are_Not_Made_for_Bots>');const latest = await provider.getBlockNumber();console.log('block', latest);import requestsurl = 'https://api-xdc-mainnet.n.dwellir.com/<API_Keys_Are_Not_Made_for_Bots>'payload = { 'jsonrpc': '2.0', 'id': 1, 'method': 'eth_blockNumber', 'params': []}resp = requests.post(url, json=payload)print(resp.json())package mainimport ( "bytes" "fmt" "io" "net/http")func main() { url := "https://api-xdc-mainnet.n.dwellir.com/<API_Keys_Are_Not_Made_for_Bots>" payload := []byte(`{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}`) resp, err := http.Post(url, "application/json", bytes.NewBuffer(payload)) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body))}Network Information
| Parameter | Value | Details |
|---|---|---|
| Mainnet Chain ID | 50 (0x32) | |
| Testnet Chain ID | 51 (0x33), Apothem | |
| Native Token | XDC | |
| Average Block Time | ~2 seconds |
Installation & Setup
import { JsonRpcProvider } from 'ethers';
// Connect to XDC Network mainnet
const provider = new JsonRpcProvider('https://api-xdc-mainnet.n.dwellir.com/YOUR_API_KEY');
// Verify connection
const { chainId } = await provider.getNetwork();
console.log('Connected to XDC Network:', chainId === 50n);
// Fetch latest block
const block = await provider.getBlock('latest');
console.log('Latest block:', block.number);import Web3 from 'web3';
const web3 = new Web3('https://api-xdc-mainnet.n.dwellir.com/YOUR_API_KEY');
const chainId = await web3.eth.getChainId();
console.log('Connected to XDC Network:', chainId === 50);
const gasPrice = await web3.eth.getGasPrice();
console.log('Current gas price (XDC):', gasPrice);import { createPublicClient, defineChain, http } from 'viem';
const xdc = defineChain({
id: 50,
name: 'XDC Network',
nativeCurrency: { name: 'XDC', symbol: 'XDC', decimals: 18 },
rpcUrls: {
default: { http: ['https://api-xdc-mainnet.n.dwellir.com/YOUR_API_KEY'] }
}
});
const client = createPublicClient({ chain: xdc, transport: http() });
const blockNumber = await client.getBlockNumber();
console.log('Latest block:', blockNumber);from web3 import Web3
w3 = Web3(Web3.HTTPProvider('https://api-xdc-mainnet.n.dwellir.com/YOUR_API_KEY'))
if w3.is_connected():
chain_id = w3.eth.chain_id
print(f'Connected to XDC Network (chain ID: {chain_id})')
balance = w3.eth.get_balance('0x0000000000000000000000000000000000000000')
print('Foundation balance (wei):', balance)Consensus & Validator Model
| Parameter | Value | Details |
|---|---|---|
| Consensus | XDPoS 2.0 | Delegated Proof of Stake |
| Finality | ~2s | Fast settlement |
| Validator Set | 108 | Masternodes and delegates |
Core Features
- Hybrid privacy: Permissionless public ledger with optional private side-channels for data confidentiality
- Low cost transactions: Typical fees under $0.0002 per transfer, enabling micro-settlement use cases
- Asset tokenization: Native support for security tokens, invoice financing, and RWA issuance
- Interoperability: Bridges to Ethereum, Polygon, BNB Chain, and Corda-based networks
- Regulatory readiness: Compliance-first tooling, identity layers, and notarization workflows
API Reference
Detailed method guides for XDC Network are coming soon. Standard Ethereum JSON-RPC calls (eth_blockNumber, eth_getBalance, eth_sendRawTransaction, etc.) are fully supported today.
Want early access?
Reach out to the Dwellir team if you need a specific method guide prioritized.
Tooling & Integrations
- Explorer: XDC Scan
- Faucet: Apothem Faucet
- Wallets: XDC Pay, Ledger (with Chainlist), D'Cent
- Bridges: XDC Web Wallet bridge, Prime Numbers bridge
Developer Resources
Next Steps
- Request your dedicated API key from the Dwellir dashboard
- Point your existing EVM tooling to the endpoints above
- Start deploying Solidity contracts or minting assets on XDC Network
Build confidently on XDC Network with globally distributed, low-latency RPC access from Dwellir.
eth_coinbase
Check the legacy eth_coinbase compatibility method on World Chain. Public endpoints may return an address, `unimplemented`, or another unsupported-method response depending on the client.
eth_blockNumber
Get the current block height on XDC Network. Essential for syncing dApps, monitoring transaction confirmations, and blockchain state tracking.

