Documentation
Everything the protocol does, and why
Nexium Protocol is a fully onchain competition for 100 slots on Robinhood Chain. The trading fees of $NXM are routed to the contract, and only the wallets holding one of those 100 slots earn them. This page is the complete reference.
Start here
There are exactly 100 slots. The wallets in them are the Active Set, and they are the only ones earning Protocol Revenue. Nobody is given a slot. While one is free, anyone can take it by burning NXM. Once all 100 are taken, the only way in is to take one from somebody.
No node is permanent.
Four things cost NXM, and all of it is burned to a dead address — there is no treasury on the other side: seating a Node, upgrading Power, upgrading Entropy, and opening a Challenge. That is the loop: trading generates fees, fees make slots worth holding, competition for slots burns supply.
How to play
- Get NXM and approve the protocol. Buy on ponsfamily.com, then hit Approve NXM spending once in the Operator console. Every action burns NXM from your wallet, so the protocol needs an allowance.
- Take a slot. If any of the 100 are free, click it and seat your Node. If they are all taken, you have to Challenge your way in.
- Upgrade. Power is the cheap stat that sets your baseline odds. Entropy is the rare one that bends how much randomness decides the fight. Both persist even if you are displaced, so nothing you burn is ever wasted.
- Claim. Revenue accrues to your Node while you hold a slot. Nothing is pushed to you — press Claim Protocol Revenue whenever you want. It is yours whether you are still seated or not.
- Defend. After 24 hours of immunity, anyone can come for your slot. Upgrading is what keeps it.
Power & Entropy
Costs are quoted as a share of total supply, not as fixed token amounts, so they track the market cap on their own. With the 1,000,000,000 supply, the numbers below are exact.
| Stat | Cost of level n → n+1 | Level 1 | Max level | Total to max |
|---|---|---|---|---|
| Power | 2,000 × (n+1)² | 2,000 NXM | 50 | 85,850,000 (8.6%) |
| Entropy | 60,000 × (n+1)³ | 60,000 NXM | 10 | 181,500,000 (18.2%) |
Power is worth 100 + 50 × level, so it runs from 100 at level 0 to
2,600 at level 50. Because the value rises linearly while the price rises
quadratically, the returns diminish hard on purpose:
| Power level | Value | Total burned | Share of supply |
|---|---|---|---|
| 5 | 350 | 110,000 | 0.011% |
| 10 | 600 | 770,000 | 0.077% |
| 20 | 1,100 | 5,740,000 | 0.574% |
| 30 | 1,600 | 18,910,000 | 1.89% |
| 50 | 2,600 | 85,850,000 | 8.59% |
Levels 25 → 50 cost 7.8× everything before them and buy only 1.9× the Power. That is what stops the biggest wallet from simply ending the game, and it is why a smaller Node is often better off buying Entropy than chasing Power.
How a fight is decided
Power sets the baseline. Entropy bends it. Nothing else is involved.
base = attackerPower / (attackerPower + defenderPower)
bend = (attackerEntropy − defenderEntropy) × 5% → capped at ±50%
final = base + (50% − base) × bend
final is then clamped to [5%, 95%]
The bend pulls the fight toward a coin flip when you have more Entropy than your opponent, and away from it when you have less. That cuts both ways, which is the whole point:
- Underdog with Entropy: you cannot out-muscle them, so you drag the fight to 50/50 and take your chances.
- Favourite with Entropy: you are sabotaging yourself. Chaos pulls you down toward 50/50 too.
- Favourite with low Entropy: order. The fight resolves closer to what raw Power already says.
The 5% / 95% clamp is absolute. The strongest possible Node can still lose to a fresh wallet, and the weakest attacker is never mathematically excluded. Try the numbers yourself in the Challenge simulator, which runs the same formula as the contract.
The Challenge flow
A Challenge decides real money, so the roll must not be steerable by either side. It settles in two transactions against a block hash that did not exist when you committed.
- Commit. Your browser generates a random secret and sends only its hash. The Challenge fee burns now, win or lose.
- Wait two blocks. The roll will be settled against the hash of the block two ahead of your commit — a number nobody can know yet.
- Reveal. You send the secret. The contract mixes it with that block hash, rolls, and either seats you or does not. The result, including the exact number rolled and the chance you needed, is shown on screen.
A newly seated Node is immune for 24 hours, including one that just won a Challenge. Nothing can touch it in that window.
Protocol Revenue
ETH arriving at the contract is split 20% to the fee recipient, 80% across the Active Set. The 80% is divided by the number of Nodes actually seated, not by 100 — an empty slot is not a shareholder.
| Slots filled | Each Node's share of 1 ETH |
|---|---|
| 10 | 0.0800 ETH |
| 25 | 0.0320 ETH |
| 50 | 0.0160 ETH |
| 100 | 0.0080 ETH |
Being early, while the set is thin, pays far more per Node — and dilutes as the set fills. If revenue arrives when nobody is seated, it is held and released to the first Node in, never lost or burned.
Earned for the time you actually held the slot
Your reward debt is snapshotted the moment you are seated and settled the moment you are displaced. Revenue that arrived before you sat down is not yours; revenue that arrives after you are gone is not yours. Whatever you earned in between stays claimable forever, even after you lose the slot.
Rewards are pull-based: nothing is ever pushed to your wallet. That is deliberate — iterating 100 wallets on every fee payment would be prohibitively expensive, and a single wallet that could not accept a transfer would jam the whole distribution.
Where the fees come from
$NXM trades on ponsfamily.com, which charges a fee on every buy and sell and credits the creator's share to a shared escrow. The Nexium contract is set as that creator fee recipient, so the fees accrue to the protocol rather than to a person.
pons does not push fees out — they have to be pulled with a claim().
The protocol does that on its own: seating, claiming, leaving and
resolving a Challenge each try to pull pending fees in first, at most
once an hour. Nobody has to run a bot, and there is no admin key involved. Anyone
impatient can also call harvest() directly at any time.
What the dev can do
The owner's entire surface is fee routing. Six functions, nothing else.
| Function | Effect |
|---|---|
setNxm | binds the token, freezes the cost scale — one shot ever |
setFeeRecipient | who receives the 20% fee share |
setFeeSource | which escrow fees are pulled from |
setAutoHarvestInterval | how often play pulls fees in |
transferOwnership / renounceOwnership | hands over or destroys the above |
The most the dev can ever extract is the 20% fee share. ETH leaves
the contract through exactly two functions: claim(), which pays the
caller out of the caller's own ledger, and claimFeeRecipient(), which
pays out a balance that only ever grows by 20% of incoming revenue. No path
releases the Active Set's 80% to anyone but the Nodes that earned it.
The owner cannot seat a Node, evict one, grant immunity, influence
a roll, change any cost, mint rewards, pause anything or swap the token. Every rule
that decides an outcome is a compile-time constant, and there is no proxy,
delegatecall or selfdestruct — the code cannot be replaced
after deployment.
Risks
Stated plainly, because you are putting money into this.
- The contract is not audited. It has an extensive test suite, including tests against the real pons escrow on a fork of mainnet, but no third party has reviewed it.
- Randomness is commit–reveal, not a VRF. It resists the challenger and an ordinary block producer. A party that could both order transactions and withhold blocks across the two-block gap would have more leverage than the model assumes. On a chain with a centralised sequencer, that party is the sequencer.
- The launchpad can redirect creator fees. The pons factory owner can change a launch's fee recipient after a 3-day timelock. That is upstream of this contract and nothing here can prevent it.
- Every Challenge is a real loss if you lose. The fee burns either way, and the odds are never better than 95%.
- Your share dilutes as the set fills. Per-Node revenue at 100 seated Nodes is a tenth of what it is at 10.
Addresses
| Network | Robinhood Chain · chain ID 4663 |
| Nexium Protocol | |
| $NXM token | |
| Burn address | 0x000000000000000000000000000000000000dEaD |
Everything the game depends on is readable onchain: the 100 slots, each Node's Power and Entropy, every Challenge result, and the reward ledger. The frontend only reads state and signs transactions — if this site disappears, the protocol does not notice.
FAQ
- Do I lose my stats when I am displaced?
- No. Power and Entropy belong to your wallet permanently. You can walk straight back in with the same build.
- Do I lose unclaimed revenue when I am displaced?
- No. It is settled the moment you leave and stays claimable forever.
- Can I hold more than one slot?
- No. One slot per wallet, and a wallet already in the Active Set cannot open a Challenge.
- Can I leave voluntarily?
- Yes, any time. Leaving settles what you earned and frees the slot.
- What happens if my Challenge expires?
- The fee stays burned and the slot is untouched. Drop the expired Challenge and you can commit again.
- Why did my Challenge revert?
- Most often the defender was displaced by someone else while yours was in flight and their replacement is immune. Wait for the window to close, drop it, and pick a new target.
- Does anyone have to run a bot for fees to arrive?
- No. Ordinary play pulls them in, and
harvest()is open to anyone. - What happens when NXM is burned?
- It goes to a dead address nobody holds the keys to. It is out of circulation permanently.
Source, tests and the deployment guide live in the project repository. Read the contract before trusting it with anything you cannot lose.