Docs

How the
game works

Every rule on this page is enforced by the contracts on Robinhood Chain. There is no server that could bend one.

01

The chain

Pokemonz.fun runs on Robinhood Chain. Every Pokemon is an ERC-721 token in your wallet. Every mint, team change, battle and trade is a contract call, and every result is settled by the contract itself. Gas is paid in ETH.

Nothing about your Pokemon lives off-chain. Their species, level, stats, moves and history are read from the contracts each time a page loads, which is why the site works with any wallet and needs no account.

A Pokemon can be transferred, sold or sent to another wallet once it is finalized. Until then it stays put.

02

Minting

Mint feeread from the contract
Mintable species59of 151base stage, BST ≤ 400
Starting level5with up to 4 moves
Supply∞no cap

Who can be minted

Only the first form of an evolution line can be minted, and only when its base stat total is 400 or lower. That is 59 of the 151 Kanto species. Everything stronger is earned by evolving what you minted. Ponyta is the single exception above the cap, because nothing evolves into it.

Species marked Wild or Legendary in the Pokedex cannot be obtained yet.

Two transactions

Minting takes two steps. The first mints the Pokemon with its species, level 5 and its starting moves: up to four moves from its learnset that it knows at level 5 or below. The second, finalize, reveals its nature and IVs.

Finalize draws from a block hash that did not exist when you minted, so nobody, including you, can choose a Pokemon’s stats. Anyone may call finalize on any Pokemon, and the game runs a keeper that does it for you within a few minutes.

An unfinalized Pokemon cannot battle, be listed, or be transferred. Its nature and IVs are fixed forever once finalize lands.

The fee

The mint fee is shown live on the Mint page. The game owner can change it, and it can never exceed 0.05 ETH.

03

Stats

Every Pokemon has six stats: HP, Attack, Defense, Sp. Atk, Sp. Def and Speed. They are never stored. They are recomputed from five inputs each time they are read, which is why evolving changes them instantly.

InputRangeWhere it comes from
Base statsper speciesThe real Kanto values for the species. Change when you evolve.
IVs0 – 31 eachRolled at finalize. Fixed for life.
EVs0 – 252 each, 510 totalEarned by winning battles. Start at zero.
Nature1 of 25Rolled at finalize. One stat +10%, one stat −10%. Five natures are neutral. Never touches HP.
Level5 – 100Rises with experience. Never falls.

The formulas

Every division rounds down.

HP = (2 × Base + IV + EV ÷ 4) × Level ÷ 100 + Level + 10
Other = ((2 × Base + IV + EV ÷ 4) × Level ÷ 100 + 5) × Nature

Experience

Level N needs N³ total experience. Level 10 is 1,000 XP, level 50 is 125,000, level 100 is 1,000,000. Level-ups happen on their own when a battle pays out.

04

Moves

A Pokemon carries four move slots. The move pool is the Generation 1 list, trimmed to the 110 moves the battle engine can express. Each move has a type, a category (Physical, Special or Status), power, PP, priority and one effect.

Every move hits. Accuracy is not part of the engine, so a 70-accuracy move in the games is a 100% move here.

Effects

EffectWhat it does
BurnChance to burn. A burned Pokemon loses 1/16 of its max HP each turn and its physical Attack is halved.
PoisonChance to poison. Loses 1/8 of max HP each turn.
ParalyzeChance to paralyze. Speed halved and a 25% chance to lose each turn.
SleepChance to put the target to sleep for 1 to 3 turns.
FreezeChance to freeze. A frozen Pokemon loses its turn, with a 10% chance to thaw each turn.
ConfuseChance to confuse. A confused Pokemon has a 33% chance each turn to hit itself for 1/8 of its max HP instead of moving.
HealThe user recovers a percentage of its max HP.
RecoilThe user takes a percentage of the damage it dealt.
High critCritical hit chance of 1 in 8 instead of 1 in 16.

A Pokemon holds one status at a time. A status move still lands its effect even when it deals no damage, unless the target is immune to its type.

Moves that only raise or lower stats, such as Growl, Leer, Swords Dance and Agility, are not in the game. Neither are held items, abilities, or switching mid-battle.

PP and Struggle

Each use of a move spends one PP for that battle. When every slot is out of PP the Pokemon uses Struggle: a Normal-type, 50-power hit that costs the user a quarter of its max HP. If the slot in your plan is empty or out of PP while another slot still has PP, that turn is lost.

Choosing moves

Levelling up does not teach moves on its own. On the Team page you can set any four moves your Pokemon has qualified for: moves in its current species’ learnset whose learn level is at or below its level. A Pokemon keeps the moves it has until you change them.

05

Battles

Team3finalized Pokemon you own
Stake0casual: free beyond gas. Ranked: a chosen tier — see §11
Open for1hourthen it expires
Reveal within1hourof the join

A battle is three Pokemon against three. Both sides commit a plan, both reveal it, and the contract fights the whole battle in a single transaction. Casual battles have nothing to wager — you play for experience, EVs, stones and the win on your record. Ranked battles escrow a stake from both sides in ETH; the winner takes the pot minus a 5% fee. See Ranked battles (§11) for the tiers and the full payout.

Creating and joining

You need a team of three finalized Pokemon you own, no duplicates. A battle stays open for one hour. If nobody joins, it expires on its own. Any unjoined battle — casual or ranked — can be cancelled by its creator before then; a casual cancel has nothing to refund, a ranked cancel refunds the creator’s stake in full.

You cannot join your own battle.

Level bracket

A level 5 starter never meets a level 60 Charizard. To join, the average level of your team must be within a gap of the creator’s team average. The gap widens the longer the battle has been waiting, and never past 30.

Battle has been open forAllowed level gap
Under 2 minutes5
2 to 10 minutes15
More than 10 minutes30

Team average is the three levels added and divided by three, rounded down, read live at the moment you join. If the creator’s team has levelled up since they created the battle, the higher of the two numbers is used.

The plan

When you create or join, you choose a move slot for each of your three Pokemon, on turns 1, 2 and 3. Whichever Pokemon is in play uses its own plan for the turn the battle is on. From turn 4 on, the active Pokemon repeats slot 1. When a Pokemon faints the next one in your team order steps in. You cannot switch by choice.

Your plan is hashed together with a secret before it goes on-chain, so your opponent cannot read it. After the second trainer joins, both sides have one hour to reveal. Once both have revealed, anyone can resolve the battle.

Use a fresh secret for every battle. The battle’s randomness is built from both trainers’ secrets. A reused secret hands your opponent the fight.

Timeouts and forfeits

After the reveal deadlineResult
You revealed, your opponent did notYou win by forfeit. No rewards are paid.
Neither side revealedDraw. No rewards.
Both revealedNo timeout. The battle is resolved as fought.

Your team is locked

When you commit, the contract fingerprints each Pokemon’s species, evolution stage and moves. If any of those change before the battle resolves, you forfeit. Levelling up or gaining EVs in another battle is fine.

06

The fight

The battle is resolved turn by turn by the contract. Every random roll comes from a seed built from both trainers’ secrets, so neither side can steer it.

Turn order

  1. 01Priority. The move with the higher priority goes first.
  2. 02Speed. Otherwise the faster Pokemon goes first. Paralysis halves speed.
  3. 03Tie. Equal speed is a coin flip.

Damage

Base = ((2 × Level ÷ 5 + 2) × Power × Attack ÷ Defense) ÷ 50 + 2
  1. 01Category. Physical moves use Attack against Defense. Special moves use Sp. Atk against Sp. Def. Status moves deal no damage.
  2. 02Type. The 18-type chart applies. Against two types the multipliers stack, so the range is ×0, ×¼, ×½, ×1, ×2 and ×4. An immune target takes nothing and no effect lands.
  3. 03STAB. A move that matches one of the attacker’s types deals ×1.5.
  4. 04Critical hit. 1 in 16 chance for ×1.5. High-crit moves roll 1 in 8.
  5. 05Spread. A random factor between 85% and 100%.
  6. 06Floor. A hit that connects always deals at least 1.

A burned attacker’s physical Attack is halved before the formula runs.

Each turn

A sleeping, frozen or paralysis-struck Pokemon loses its action. A confused one may hit itself. Then the move resolves, recoil or healing applies, and at the end of the turn burn and poison take their toll from both active Pokemon. Fainted Pokemon are replaced in team order.

How it ends

OutcomeWhen
WinThe other team has no Pokemon standing.
DrawBoth teams fall on the same turn, or the battle reaches 100 turns.

A draw pays nothing to either side.

07

Rewards

Only a battle that is actually fought pays out. Forfeits and draws pay nothing.

Experience

Each Pokemon on the losing side contributes to a pool based on its species and level. The pool is split equally between the winning Pokemon that are still standing. A winner that fainted earns nothing.

Each loser adds BaseExp × Level × 9 ÷ 14 where BaseExp = base stat total ÷ 5

Beating stronger, higher-level Pokemon pays more. Level-ups apply immediately.

EVs

Each defeated Pokemon grants 2 EVs in its own highest stat to every Pokemon on the winning team, up to 252 per stat and 510 in total.

Stone drops

Every fought-out win has a 25% chance to drop an evolution stone, one of the five kinds at random. The roll comes from the battle seed, so nobody can influence whether a stone drops or which one.

08

Evolution

A line has up to three forms. Evolve from the Pokemon’s own page. There are two ways.

MethodRequirementNotes
By levelReach the species' evolution levelKadabra, Machoke, Graveler and Haunter, which evolve by trade in the games, evolve at level 37 here.
By stoneHold the matching stoneAny level. The stone is consumed. Eevee branches into Flareon, Vaporeon or Jolteon by the stone you use.

What changes

The species and its base stats, so every stat rises at once. Level, experience, IVs, EVs and nature carry over unchanged.

Moves are kept exactly as they were. Evolving never rewrites them, so visit the Team page afterwards to pick from the new species’ learnset.

Evolving a Pokemon that is committed to an open battle forfeits that battle. Wait for it to resolve first.
09

Stones

Five kinds of evolution stone exist: Fire, Water, Thunder, Leaf and Moon. They are earned only by winning battles.

Stones belong to your wallet, not to a Pokemon, and they are not tokens. They cannot be traded, sold or sent to another wallet. Your inventory is shown on the Collection page and holds up to 255 of each kind.

10

Market

Market feeread from the contract
ListingFixedpricein ETH
CustodyYoursthe Pokemon stays in your wallet

Any finalized Pokemon can be listed at a fixed ETH price. Listing is non-custodial: the Pokemon stays in your wallet with an approval for the market, and it only moves when someone buys it. You can change the price or delist at any time.

The buyer pays the exact listed price. The market keeps its fee and the rest goes to you. The fee is shown live; the game owner can change it, and it can never exceed 10%.

If a listed Pokemon is transferred or its approval is removed, the listing dies with it. A buyer’s transaction is guarded against a price change made after they clicked, so nobody pays more than the price they saw.

11

Ranked battles

Tiers4plus casual, which stakes nothing
Fee5%on a decided pot only
On a draw0%both stakes refunded in full
On cancel0%refunded — never a draw

Ranked is the same commit-reveal-resolve battle as casual, with one difference: both trainers put ETH behind the result. Pick a stake tier when you create a battle. Whoever joins puts up the identical amount — never a tier they choose themselves.

Stakes and payout

TierStake per sidePotFeeWinner takes
Tier 10.001 ETH0.002 ETH0.0001 ETH0.0019 ETH
Tier 20.004 ETH0.008 ETH0.0004 ETH0.0076 ETH
Tier 30.02 ETH0.04 ETH0.002 ETH0.038 ETH
Tier 40.1 ETH0.2 ETH0.01 ETH0.19 ETH

The fee comes out of the pot only when the battle is actually decided by a win or a forfeit. A draw refunds both stakes in full, and a battle its creator cancels before anyone joins refunds the creator in full — neither one pays the fee.

Rating

Every wallet has a rating, starting from the same default the first time it finishes a ranked battle. A win moves it up, a loss moves it down, a draw leaves it where it was. The casual PvP/PvE record on your collection page is separate and unaffected — ranked keeps its own win/loss/draw count next to it.

Rating bracket

The same widening-band idea as the level bracket, applied to rating instead: a just-opened ranked battle only admits a close rating, and the gap widens the longer it sits unjoined. This is separate from the level bracket, which still applies too — both have to pass to join.

Cancelling is not new to ranked battles — any unjoined battle can be closed by its creator before it expires. Ranked just means there is a stake to refund when it happens.

If a payout cannot be delivered

A resolve or a timeout tries to send the winner their payout directly. If that push fails — a wallet that cannot receive ETH, for instance — the amount is held for that wallet to claim instead of being lost, with its own claim button wherever it is owed.

12

Wild encounters

Wild encounters are the only way to catch the fifteen Pokemon that cannot be minted directly. Pick a team of three from your own Pokemon and start an encounter.

Starting

  1. 01Commit your team. The contract records the block your encounter started on.
  2. 02Wait for the chain. The wild party is derived from a block that has not been mined yet, so there is a short wait — about half a minute — before it can be revealed.
  3. 03See the party, then move. Once the wait clears, the wild party is shown before you commit your moves, so you are choosing moves against a party you have actually seen, not guessing.

Forfeiting

If you do not like the matchup, or you simply do not resolve in time, you can walk away. A forfeit closes the encounter as a loss — no experience, no stone, no catch — and starts a 10-minute cooldown before you can start another one.

Winning

RewardRule
ExperienceHalf of what the same win pays in a trainer battle.
Stone drop10% chance, same five kinds as PvP.
CatchIf the party includes a species you cannot mint, you catch the first one, at the level it fought at. At most one per encounter.

Species you can already mint are never caught this way — only the wild-only ones.

Changing your team — evolving one of the three, or anything else that changes what they are — after you start an encounter forfeits it. The fight is built live from your Pokemon, so the contract cannot tell the difference between a coincidence and tampering, and it always resolves it as a loss.
13

Legendaries

Five legendary Pokemon exist, and the only way to face one is to have earned it in trainer battles first.

Unlocking a fight

You need 25 trainer-battle wins that were actually fought out — a forfeit or a walkover does not count toward this. Once you qualify, you can challenge any legendary you have not already caught.

The fight

The legendary fights alone, at level 60, with its four strongest moves. Your team is the three Pokemon you bring, same as any battle.

OutcomeResult
WinThe legendary is caught at level 50.
Loss, draw, forfeit, or letting the window run outNothing is caught. A 24-hour cooldown starts before you can challenge any legendary again.

One of each, forever

Once you catch a legendary, that species is closed to you permanently — even if you later sell or transfer it. There is no experience and no stone drop from a legendary fight; the legendary itself is the only reward.

The cooldown applies to all five legendaries at once, not just the one you fought.