XGR Chain — Technical Whitepaper
XGR.Network GmbH
Version: 2.0.5
Valid from: 2026-05-25
Network: xgrchain · Chain ID 1643 / 0x66b
Public standalone node release xgr-node v2.0.5
Abstract
XGR Chain is an EVM-compatible Layer-1 blockchain operated by XGR Network. The current public technical baseline is xgr-node v2.0.5, a standalone public node release that operates the published XGR mainnet without private engine dependencies. The mainnet uses IBFT for deterministic finality and delegated Proof of Stake for validator participation from the XGR2.0 cutover.
This whitepaper defines the current public chain-level baseline: genesis identity, chain configuration, EVM execution, transactions, fork activation, IBFT finality, delegated PoS, staking, delegation, FeePool rewards, gas and fee accounting, public RPC, P2P networking, node operation boundaries and upgrade rules.
The document intentionally does not specify XDaLa workflow semantics, XRC application standards, private engine internals, UI behavior or business-process orchestration. These systems may build on XGR Chain, but they are outside the public chain-node baseline documented here.
Reading guide
- Validators and node operators: Sections 1, 3, 8, 9, 10, 11, 12, 15, 16 and 18.
- RPC operators and explorers: Sections 6, 13, 14, 15 and 17.
- Wallet and dApp developers: Sections 3, 5, 6, 7, 13 and 14.
- Auditors and protocol reviewers: Sections 1 through 14 and the appendices.
1. Release baseline and source hierarchy
1.1 Public release baseline
| Item | Value |
|---|---|
| Public node repository | xgr-network/xgr-node |
| Release tag | v2.0.5 |
| Mainnet genesis repository | xgr-network/XGR |
| Mainnet genesis branch | main |
| Mainnet genesis path | genesis/mainnet/genesis.json |
| Normal operating mode | Public standalone chain node |
Private xgrEngine requirement | Not required for normal public chain-node operation |
| XDaLa requirement | Not required for normal public chain-node operation |
1.2 Source hierarchy
| Priority | Source | Role |
|---|---|---|
| 1 | xgr-network/xgr-node tag v2.0.5 | Implementation of execution, consensus, PoS, gas, RPC, P2P and node behavior. |
| 2 | xgr-network/XGR:genesis/mainnet/genesis.json | Published mainnet chain configuration and genesis state. |
| 3 | Official XGR operator documentation | Operational instructions, validator onboarding commands and service guidance. |
| 4 | This whitepaper | Public technical explanation of the current chain baseline. |
The active node implementation and the published genesis are authoritative. This whitepaper explains those sources; it does not override them.
1.3 Baseline distinction
The public chain node is the minimum verifiable infrastructure unit. It is not a UI package, not an XDaLa runtime and not a private application engine. A node operator can run the public mainnet by using the release binary and the mainnet genesis. Application-specific engines may interact with the chain, but they are not required to verify blocks, execute EVM transactions, participate in P2P propagation or join validator consensus.
2. Design goals
2.1 EVM compatibility
XGR Chain preserves the Ethereum developer model: externally owned accounts, contract accounts, bytecode execution, logs, receipts, gas accounting, transaction nonces and Ethereum-compatible JSON-RPC. Wallets and infrastructure tools integrate through chain ID 1643, normal transaction types and public RPC endpoints.
2.2 Deterministic finality
XGR Chain uses IBFT to provide deterministic finality. A finalized block is accepted after the required quorum commits it under the active validator-set rules. This property is relevant for wallets, bridges, explorers, exchanges and backend systems because a finalized block is not merely a probabilistic observation.
2.3 Delegated PoS with IBFT finality
The current mainnet combines IBFT finality with delegated Proof of Stake validator participation. IBFT remains the finality protocol; delegated PoS determines validator eligibility, stake weighting, validator economics and epoch-based validator-set behavior.
2.4 Predictable fee behavior
The fee model keeps Ethereum-style transaction fee fields while applying XGR-specific fee accounting. Under normal utilization, the base fee is clamped to a resolved minimum. Under high utilization, emergency base-fee behavior can raise fees according to defined parameters.
2.5 Operator reproducibility
The release model is designed so that a public operator can reproduce the node binary from the tag, validate the published genesis, run a node, compare RPC output and verify the consensus chain without relying on private infrastructure.
3. Network identity and genesis
3.1 Network identity
| Field | Value |
|---|---|
| Network name | xgrchain |
| Chain ID | 1643 |
| Chain ID hex | 0x66b |
| Native decimals | 18 |
| Execution model | EVM-compatible |
| Consensus finality | IBFT deterministic finality |
| Validator model from block 5,446,500 | Delegated PoS |
3.2 Genesis header
| Genesis field | Published value | Meaning |
|---|---|---|
number | 0x0 | Genesis block number. |
timestamp | 0x0 | Genesis timestamp. |
gasLimit | 0x3938700 / 60,000,000 | Genesis gas limit. |
difficulty | 0x1 | Genesis difficulty field. |
baseFee | 0x0 | Initial base fee field. |
baseFeeEM | 0x0 | Initial emergency multiplier field. |
baseFeeChangeDenom | 0x0 | Initial base-fee denominator field. |
coinbase | 0x0000000000000000000000000000000000000000 | Genesis coinbase. |
parentHash | 0x0000000000000000000000000000000000000000000000000000000000000000 | Genesis parent hash. |
3.3 Mainnet bootnode
/ip4/217.154.225.157/tcp/1478/p2p/16Uiu2HAmGYfGAKCNzuzZPPauKk7FpqMk192hEmiQsqYTXvrga4CkBootnodes are a discovery mechanism. They do not grant validator authority and do not determine the consensus validator set.
3.4 Network-defining values
Chain ID, genesis header, genesis allocation, fork schedule, IBFT configuration, PoS activation block, validator genesis data, bootnodes and configured protocol addresses define the network. Changing any of these locally creates an incompatible network view.
4. Node architecture
| Component | Responsibility |
|---|---|
| Chain configuration loader | Loads genesis, chain ID, forks, consensus engine configuration, bootnodes and chain parameters. |
| Blockchain store | Stores canonical blocks, headers, receipts, state references and supporting indexes. |
| State transition and EVM | Executes transactions, updates account state, charges gas and produces receipts/logs. |
| TxPool | Validates, queues and propagates pending transactions according to protocol and local policy. |
| IBFT consensus backend | Handles proposal, verification, round changes, commits and deterministic finality. |
| PoS validator store | Derives validator set, stake, voting power and epoch-effective state in PoS mode. |
| JSON-RPC layer | Exposes Ethereum-compatible RPC and public XGR PoS monitoring methods. |
| P2P networking | Handles libp2p node identity, bootnode discovery, routing, gossip and streams. |
The proposer can choose transaction ordering, but cannot choose arbitrary state. Validators independently execute the same transactions against the same parent state and verify the same state root, transaction root, receipts root and consensus metadata.
4.1 Local runtime versus protocol state
Runtime options such as data directory, RPC bind address, P2P bind address, logging and sealing mode affect the local node. They do not redefine protocol rules. Protocol rules are derived from release code and the published chain configuration.
5. EVM execution model
| Account type | Description |
|---|---|
| Externally owned account | Controlled by a private key; can sign transactions. |
| Contract account | Contains EVM bytecode and storage; executes code when called. |
- The proposer selects pending transactions.
- The proposer builds a candidate block on the parent state.
- Transactions execute sequentially under active fork rules.
- Account balances, nonces, storage and contract state are updated.
- Logs and receipts are generated.
- Gas usage and fee accounting are applied.
- Header roots are committed.
- Validators independently verify the block.
- IBFT finality is reached after quorum commit.
XGR Chain preserves Ethereum-style receipts and logs for normal EVM execution and emits XGR-specific fee-accounting logs for correct explorer display.
6. Transaction model
| Category | Code-level type | Fee fields | Use |
|---|---|---|---|
| Legacy transaction | LegacyTx / 0x00 | gasPrice | Public wallet transaction. |
| Access-list transaction | AccessListTx / 0x01 | gasPrice plus access list | Public wallet transaction when active. |
| Dynamic-fee transaction | DynamicFeeTx / 0x02 | maxFeePerGas, maxPriorityFeePerGas | Public wallet transaction. |
| State transaction | StateTx / 0x7f | Internal | System-level execution path, not ordinary wallet traffic. |
| Type | Effective gas price |
|---|---|
LegacyTx | gasPrice |
AccessListTx | gasPrice |
DynamicFeeTx | min(maxFeePerGas, baseFee + maxPriorityFeePerGas) |
TxPool admission is local node state. Inclusion and finality are separate from local txpool visibility.
7. Fork schedule
XGR Chain uses deterministic block-height fork activation. A fork is active when blockNumber >= configuredForkBlock.
| Fork / feature | Activation block |
|---|---|
homestead, byzantium, constantinople, petersburg, istanbul, london, londonfix | 0 |
EIP150, EIP155, EIP158, quorumcalcalignment, txHashWithType | 0 |
EIP2930, EIP2929, EIP3860, EIP3651 | 1,208,500 |
feePoolSplit | Aligned to first PoS block, mainnet block 5,446,500 |
8. IBFT consensus and finality
| Field | Mainnet value |
|---|---|
| Consensus engine | IBFT |
| Block time | 2000000000 ns, approximately 2 seconds |
| Validator type | BLS |
| Finality | Deterministic once the required quorum commits the block. |
| Phase | Type | Validator type | From | To | Deployment |
|---|---|---|---|---|---|
| Initial phase | PoA | bls | 0 | 5,446,499 | n/a |
| Delegated PoS phase | PoS | bls | 5,446,500 | ongoing | 5,446,500 |
weightedQuorum = ceil(2 * totalVotingPower / 3)In PoS mode, the consensus layer verifies committed voting power rather than merely counting validators. This preserves IBFT finality while allowing stake-weighted participation.
9. Delegated Proof of Stake
Delegated PoS is active from block 5446500. It defines validator eligibility, active stake, delegation, validator selection, uptime-sensitive reward weighting and staking lifecycle semantics.
| Parameter | Value |
|---|---|
| PoS activation block | 5,446,500 |
| Minimum validators | 4 |
| Maximum validators | 25 |
| Validator type | BLS |
| Epoch size | 1,000 blocks |
| Micro-epoch size | 25 blocks |
Normal validator eligibility depends on staking active state, minimum self-stake, total active stake threshold, BLS public-key validity and selection within the maximum validator count. Current consensus membership, staking active state and epoch-effective stake are separate concepts.
10. Staking contract and delegation model
| Address / constant | Purpose / value |
|---|---|
0x0000000000000000000000000000000000001001 | Native staking contract. |
0x000000000000000000000000000000000000fEE2 | FeePool address. |
0x0000000000000000000000000000000000009999 | PoS system address. |
| Validator total threshold | 2,000,000 XGR |
| Validator minimum self-stake | 200,000 XGR |
| Default delegator minimum stake | 10,000 XGR |
| Maximum delegators per validator | 200 |
| Maximum commission | 10,000 bps / 100% |
A validator position is created through self-staking and BLS public-key registration. A delegator stakes to a validator pool. The validator pool controls whether delegation is enabled, the pool cap, minimum delegator stake and commission basis points.
| Field | Meaning |
|---|---|
| Raw delegated stake | Total delegated stake assigned to a validator. |
| Active delegated stake | Delegated stake currently active for validator accounting. |
| Epoch-effective stake | Stake snapshot effective for a specific epoch. |
11. Epoch, micro-epoch and snapshot model
| Parameter | Value |
|---|---|
microEpochSize | 25 blocks |
macroEpochMicroFactor | 40 |
| Derived macro epoch size | 1,000 blocks |
microEpochInactivityDecayBps | 9,000 |
microEpochNominalWeightUnits | 10,000 |
microEpochSize * macroEpochMicroFactor = 25 * 40 = 1000 blocksJoin and deactivation effects are interpreted through epoch boundaries. Epoch snapshots freeze validator membership, validator stake, staker stake and delegation effectiveness for a given accounting period.
12. FeePool, rewards and slashing
From FeePoolSplit activation, part of validator-fee accounting is pooled at 0x000000000000000000000000000000000000fEE2. At epoch finalization, the FeePool balance is distributed according to effective validator weights.
| Observed proposer uptime | Reward effect |
|---|---|
| At least 90% | Full effective stake weight. |
| At least 80% and below 90% | Reduced effective stake weight. |
| Below 80% | Reward-ineligible for the affected epoch. |
| Below 50% | Can enter slashing path where slashing is enabled and applicable. |
The documented default slash rate in the current model is 20 bps. Slashing is bounded by protocol rules, emergency no-slash behavior and available staking balance.
13. Gas and fee behavior
| Method / parameter | Current behavior |
|---|---|
eth_gasPrice | Returns latest header BaseFee. |
eth_maxPriorityFeePerGas | Returns 0. |
| Dynamic-fee default cap | 2 * baseFee. |
| Fallback minimum base fee | 100000000000 wei / 100 gwei. |
| Emergency utilization threshold | 80%. |
| Emergency denominator | 4. |
totalFeeRaw = gasUsed * effectiveGasPrice
burnedApplied = min(totalFeeRaw, 1000 gwei)
remainingAfterBurn = totalFeeRaw - burnedApplied
donation = remainingAfterBurn * donationPercent / 100
validator = remainingAfterBurn - donationEvery normal transaction appends an XGRFeeSplit(uint256,uint256,uint256) log at 0x000000000000000000000000000000000000fEE1. With FeePoolSplit active, the node also appends XGRFeeAccounting(uint256,uint256,uint256,uint256). Explorers should display fee components from actual receipt logs.
14. JSON-RPC surface
| Namespace | Purpose |
|---|---|
eth_* | Blocks, transactions, calls, receipts, logs, gas, fee and public XGR PoS monitoring methods. |
net_* | Network metadata and peer-related information. |
web3_* | Client and utility metadata. |
eth_getPosValidatorsOverview
eth_getPosValidatorDelegators
15. P2P networking
| Parameter | Value |
|---|---|
| P2P implementation | libp2p |
| Transport security | Noise |
| Default libp2p port | 1478 |
| Default bind address | 127.0.0.1:1478 |
| Production bind example | 0.0.0.0:1478 |
| Max peers | 40 |
| Max inbound peers | 32 |
| Max outbound peers | 8 |
| Regular discovery interval | 5 seconds |
| Bootnode discovery interval | 60 seconds |
The published mainnet bootnode is /ip4/217.154.225.157/tcp/1478/p2p/16Uiu2HAmGYfGAKCNzuzZPPauKk7FpqMk192hEmiQsqYTXvrga4Ck.
16. Node operation model
| Role | Purpose | Sealing mode |
|---|---|---|
| Full node | Follows and verifies the chain. | --seal=false |
| RPC node | Serves JSON-RPC traffic. | --seal=false |
| Validator node | Participates in consensus when active and selected. | --seal=true |
| Bootnode | Provides stable peer discovery. | Role-specific |
Exact CLI examples are maintained in the node-operation runbook. This whitepaper defines the technical model and public baseline.
17. Access-control and permission boundaries
| Boundary | Rule |
|---|---|
| P2P connectivity | Connectivity only; no validator authority. |
| Bootnodes | Discovery only; no consensus rights. |
| Validator set | Derived from consensus and staking state. |
| TxPool | Local node state, not consensus state. |
| RPC exposure | Operator policy; does not change chain rules. |
| Address-list schema fields | Schema fields exist, but the published mainnet genesis does not configure active chain-level allow/block lists. |
| Contract permissions | Defined by contract logic, not by P2P or RPC exposure. |
18. Network upgrades
Network-defining changes require coordinated release management. Consensus, staking, fee, validator-set and fork changes are not local operator preferences. They require a compatible node release, deterministic activation data and validator/operator coordination.
The XGR2.0 delegated PoS cutover is active from block 5446500. Future protocol changes must be documented as explicit network upgrades.
19. Appendices
Appendix A — Key constants
| Item | Value |
|---|---|
| Chain ID | 1643 / 0x66b |
| PoS activation | 5,446,500 |
| Epoch size | 1,000 blocks |
| Micro-epoch size | 25 blocks |
| Staking contract | 0x0000000000000000000000000000000000001001 |
| FeePool | 0x000000000000000000000000000000000000fEE2 |
| PoS system address | 0x0000000000000000000000000000000000009999 |
| Fee log address | 0x000000000000000000000000000000000000fEE1 |
| Fallback minimum base fee | 100 gwei |
Appendix B — Current document set
- XGR Chain introduction
- XGR Chain specification
- XGR Chain genesis and configuration reference
- XGR Chain IBFT consensus reference
- XGR Chain node-operation runbook
- XGR Chain staking and delegated PoS model
- XGR Chain staking / PoS JSON-RPC endpoint reference
- XRC-GAS gas price and fee behavior reference
- XGR Chain networking and P2P reference
- XGR Chain access-control and permission-boundary reference
- XGR Chain network-upgrade and hardfork process
Version note. This document supersedes technical whitepaper v1.0 for the current public technical baseline. Version v1.0 remains part of the historical whitepaper archive and is listed with its own validity period.