The Enjin Relaychain is the proof-of-stake chain that secures the Enjin Blockchain. Its validators produce blocks, finalize them and check the blocks of the Enjin Matrixchain, the parachain that holds NFTs and apps. On 24 October 2026 the Relaychain had 27 active validators (block 17,827,249), and an approved governance plan grows the active set to 35 in three more steps over the next year.
This article explains how that works: the two chains, consensus and timing, how the set grows, how nomination pools stand between holders and validators, what rewards and slashing mean in words and what a validator runs. It does not cover how to stake ENJ; for that see the Enjin network page. Values marked as measured were read from Enjin’s public RPC endpoints on 24 October 2026, and the last section shows how to repeat them.
Relaychain and Matrixchain
Enjin’s documentation says the Enjin Blockchain is made up of the Enjin Relaychain and the Enjin Matrixchain. The Relaychain is built on Polkadot technology and the Substrate framework. Enjin describes it as the backbone: validators stake ENJ on it, it handles governance and it coordinates itself and the Matrixchain. It deliberately omits smart contracts.
The Matrixchain is the chain developers use. Enjin lists asset minting, Fuel Tanks and an on-chain marketplace as its features. It is built on the Relaychain, and Enjin says it can focus on speed and cost because the Relaychain carries security and block validation.
Technically the Matrixchain is a registered parachain with para id 1000. We read this three ways on 24 October 2026:
- the Relaychain’s parachain list is 1000 and 2021, and
paras.paraLifecycles(1000)returnsParachain; - the Matrixchain’s own
parachainInfo.parachainIdis 1000; - the Relaychain assigns one whole core to task 1000, and the head it records for the Matrixchain (block 12,033,089) matched the Matrixchain’s own best block at the time.
Enjin’s documentation notes that, unlike Polkadot’s auction-based parachain leases, its approach avoids auctions. For readers who know Polkadot, the practical difference is that no auction decides who gets to connect.
The first block on chain is dated 3 June 2023 for the Relaychain and 10 September 2023 for the Matrixchain (blocks read from archive endpoints).
Who secures what
Relaychain validators secure both chains. Enjin’s node documentation says so directly: relay validators reject an invalid Matrixchain block, and collators “do not secure the network”. Collators are the block producers of the Matrixchain, which makes the next point worth reading carefully.
The Matrixchain runs Aura block authoring with 6 authorities, and on chain all 6 are invulnerable collators in the collatorStaking pallet (Matrixchain block 12,033,089). Enjin’s documentation says the opposite about the public: “Currently, it is not possible to run a Enjin Matrixchain collator node”, and that running a collator and its reward system “is not available”. It also describes the Matrixchain as permissionless, in the sense that anyone can operate a node. We read these together as follows: anyone can run a Matrixchain node that follows the chain, while the set that produces blocks is small and authorized. We report both the documentation and the chain and do not resolve the difference.
Consensus and timing
The Relaychain uses nominated proof of stake (NPoS): validators are chosen by an election in which nominators back them with stake, and the chain has the staking, nominationPools and electionProviderMultiPhase pallets for it. Enjin’s infrastructure page calls the same design “delegated Proof-of-Stake”, while its Relaychain and nomination pool pages say NPoS, and NPoS is the accurate name because an election picks the validators.
Two mechanisms do the work, as on other Polkadot-family chains. BABE assigns who authors each block; the validator guide’s log sample shows “Starting BABE Authorship worker”. GRANDPA finalizes. Enjin’s pages we read do not use the word finality for the Relaychain, so this part is measured: both the babe and grandpa pallets are present, both have 27 authorities and the finalized head trailed the best block by 2 blocks at block 17,827,249. Polkadot’s own documentation describes the general idea of the pair.
The measured timing, from the chain:
- Block time: 6 seconds (
babe.expectedBlockTimeis 6,000 ms, and 1,000 blocks from 17,826,360 to 17,827,360 averaged 5.999999 seconds). - Session: 2,400 blocks, which is 4 hours. Enjin’s documentation calls a session an epoch, and the chain constant is
babe.epochDuration. Both names mean the same 4 hours. - Era: 6 sessions, which is 14,400 blocks or 24 hours. Era 1219 began at 19:13:54 UTC on 20 October 2026 and era 1222 at 19:13:54 UTC on 23 October 2026, exactly 72 hours for 3 eras.
The timing matters for validators because the next set is chosen on a schedule. Enjin’s validator guide says the election happens at the start of the last session of an era (the 6th session, in the 20th hour), and a selected validator becomes active in the next era, 4 hours later.
The validator set and the 25 to 35 expansion
At block 17,827,249, staking.validatorCount was 27 and session.validators listed 27. At block 17,827,474, 28 validators were declared, so 1 was waiting.
The approved plan
The plan is Enjin’s proposal GP-2026-08-03-01, “Expansion of the Enjin Relaychain Active Validator Set from 25 to 35”, dated 3 August 2026. Its stated reason is that 27 validators were registered for 25 slots and demand exceeded supply. Slots opened by a higher count are filled by the ordinary era election, with no allow list.
The chain shows what happened to it:
- Approval. Referendum 10, on the Root track, was approved at block 16,880,927 on 19 August 2026. The call the referendum carries is stored as a preimage on chain, and its hash matches the preimage hash printed in the proposal. We decoded the preimage: a
utility.batchAllthat raises the validator count by 2 and schedules three more raises under the task namesnodesmith/t2,nodesmith/t3andnodesmith/t4. - Step 1. At block 16,950,720 on 24 August 2026 the count went from 25 to 27. The larger set took effect from era 1163, about 1.2 days later (25 August, 19:13 UTC), because new entrants join at the first election after a step runs.
- Steps 2 to 4. These sit in the scheduler right now:
- block 18,246,720, about 22 November 2026: +3, to 30;
- block 19,542,720, about 20 February 2027: +2, to 32;
- block 20,838,720, about 21 May 2027: +3, to 35.
The dates are estimates from 6-second blocks. The proposal gives the same ones. Each queued step can be cancelled before it runs by a later Root-track referendum, so the schedule is a plan and not a promise. The proposal also says that when the twelve months are over the set will be reviewed with a view to a further increase, and that the size beyond that is for the network’s governance to decide. Nothing beyond 35 is committed.
One technical limit matters for the last step: the GRANDPA authority limit on the chain is 32 today, below the 35 that step 4 reaches. Enjin’s separate upgrade proposal GP-2026-10-12-01 raises that limit to 100, and its on-chain referendum (number 16) was still deciding on 24 October 2026. The same upgrade requires validators to run client v1.8.0 and adds dispute slashing, which is not live yet.
How the number has moved
The chain also records the earlier history. The first block (3 June 2023) had 9 active validators. The active set held 13 from 14 October 2023 (the target count changed a day earlier), 15 from 21 December 2023 and 16 from 15 April 2025, then reached 25 from 28 April 2025 and 27 from 25 August 2026 (the target count changed a day earlier). Enjin’s validator guide still says “a maximum of 13 Active Validators” and that the backing needed to join was 32.5 million ENJ as of era 659. The measured stake of the lowest active validator is about 15.97 million ENJ today. Enjin’s proposal describes the 25 as a configuration dating to launch in 2023. Neither matches the chain, so this article reports the chain: 25 since April 2025.
On 24 October 2026, 22 of the 27 active validators each had a total stake between 17,688,050 and 17,767,632 ENJ and 5 had about 15.97 million. The election spreads nominations almost evenly, so there is no single “stake needed” figure worth quoting: what decides entry is the number of seats and where a validator ranks for them.
Nominators and nomination pools
On the Relaychain, nominators are almost entirely nomination pools. Of the 140 nominators on chain at block 17,827,369, 139 are pool accounts, and there are 141 bonded pools (139 open and 2 being destroyed). One account nominates directly: it dates from era 762, holds about 461 ENJ and backs 4 validators. Enjin’s documentation says “Direct staking is not supported on Enjin” and that pools handle staking, so in practice stake reaches validators through pools and we leave the one exception as a footnote.
How a pool works, from Enjin’s documentation:
- Members join with a minimum of 1 ENJ (on chain,
nominationPools.minJoinBond). - Creating a pool takes 2,500 ENJ and a “Degen” NFT, which marks the pool owner.
- Members receive sENJ, a liquid token that tracks their share. The pool account is what nominates validators.
A validator, by contrast, must bond at least 15,000 ENJ of its own to register. The election then ranks validators by total stake: their own bond plus what pools back them with. Pools pick up to 16 validators; this is measured (16 is the most any nominator targets, and the election’s per-voter limit is 16), as Enjin’s pages we read give no maximum.
Leaving has two paths that look contradictory. The chain’s bonding duration is 28 eras, which is 28 days, and Enjin’s pool guide says you must wait 28 eras for unbonding. Enjin’s validator staking page also describes an immediate exit: exchange sENJ for ENJ through the stakeExchange pallet. These are two different mechanisms. One is the protocol’s unbonding delay and the other is an exchange. Enjin’s documentation also warns that the sENJ value can fall if the nominated validators misbehave, so it cannot guarantee that a holder gets their original ENJ back.
Rewards and slashing
We do not quote rates here. Use Enjin’s own staking app or dashboard for live ones; the Enjin network page points to the one we use.
Rewards work in four steps:
- Enjin’s proposal says era rewards are split approximately evenly across active validators. The chain tracks era points per validator (era 1221 had points recorded for all 27).
- A validator may keep a commission. Each validator sets its own, and a pool owner can set another.
- Rewards reach pools: the docs say they are collected into the pool’s reward account for the era, then distributed with a one-era lag.
- The pool’s commission goes to the Degen holder, and the rest is added back to the pool’s stake.
Slashing is the cost side. Enjin’s documentation names three offences: double signing (equivocation), unresponsiveness and invalid state transitions. A slash takes a portion of the validator’s stake, including the nominators’ stake behind it, and the forfeited amount goes to the Enjin Treasury. The documentation says only active nominations are affected. On chain, slashes are deferred for 27 eras (one less than the 28 eras of unbonding), so they can be reversed before they apply, and we found no unapplied slashes in eras 1195 to 1222. We do not repeat the percentage ranges from Enjin’s page, because we could not tie them to chain parameters.
No link from validators to Fuel Tanks or to ENJ burning is documented in the pages we read. A validator’s registered key set on this chain has 8 parts, including keys named fuelTanks, marketplace and nominationPools, but nothing we read says what they do, so we make no claim about them.
What a validator runs
A validator runs the Enjin Relaychain node (the enjin binary) or the official enjin/relaychain Docker image on Docker Hub, started with the --validator flag and a public address. Its log shows Role: AUTHORITY. We did not find an open-source repository for the Relaychain runtime, so we make no claim about its source.
How a validator joins, per Enjin’s guide:
- Sync a full node.
- Call
author_rotateKeyson the node to generate session keys. - Bond at least 15,000 ENJ from a stash account, set the keys, set a commission and decide whether to allow nominations.
- Appear in the waiting list, then be elected by total stake.
To leave, the validator chills, waits up to 7 epochs (28 hours) to drop out of the active set, purges its session keys and unbonds.
The hardware Enjin documents (described as best practice and not a minimum; the page’s sample log is dated 15 August 2025): x86_64 with 4 cores at 3.4 GHz, 16 GB of DDR4 ECC memory and a 192 GB NVMe disk, tested on an Amazon m6id.xlarge. Enjin notes that validator clocks must stay reasonably in sync, and its security guide asks for a dedicated server, a non-root user, a firewall or VPN, monitoring and keys kept in a hardware module or cold wallet. We did not measure real disk use, so check the chain size before you size a disk. For the general role of a node, see blockchain validator node.
How to check a validator yourself
The public relay endpoint wss://rpc.relay.blockchain.enjin.io is Enjin’s official one. It is not an archive node, so it answers for recent blocks only. The script below reads the live set. Install @polkadot/api, save it as relay-stats.mjs and run it with Node (we used v24.19.0):
import { ApiPromise, WsProvider } from '@polkadot/api';
const url = process.argv[2] ?? 'wss://rpc.relay.blockchain.enjin.io';
const api = await ApiPromise.create({ provider: new WsProvider(url) });
const head = await api.rpc.chain.getHeader();
const at = await api.at(head.hash);
const era = (await at.query.staking.activeEra()).unwrap();
const validators = await at.query.session.validators();
console.log({
chain: api.runtimeChain.toString(),
block: head.number.toNumber(),
activeEra: era.index.toNumber(),
validatorCount: (await at.query.staking.validatorCount()).toNumber(),
activeValidators: validators.length,
blockTimeMs: api.consts.babe.expectedBlockTime.toNumber(),
blocksPerSession: api.consts.babe.epochDuration.toNumber(),
sessionsPerEra: api.consts.staking.sessionsPerEra.toNumber(),
bondingDurationEras: api.consts.staking.bondingDuration.toNumber(),
minValidatorBondENJ: (await at.query.staking.minValidatorBond()).toBigInt() / 10n ** 18n,
minPoolJoinBondENJ: (await at.query.nominationPools.minJoinBond()).toBigInt() / 10n ** 18n,
minPoolCreateBondENJ: (await at.query.nominationPools.minCreateBond()).toBigInt() / 10n ** 18n,
});
await api.disconnect();
The output on 24 October 2026, at block 17,827,504:
{
chain: 'Enjin Relaychain',
block: 17827504,
activeEra: 1222,
validatorCount: 27,
activeValidators: 27,
blockTimeMs: 6000,
blocksPerSession: 2400,
sessionsPerEra: 6,
bondingDurationEras: 28,
minValidatorBondENJ: 15000n,
minPoolJoinBondENJ: 1n,
minPoolCreateBondENJ: 2500n
}
Expect a few lines of warning from @polkadot/api about unknown signed extensions such as the fuel tank one; they come from the library and do not change the result. Use the wss:// form, since the https:// form cannot serve storage subscriptions. The numbers change each era, so yours will differ if you run it later.
The pending expansion steps are in the scheduler.agenda storage. Reading them there is how we found the three queued blocks. Reading older state, such as a bond from 2023, needs an archive endpoint. We used wss://archive.relay.blockchain.enjin.io, which we found by trying the obvious hostname and which Enjin’s documentation pages we read do not list.
Our Enjin validators
We run two validators on the Enjin Relaychain, both under the on-chain identity “Matrixed.Link” (judgement KnownGood). The identity sits on a parent account, enBYZMyMB16Su7rns6qKFQ4fLHgCa6fpURb2vFNHTetXXGNNa, and the two validators are its sub-accounts:
enAnwVcmPePdsyqeTP9mvULBqUTcmyfU9jAhFHcvuBD5Wan9V(sub-account “1”), the one our Enjin network page links to;enCYqG8iYjGeZ135nUWH6DpLUYdx7kYGASiheg16W164RZ747(sub-account “2”).
Both bonded on 15 December 2023 in era 178 and both entered the active set at block 2,895,933 on 21 December 2023, when the active era became 185 and the validator list grew from 13 to 15. The bond for the first validator is the utility.batchAll extrinsic 0x2047efc2f471416e77dbd376bd88e13b869a645c5bd665ed96e65f4818f9e530 in block 2,805,831; the second is listed in the sources below. Both were in the active set at block 17,827,249 on 24 October 2026, in era 1222 (both addresses appear in the session.validators list). For how the wider service works, see staking as a service, and for the same topic on other networks see our articles on IOTA validators and Polygon PoS validators. The basics of the role are in what a blockchain validator is.
Sources & References
Sources opened on 24 October 2026. Chain values are from Enjin’s public RPC endpoints.
- Enjin Docs, Enjin Blockchain infrastructure
- Enjin Docs, Enjin Relaychain
- Enjin Docs, Enjin Matrixchain
- Enjin Docs, Validator Staking
- Enjin Docs, Slashing
- Enjin Docs, Running a Validator
- Enjin Docs, Security Best Practices
- Enjin Docs, How to Stop Validating
- Enjin Docs, Enjin Blockchain Nodes
- Enjin Docs, Run a Relaychain Node
- Enjin Docs, Run a Matrixchain Node
- Enjin Docs, Joining Nomination Pools
- Enjin Docs, Staking Integration Guide
- Enjin governance proposals repository (GP-2026-08-03-01 for the validator expansion and GP-2026-10-12-01 for the v1.8.0 upgrade)
- Polkadot Docs, Proof of Stake consensus (the general BABE and GRANDPA idea; it describes Polkadot, not Enjin)
- Enjin Relaychain RPC:
wss://rpc.relay.blockchain.enjin.ioandhttps://rpc.relay.blockchain.enjin.io; archive state:wss://archive.relay.blockchain.enjin.io - Enjin Matrixchain RPC:
wss://rpc.matrix.blockchain.enjin.ioandwss://archive.matrix.blockchain.enjin.io - Referendum 10: approved in block 16,880,927 (
0x79d3277c3ab6858f4f1c965f41ba08d655c53f4b7679adf99677a304f6f6959b); preimage hash0x251c5d288190a8609609bfc1dcb9bf6b2b517b6a6b4e13bb12ef4475547d7c27; step 1 executed in block 16,950,720 (0xd86770508e254663833020398d6f74f94a5813202d6d99b1541e4a169391047f) - Our first validator’s bond: block 2,805,831 (
0x1697b20e6e9abb4afa81d71d82a13a67c50046a9185bdb6db40199d8a310e143), extrinsic0x2047efc2f471416e77dbd376bd88e13b869a645c5bd665ed96e65f4818f9e530 - Our second validator’s bond: block 2,805,822 (
0x30b5bf0f6b6c4182c11d6ed175e17fc1285c1fb1c0c1fcbc58575ee62acb6558), extrinsic0x8f1602979d00431ca7be060954144fe45395aaeda2c1456fdbf4f1145a59955f - First active block for both: block 2,895,933 (
0xa5c881e77377223baec1d58bbffbd3df5abc2a921cd79307573b3eac5746638d)
Work with Matrixed.Link
Matrixed.Link operates Chainlink oracle infrastructure, validator nodes and full-stack blockchain infrastructure for protocols and institutions that need institutional-grade reliability. Official Chainlink node operator running Data Feeds, CRE, SVR and Proof of Reserve. ISO/IEC 27001:2022 certified. AAA-rated provider on StakingRewards.
Contact Matrixed.Link to discuss validator and staking infrastructure for your protocol.