XDC Network Architecture¶
The XDC Network is a Layer-1, EVM-compatible hybrid blockchain architecture designed to support both public decentralization and private enterprise requirements.
It combines:
- Public blockchain transparency
- Private/permissioned network privacy
- Enterprise-grade interoperability and compliance
This hybrid design enables XDC to serve trade finance, tokenization, payments, and regulated financial infrastructure use cases.
Overview¶
The XDC architecture is built on four foundational principles:
2.1 Hybrid (Public + Private) Architecture¶
XDC enables coexistence of public and private states:
- Public Layer (Mainnet):
- Shared, immutable ledger
- Global validator participation
- Transparent transaction verification
- Private / Permissioned Layers (Subnets / Enterprise Networks):
- Restricted access networks for enterprises
- Sensitive data remains private
- Only hashed proofs or checkpoints are anchored to the public chain
This ensures data privacy + auditability simultaneously, which is critical for regulated industries.
2.2 EVM Compatibility Layer¶
The XDC Network is a customized Ethereum-based protocol, enabling:
- Smart contracts written in Solidity
- Compatibility with:
- Web3.js
- Ethers.js
- Existing Ethereum tooling
This allows seamless migration of dApps and developer adoption.
2.3 High-Performance Execution Layer¶
The execution environment is optimized for:
- ~2 second block time
- Near-instant finality
- 2000+ TPS throughput
- Near-zero transaction fees (< $0.0001)
This performance is achieved through:
- Efficient validator coordination
- Optimized block production
- Lightweight infrastructure requirements
2.4 Enterprise Interoperability Layer¶
XDC is designed to integrate with:
- ISO 20022 financial messaging systems
- R3 Corda ecosystem
- Traditional banking and trade systems
This enables real-world financial system compatibility, not just isolated blockchain execution.

Network Layers¶
Layer 1: XDC Mainnet¶
The public XDC mainnet is the foundation:
| Component | Description |
|---|---|
| Chain ID | 50 (Mainnet), 51 (Apothem Testnet) |
| Consensus | XDPoS 2.0 |
| Block Time | ~2 seconds |
| Validators | 108 Masternodes |
| EVM Version | Shanghai (latest) |
Layer 2: Private Subnets¶
Enterprise-specific chains with:
- Custom consensus parameters
- Permissioned access
- Data privacy
- Mainnet checkpointing
Bridge Layer¶
- XDC Zero: Cross-chain asset transfers
- Checkpoint Contract: Subnet state anchoring
Consensus: XDPoS 2.0¶
XDC uses XinFin Delegated Proof of Stake (XDPoS) version 2.0:
How It Works¶
- Token Holders stake XDC to vote for Masternode candidates
- Top 108 Candidates become active Masternodes
- Masternodes take turns proposing blocks (round-robin)
- Validators sign blocks to confirm
- Rewards distributed to Masternodes and voters
Key Features¶

| Feature | Description |
|---|---|
| BFT Finality | Byzantine Fault Tolerant consensus for instant finality |
| Forensic Monitoring | Detects and records malicious validator behavior |
| Slashing | Penalties for misbehaving validators |
| Epoch System | 900-block epochs for validator rotation |
Validator Requirements¶
| Requirement | Mainnet | Testnet |
|---|---|---|
| Minimum Stake | 10,000,000 XDC | 10,000 XDC |
| Hardware | 16GB RAM, 500GB SSD | 8GB RAM, 100GB SSD |
| Bandwidth | 100 Mbps | 50 Mbps |
| Uptime | 99.9%+ expected | - |
Node Types¶
Masternode (Validator)¶
- Proposes and validates blocks
- Requires 10M XDC stake
- Earns block rewards
Standby Node¶
- Ready to become Masternode
- Maintains full chain state
- Can be promoted if Masternode fails
Full Node¶
- Stores complete blockchain
- Serves RPC requests
- No staking required
Archive Node¶
- Stores all historical states
- Required for block explorers
- Higher storage requirements
EVM Compatibility¶
XDC is fully Ethereum Virtual Machine (EVM) compatible:
Supported Tools¶
| Category | Tools |
|---|---|
| Languages | Solidity, Vyper |
| Frameworks | Hardhat, Truffle, Foundry |
| Libraries | Web3.js, Ethers.js, xdc3.js |
| Wallets | MetaMask, XDCPay |
| IDEs | Remix, VS Code |
Migration from Ethereum¶
// Ethereum code works on XDC with minimal changes
// Change 1: RPC endpoint
const web3 = new Web3('https://rpc.xinfin.network'); // XDC mainnet
// Change 2: Address format (optional)
// Ethereum: 0x71C765...
// XDC: xdc71C765... (just prefix change)
// Everything else works the same!
const contract = new web3.eth.Contract(ABI, address);
Transaction Lifecycle¶

Transaction Finality¶
| Stage | Time | Description |
|---|---|---|
| Submitted | 0s | Tx sent to node |
| Pending | 0-2s | In mempool, awaiting inclusion |
| Included | 2s | In a block |
| Final | 2-4s | BFT finality achieved |
Smart Contract Execution¶
Gas Model¶
XDC uses a gas model similar to Ethereum:
Transaction Cost = Gas Used × Gas Price
Example:
- Simple transfer: 21,000 gas
- Gas price: 0.25 Gwei
- Cost: 21,000 × 0.25 Gwei = 5,250 Gwei ≈ $0.00004
Contract Limits¶
| Parameter | Value |
|---|---|
| Block Gas Limit | 420,000,000 |
| Max Contract Size | 24 KB |
| Max Call Depth | 1024 |
Security Model¶
Network Security¶
- 108 Validators: Distributed consensus
- 10M XDC Stake: Economic security
- Slashing: Penalties for misbehavior
- Forensic Monitoring: Behavior tracking
Cryptography¶
- Signing: ECDSA (secp256k1)
- Hashing: Keccak-256
- Addresses: 20-byte derived from public key
Network Parameters¶
Mainnet¶
| Parameter | Value |
|---|---|
| Chain ID | 50 |
| Native Token | XDC |
| Block Time | ~2 seconds |
| Epoch Length | 900 blocks |
| RPC | https://rpc.xinfin.network |
| Explorer | https://xdcscan.com |
| https://xdc.blocksscan.io |
Apothem Testnet¶
| Parameter | Value |
|---|---|
| Chain ID | 51 |
| Native Token | TXDC (test) |
| Block Time | ~2 seconds |
| RPC | https://rpc.apothem.network |
| Explorer | https://testnet.xdcscan.com |
| https://apothem.blocksscan.io | |
| Faucet | https://faucet.apothem.network |
| https://faucet.blocksscan.io |