Skip to content
Astroblock

Astroblock

The onchain galaxy

Created on 16th July 2025

•

Astroblock

Astroblock

The onchain galaxy

The problem Astroblock solves

The Astroblock game through it's onchain map, puts all player actions, movements, and positions fully onchain, turning the game world into a trustless, permissionless layer any contract can build on.

This unlocks a new class of composable onchain gameplay, where anyone can deploy contracts that react to where players are in space, what stars they control, or how they move.

It makes building persistent, interoperable modules (like loot systems, PvP combat, NPC encounters, staking zones, or exploration quests) safe and easy, without relying on centralised servers or off-chain game logic.

Challenges I ran into

Frontend

Rendering the Astroblock Map was one of the toughest challenges: players need to seamlessly explore a 10 million by 10 million universe in first-person, flying through space while seeing thousands of stars and entities around them. Creating a pannable, zoomable, and performant map at this scale required aggressive optimization. I implemented spatial chunking, render culling, and memoization to avoid drawing unnecessary objects, while also ensuring the map remained responsive even when new stars or players appeared onchain. Balancing smooth camera controls with accurate first-person positioning was particularly tricky, especially when syncing with onchain player states.

Smart Contract

On the smart contract side, I hit a major hurdle with storage layout during an upgrade. I had appended new properties to a struct that sat at the root of the storage layout, unintentionally shifting all subsequent storage slots and effectively corrupting the state. This caused unexpected behavior and risked breaking the entire map. I managed to recover by carefully rebuilding the storage layout and appending new variables only at the end of available storage slots, following upgradeable contract best practices.

Cross Platform & Indexing

Making the game work across both web and miniapp environments added extra complexity. Input methods, screen constraints, and performance budgets are very different between the two, forcing me to rethink how movement, interaction, and rendering would work across platforms. Additionally, indexing performance became a bottleneck as the number of onchain entities (stars, players, modules) grew. I had to implement and design smarter indexing strategies to avoid overwhelming both the frontend and the backend.

Smart Contract Address(es)

0xe9C9B180B465718b611978040F6080Cd3BfdB51a (AstroblockMap Contract)
0xf61aFF7D2DC231aa11e56c3de5e0ADFF999b66d7 (AstroblockLoot Contract)
0x7bc1D45faD40A87642D619029831AC525195f03A (AstroblockStories Contract)

Other Onchain Proof

AstroblockMap Basescan

https://basescan.org/address/0xe9c9b180b465718b611978040f6080cd3bfdb51a

AstroblockLoot Basescan

https://basescan.org/address/0xf61aFF7D2DC231aa11e56c3de5e0ADFF999b66d7

AstroblockStories Basescan

https://basescan.org/address/0x7bc1d45fad40a87642d619029831ac525195f03a

Activity Dune Dashboard

https://dune.com/nezzar/astroblock

AstroblockMap Opensea

https://opensea.io/collection/astroblock-map
The map hosts Entities (space objects like starts & wormholes as NFTs) stored in the Map contract itself for now.

Tracks Applied (1)

Top 5 Live Consumer Apps

Astroblock has been live on Base since the end of June and has driven more than 30k transactions since then.

Technologies used

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion

Builders also viewed

See more projects on Devfolio