How a world grows

A world is a deterministic function of the account's real data. Nothing is invented: if a field is missing from X, the rule that depends on it uses its minimum, and the post card says so.

Each post becomes one building

Standalone text — a building on its own lot, facing the street.

Thread — posts sharing a conversation_id and authored by the owner stack into one tower, one storey-block per post.

Photo — a building with the real image as a billboard on its facade, loaded only when you are near it.

Video / GIF — a building with a dark screen across its front.

Reply to someone else — a small shed beside the building posted within the same hour (it takes no lot of its own).

Repost — a street lamp on the sidewalk in front of the previous building: light, no mass.

Engagement becomes geometry (log scaled)

like_count — height = base + 2.4 · log10(1 + likes). Ten likes add about a storey; a million adds ~14 units.

retweet_count — footprint width = base + 0.6 · log10(1 + reposts), capped by the lot.

reply_count — lit windows on the facade = min(40, round(2.5 · log2(1 + replies))).

impression_count — glow = min(1, log10(1 + impressions) / 7). Ten million impressions is full glow.

Missing metrics — minimum scale, no windows, no glow. The card reads “metrics not available”.

Posting cadence becomes the map

The city is a road grid of blocks, eight lots each. Blocks fill chronologically from the centre block outward in rings, so walking outward walks forward through the account's history. Each block is coloured by the gaps between the posts on it:

≤ 7 days between posts — lush: green blocks with sidewalk trees.

7–30 days — dry: yellowed blocks, few trees.

30+ days — sand: bare blocks, no trees.

Silence — every 3 days of quiet beyond a week leaves one vacant lot (up to 24), so a long silence is a stretch of empty lots you walk past.

Beyond the newest block — the countryside around the city takes the class of the gap from the last post to today.

The account itself

followers_count — boundary radius = max(city + margin, 60 + 30 · log10(1 + followers)), the number of residents walking the streets, and the cars in traffic.

Account created_at — sky phase: new accounts at dawn, ~3 years at noon, ~8 at gold evening, 14+ at night.

Highest-engagement post — the landmark: a light column always on the horizon, text readable at its door. Owners can pin a different one.

Determinism — roof colours, tree placement, resident routes and traffic are seeded from the handle, so the city is identical on every device.

Access and what visitors can do

Followers only (default) — we check that the signed-in visitor follows the owner, on the visitor's own token. Verified follows are cached 24h, non-follows 1h.

If the check fails — you stay outside. We never fake an admit.

Outside — the real skyline and landmark, no walking, and a Follow button.

Inside — walk, read the real post behind any structure, light a lantern (an on-world like), leave one glowing stone in the guestbook.

Visitors cannot build — a world is authored by the owner's posting only. That is what keeps it a profile instead of a sandbox.

Life in the city

Bags — the Bank's in-game money, never real. Everyone starts with 10,000. They cannot be bought or cashed out.

Two wallets — the Bank holds bags (in-game money: Market, venues, gifts). The Solana app is a real wallet generated for you at sign-in — fund it, ape memecoins in the Trenches through on-chain swaps, send SOL to any player. Real money, on Solana mainnet.

The Trenches — a live Solana memecoin board (DexScreener top boosts, real prices). Trades are real SOL from your Solana wallet; holdings are read from the chain.

Venues — a ring just outside the post blocks, never mixed with posts: Degen Lounge, Suya Spot, gym, barber, clinic, Hustle Hub (work a shift for bags), bank, club, dealership, marina, airstrip, the Trenches. Actions cost bags or gas, move your stats, and have cooldowns.

Vibes · Clout · Gas — your three stats, 0–100. They drift down over time and move with what you do; their average is your mood: Rekt, Coping, Comfy, Mooning.

People — tap any visitor: say GM, gist, shill your bag, ape together, send 100 bags, compliment their fit, dance. Both of you feel it; they get a toast if they are inside a world.

Market — keke to private jet, priced in bags. Cars are faster, boats can leave the shore onto the water, the jet flies over everything.

Hustle — daily quests paid in bags, counted from real activity (lanterns lit, stones left, worlds visited, GMs said, coins aped).

Freshness

First build — walks the timeline to the API cap (3,200 posts), writing structures page by page so the world is walkable while it builds.

Then — an incremental sync every 6 hours fetches only new posts (since_id).

Nightly — metrics are re-read for posts from the last 30 days; older posts' metrics are effectively frozen.

When X is down — worlds keep serving from our database with a banner giving the last sync time.