// CITY BUILDER · ETHEREUM MAINNET · NFT

Mint a plot.
Build a city.
The NFT is the score.

bitsLAND is a fully on-chain pixel-art city builder. Every action you take in the game upgrades the NFT itself: it earns XP, accumulates Prestige in ETH, unlocks achievements, and visibly evolves through six trait axes. The art is generated by the contract as an animated SVG, so what you see in your wallet is always the live state of your plot.

10,000 plots 1 free per wallet 0.001 ETH paid mint First 200 = Founders
10,000plots, fixed supply
200founders, plots 1-200
50buildings, 5 tiers
32on-chain achievements
// THE ART IS LIVE

Eight examples, fully rendered on-chain.

These are not mockups. They are running the same SVG renderer that the contract emits. Every NFT you mint will look like one of these on day one and look very different six months later as your city grows, your prestige climbs, and your achievements pile up.

// HOW IT WORKS

Three contracts, one closed loop.

You own the NFT. The game contract reads from it on every move. Every paid action flows to treasury and bookkeeps Prestige back onto your NFT. The renderer pulls it all together into an animated, mutable image you can see on any marketplace.

01

Mint your plot

First per wallet is free. After that, 0.001 ETH each. Wallet cap is 10. Genesis traits roll at mint (Climate, Terrain, Aura, Generation, Founder flag) and seal forever.

BitsLand.mintFree() / mintPaid(qty)
02

Register and build

Call register() once to activate your plot. Place buildings from a catalog of 50 (residential, commercial, industrial, services, utilities, parks). Each costs a small amount of ETH that scales with tier.

BitsCore.placeBuilding(plotId, x, y, id)
03

Tick and survive

Call tick() to refresh population, roll the disaster RNG, and award XP. Disasters damage buildings; repair them with another small ETH payment. The mood of the day modifies happiness from minus ten to plus twelve percent.

BitsCore.tick(plotId)
04

Watch the NFT evolve

Every ETH wei spent records as Prestige on your NFT. Crossing thresholds (0.001 / 0.01 / 0.05 / 0.1 / 0.5) bumps it from Bronze through Mythic, each tier painting a brighter border in the rendered art and boosting happiness.

tokenURI() renders it all on-chain
// UTILITY 01 / 06

Genesis traits — rolled once, sealed forever.

Five independent axes are determined at the moment of mint by hashing your address, the plot ID, and the block hash. Once written to the contract they cannot be re-rolled. Some of them are pure cosmetic flavor (the climate dictates the weather effect that drifts across your plot); some change the math (an aura discount or a founder bonus); all of them are permanent.

// CLIMATE · 6 options

The weather your plot lives under.

The climate sets the animated weather overlay (sand drift, snowfall, rain, ash, neon glow) and modifies happiness by a small fixed amount each tick. Volcanic plots pay a steeper happiness penalty but earn a "Resilient" status flag faster. Cyber plots get the highest bonus but cost more in disaster repairs.

ClimateHappiness modVisual
Temperate+5%clean sky
Desert-5%sand drift
Polar-5%snowfall
Tropical+5%rain streaks
Volcanic-10%rising ash
Cyber+10%neon glow
// AURA · 8 options

A 25% discount on one building category.

The aura is a glyph that rotates in the corner of your NFT and unlocks a permanent 25% discount on the ETH cost of one category of building. Trade gets cheap commercial buildings; War gets cheap utilities; Faith gets cheap parks. Match your strategy to your aura and you'll build a sprawling city for less.

AuraDiscount onGlyph
Orderresidentialring
Chaosindustrialtriangle
Tradecommercialdiamond
Warutilitysquare
Faithparksstar
Techservicescross
Wildparkstriangle
Voidnonepierced disc
// TERRAIN · 6 options

The ground your city sits on.

Terrain is rendered in the bottom third of the SVG and adds a small terrain layer (a shimmering coastline, sparse forest pixels, a drifting cloud beneath floating cities). It feeds into the rarity calculation that marketplaces will compute when ranking your plot.

  • Flat — the default grass landscape
  • Hilly — mixed grass and dirt, rougher contour
  • Coastal — water-edge with animated shimmer
  • Forest — sparse green pixel-trees along the horizon
  • Wasteland — dirt-tone ground, no vegetation
  • Floating — night-sky ground with clouds drifting underneath
// GENERATION & FOUNDER

When you joined matters.

Plots 1 through 200 are the Founders: a permanent +5% happiness multiplier and a yellow tape marquee around the rendered art with "FOUNDER" embossed across the top edge. Founder plots are visibly distinct on every marketplace listing.

Beyond the Founder set, every plot also carries its Generation:

GenerationPlot IDs
Gen 1#1 to #1,000
Gen 2#1,001 to #5,000
Gen 3#5,001 to #10,000

Generation is a soft signal — it doesn't change the math, but it's a permanent marker of when you joined and surfaces on the NFT metadata.

// UTILITY 02 / 06

Level + XP — a real climb, not a daily check-in.

Every game action grants experience to your NFT. XP is stored on-chain. Your level is computed live as floor(sqrt(xp / 50)), which means each level costs more than the last. Levels gate which tiers of building you can place, so the climb directly determines how much of the catalog you can access.

// XP GRANTS

Where the experience comes from.

  • Calling tick()+10 XP
  • Placing a tier-N building — +5×N XP
  • Repairing a damaged building — +3 XP
  • Demolishing — +1 XP

So a typical play session of 5 ticks plus 10 mixed-tier placements earns roughly 50 to 150 XP, depending on what tiers you place. The XP bar on your NFT visibly fills toward the next level threshold each session.

// LEVEL GATES

What each level unlocks.

LevelCumulative XPUnlock
150tier-1 buildings (default)
51,250tier-2 buildings
105,000tier-3 buildings + Scholar
1511,250tier-4 buildings
2531,250Pixelmid + Sage
50125,000Master achievement
// UTILITY 03 / 06

Prestige — every ETH spent makes the NFT worth more.

This is the loop that solves the "why pay for actions" problem. The treasury receives 100% of the ETH you spend on every paid action. The same wei amount is recorded as Prestige on your NFT. That number is permanent and visible to anyone who looks at your plot. Crossing a threshold bumps you up a tier; each tier paints a brighter outer border on the rendered SVG and adds to the happiness multiplier.

None< 0.001 ETH
Bronze0.001+ ETH
Silver0.01+ ETH
Gold0.05+ ETH
Diamond0.1+ ETH
Mythic0.5+ ETH
// HOW IT ACCRUES

Spending feeds Prestige, never burns it.

When you call placeBuilding with 0.0002 ETH attached, the BitsCore contract forwards every wei to treasury and calls BitsLand.addPrestige(plotId, 0.0002 ETH). The two events are atomic. There is no path where the ETH leaves your wallet without crediting your NFT.

Prestige is stored as uint128 prestigeWei on the NFT. It only ever increases. Selling the NFT transfers the Prestige to the buyer along with it.

// WHAT EACH TIER GIVES

Stacking ETH stacks the visuals.

TierBorder colourAchievement
Bronzewarm copper, pulsingBronze Prestige
Silvercool grey, pulsingSilver Prestige
Goldyellow, brighter pulseGold Prestige
Diamondcyan, fast pulseDiamond Prestige
Mythicmagenta, fastest pulseMythic Prestige
// UTILITY 04 / 06

Achievements — 32 milestones, all on-chain.

A single uint32 on the NFT holds a bitmap of every milestone you have hit. BitsCore sets bits automatically when you cross thresholds. There is no claim button, no opt-in. The moment your population crosses 5,000 or your Prestige crosses 0.05 ETH, the corresponding flag flips. Each unlocked achievement renders as a small star along the bottom of your NFT image.

First Sparkplace your first building
Skyline10 buildings live
Metropolis30 buildings live
Survivorsurvive 3 disasters
Resilientsurvive 10 disasters
Saintrepair 10 damaged
Tycoonpopulation ≥ 2,000
Megacitypopulation ≥ 5,000
Optimisthappiness ≥ 8,000
Scholarreach level 10
Sagereach level 25
Masterreach level 50
Bronze Prestige0.001+ ETH paid
Silver Prestige0.01+ ETH paid
Gold Prestige0.05+ ETH paid
Diamond Prestige0.1+ ETH paid
Mythic Prestige0.5+ ETH paid
Pixelmidplace the Pixelmid

14 additional achievement bits are reserved for future expansions defined in the roadmap. The 32-bit bitmap has room to grow without a contract upgrade.

// UTILITY 05 / 06

Name + motto — your city, your words.

You can put real words on your plot. The name (up to 24 characters) renders along the bottom strip of the SVG and shows up as the NFT's "name" field in marketplace listings. The motto (up to 64 characters) is the description text. Both rate-limit at the contract level — the name can change once per ~7 days, the motto once per ~30 days — so collectors who like permanence can track how often a plot has been renamed via the public nameChangeCount counter.

// SET NAME

Up to 24 printable ASCII chars.

Cooldown: 50,400 blocks (about 7 days on Ethereum mainnet). The contract validates each byte is in the printable ASCII range 0x20-0x7E so you cannot inject HTML, emoji, or control characters.

BitsLand.setName(plotId, "Steel Reef")
// SET MOTTO

Up to 64 chars, once a month.

Cooldown: 216,000 blocks (about 30 days). The motto becomes the NFT's description on every marketplace that reads tokenURI — it is the one piece of long-form text you control.

BitsLand.setMotto(plotId, "Built on Base")
// UTILITY 06 / 06

Visitor stamps — social, sybil-resistant.

Any wallet that already owns at least one plot can call visit(targetPlotId) on yours. They can do it once per target. The contract increments visitCount and writes a permanent flag in a per-pair map. There is no fee, no payment, just an on-chain note that someone showed up.

Why does it matter? Crossing visitor thresholds permanently unlocks popularity tiers that other players can see on the leaderboard. The tiers are visual signals of how much foot traffic a plot has earned.

1+plot active
10visited
50local landmark
200destination
1,000cult status

The sybil-resistance is built into the contract: callers without a plot revert with NotApprovedForVisit. To farm visits you would have to spin up wallets that each minted a plot, which costs 0.001 ETH a head after the first — cheaper to just play the game.

// THE LOOP

Why every ETH spent makes the NFT worth more.

Most pay-to-play loops bleed value out. bitsLAND's loop deposits value back into the NFT. The treasury wallet receives 100% of the ETH you spend, but the same amount is also recorded as Prestige on your NFT. That Prestige is permanent. It raises the on-chain happiness multiplier, paints a brighter border, and signals real time invested to anyone who sees your plot on a marketplace.

Action ETH costs

  • Tier 1 building: 0.00002 ETH
  • Tier 2 building: 0.00008 ETH
  • Tier 3 building: 0.0002 ETH
  • Tier 4 building: 0.0005 ETH
  • Pixelmid (one per plot): 0.001 ETH
  • Repair damaged: 50% of placement
  • Demolish: free
  • Tick (refresh): free

Daily mood (deterministic)

  • Recession (7% of days): -10% happiness
  • Stagnant (18%): -3% happiness
  • Stable (40%): no change
  • Growing (25%): +5% happiness
  • Boom (10%): +12% happiness
  • Same mood for every plot on the same day.
  • Derived from block.number / 7200.
  • No oracle. No external dependency.

Build the city.
Become the city.

Free first mint per wallet. 10,000 plots total. First 200 are Founders.