How it works

Every number on this page comes out of the contracts. Where something is an estimate or a known rough edge, it says so.

The growth clock

Each plant stores the timestamp it was minted at. Its stage is derived from how long ago that was — nothing is stored per stage, and no transaction advances it. Stage k begins at:

T(k) = k · (3k + 7) / 2 growth units

One unit is an hour on mainnet, which gives thresholds at 0, 5, 13, 24, 38, 55, and 75 hours. k(3k + 7) is always even, so the division is exact — there is no rounding anywhere in the schedule and no accumulated drift.

#Visual · Jade SprigStageLengthAge at entry
00
Jade Sprig at Sprout stage
Sprout5h0h
01
Jade Sprig at Seedling stage
Seedling8h5h
02
Jade Sprig at Vegetative stage
Vegetative11h13h
03
Jade Sprig at Budding stage
Budding14h24h
04
Jade Sprig at Blooming stage
Blooming17h38h
05
Jade Sprig at Fruiting stage
Fruiting20h55h
06
Jade Sprig at Mature stage
Mature75h

Timing uses block.timestamp, never block.number. On an Arbitrum Orbit chain the block number is an approximation of the L1 block and moves in jumps, which would make a block-based clock visibly wrong. Testnet deploys compress the unit to minutes so the whole curve can be watched in under an hour; the frontend reads the unit from the contract rather than assuming it.

Species and rarity

44 species across 8 botanical families. The counts below are exact, not probabilities — the distribution is fixed by construction, so the collection cannot come out lopsided.

TierSpeciesTokensShareBase weight
Common162,22049.95%100
Uncommon121,11625.11%130
Rare866514.96%175
Epic53568.01%250
Legendary3871.96%400
Total444,444100%

Why the counts are exact

Species assignment is a permutation, not a dice roll. Each token's position in the collection is computed as:

rank = (tokenId · 3571) mod 4444

3571 is coprime with 4444 (= 2² · 11 · 101), which makes the mapping bijective: every rank is hit exactly once. The rank is then walked into the cumulative species table, so each species gets precisely its allotted count. No storage is written and no seed is involved.

No reveal, and what that costs

There is no germinating phase and no second transaction. Species is assigned in the mint itself, so a plant is finished art — and stakeable at its real rarity weight — in the block it is bought. That also means the map above is public before a single plant is sold, so specific ids can be sniped by watching totalMinted. The trade is deliberate: in exchange there is no seed to trust, nothing to commit, withhold, swap or time. Removing the snipe would need a randomness beacon this chain does not have.

Succulents & Cacti

Thick cotyledons, no true leaves

Jade Sprig · Barrel Cactus · Living Stone

Ferns

Coiled crozier

Lady Fern · Maidenhair · Staghorn

Grasses & Grains

Single monocot blade

Common Wheat · Black Bamboo · Foxtail Barley

Flowering Herbs

Paired dicot cotyledons

Garden Sage · Chamomile · Corn Poppy

Vines & Climbers

Hooked hypocotyl

English Ivy · Passionflower · Jade Vine

Tropicals & Palms

Furled spear leaf

Parlor Palm · Areca Palm · Monstera

Carnivorous

Miniature rosette

Common Sundew · Venus Flytrap · Tropical Pitcher

Trees & Bonsai

Woody seedling with seed coat

Field Maple · Ginkgo · Pine

Farm weight

tokenWeight = rarityWeight
userWeight  = Σ tokenWeight
userShare   = userWeight / totalWeight

That is the whole formula. A plant's weight is its rarity weight — a Legendary is 400, a Common is 100 — and nothing else touches it. Not the growth stage, not how many plants you hold, not how long the position has been open. A plant earns exactly the same in its first hour staked as it does in its last.

Growth still happens: the art and the metadata advance through all seven stages exactly as before. It just does not pay differently. Splitting a position across wallets is likewise neutral — the sum of the parts is the sum of the parts.

If every plant were staked at once, total weight would be 607,255. The rates below are computed against that maximum, which makes them floors — with fewer plants staked the same pool is divided by less weight, so everyone staked earns more.

TierWeightPer hourPer day
Common10070.441,690.67
Uncommon13091.582,197.87
Rare175123.282,958.67
Epic250176.114,226.67
Legendary400281.786,762.67

$BROKERPLANT per staked plant, assuming all 4,444 plants are staked.

The emission schedule

308,000,000 $BROKERPLANT is released at a flat rate across 30 days — no halving, no epochs, no taper. That works out to 10,266,666.67 a day, or 427,777.78 an hour, split across whatever is staked at the time.

Rewards accrue from a closed-form cumulative emission function evaluated at the current timestamp rather than by looping. It is O(1), it cannot drift, and it stops on its own at exactly 308,000,000 tokens. Emission during windows when nothing was staked is never minted to anyone and stays locked in the farm — the owner cannot sweep the reward token, with no exception and no timelock.

Marketplace refresh

Passive growth has a real consequence: no transaction fires when a plant advances, so marketplaces have nothing to react to and will keep showing a stale image. The contract implements ERC-4906, so a batch metadata update can be emitted at major stage boundaries and metadata can be refreshed manually from OpenSea. This site queries the contract on every load, so what you see here is never behind.