What B20Farms is
Three contracts on Base. $GRASS, a B20 token. Farm, the 2,048-plot map, the seasons and their pots. Windmill, the Uniswap v4 hook that pays the Farm 2% of every trade's ether. A fourth, the Launcher, exists only for the one transaction that creates all of them.
The map
Plots 0 to 2047, 64 wide and 32 tall: plot n is column n % 64, row n / 64. A plot belongs to whoever has a crop growing on it, until it is harvested or withers.
Seeds and timing
crop grows ripe window seed (GRASS) score 0 Wheat 6 h 12 h 5,000 x1.00 1 Blueberry 24 h 24 h 20,000 x1.15 2 Pumpkin 72 h 72 h 60,000 x1.35 3 Golden tree 168 h 168 h 200,000 x1.60
plant(plot, crop) takes the seed (approve the Farm first), burns half and puts half in the current season's Silo. harvest(plot) scores seed × multiplier × (1 + 5% per same-crop neighbour). plantMany and harvestMany do many at once.
Seasons and claims
Season n runs from GENESIS + n × 7 days for seven days. Ether from the Windmill goes to the pot of the season it arrives in; seeds go to the Silo of the season they are planted in; scores count in the season they are harvested in. After a season closes, claim(n) pays your share of its pot and Silo: pot × your score / total score. rollover(n) moves a season with no harvests into the next. expire(n) sweeps a season's unclaimed shares into the current season 26 seasons after it closed.
The launch transaction
The Launcher's constructor asks Base's B20 factory for $GRASS with no admin, and during creation fixes the cap, mints the whole supply to itself, and grants the burn role to the Farm's address. Then it deploys the Farm, places the Windmill on an address carrying the hook flags 0x20CC, opens the pool, adds full-range liquidity, and sends the LP position and leftovers to the deployer. All in one transaction, or none of it.
Measured
Simulated on live Base with eth_simulateV1 (the real B20 factory and Uniswap v4), and the Farm's books tested over a 600-move random game with solvency checked throughout:
launch, all of it ~3,354,000 gas plant ~132,000 gas harvest ~105,000 gas claim ~116,000 gas dust after every claim: 8 wei, 9 GRASS-wei
Limits, plainly
- No trading, no pot: the ether comes only from the windmill's 2%.
- A crop you forget withers, and its seed is gone.
- Anyone can plant on any free plot; the map can fill up.
- The launch liquidity is an ordinary Uniswap position its holder can remove.
- No owner means no upgrades and no bug fixes.