Skip to content
The Monolith
Back to Projects

The Monolith

r/Place meets DeFi — in 3D

// Technologies

React Native Expo React Three Fiber Solana Anchor Colyseus Supabase

Overview

The Monolith is a mobile game that combines community-driven block placement with cryptocurrency staking on Solana — think r/Place meets DeFi, in 3D. Players stake USDC to claim and maintain blocks in a shared 3D tower, each featuring an animated character called a “Spark” that evolves based on player engagement.

As the sole developer, I designed, built, and shipped the entire product — from the 3D rendering pipeline and on-chain smart contracts to the real-time game server and mobile app.

The Problem

Community-driven social experiments like Reddit’s r/Place captivated millions, but they lack persistence and real economic stakes. Meanwhile, DeFi protocols struggle with engagement beyond speculation. The Monolith bridges this gap by creating a persistent, stake-based 3D world where ownership is meaningful, engagement is rewarded, and every block tells a story.

How It Works

Stake & Claim

Players stake USDC on Solana to claim a block on the tower. Each block becomes a canvas for self-expression — customizable with 16 colors, 48 emoji, 11 animated styles, and 7 textures.

Daily Engagement

Blocks have a charge decay system — players tap their block daily (~30 seconds) to keep it alive. Miss 3+ days and your block goes dormant, becoming claimable by others. Consistent engagement is rewarded with streak multipliers up to 3x.

Spark Evolution

Each block hosts a “Spark” — an animated character that evolves through 5 tiers: Spark → Ember → Flame → Blaze → Beacon. Evolution is driven by sustained engagement and streak maintenance.

Social & Competition

On-chain leaderboards track the tallest towers (Skyline), brightest Sparks, longest streaks, and XP ranks. Players interact through “poke” mechanics and compete across a 10-level progression system with 7 achievement types.

My Role & Responsibilities

As the solo developer, I was responsible for:

  • 3D Engine & Rendering: Built the entire 3D pipeline with React Three Fiber and a custom GLSL block shader — SDF-rendered character faces, interior/parallax window mapping, 11 procedural material styles, Blinn-Phong specular with a fresnel rim, and approximated ambient occlusion + subsurface tuned for mobile GPUs. Rendered 650 blocks with InstancedMesh in 3 draw calls, targeting 60 FPS on mobile
  • Smart Contract Development: Wrote the Anchor (Rust) program on Solana devnet — a USDC staking vault (deposit/withdraw) backed by PDA-owned accounts
  • Real-time Game Server: Designed and implemented the Colyseus server on Node.js for instant game state synchronization
  • Mobile App: Built the cross-platform app with Expo and React Native, including Mobile Wallet Adapter integration
  • Backend & Data: Architected the Supabase (PostgreSQL) backend for persistent game state, player profiles, and analytics
  • On-chain Integrations: Integrated Tapestry Protocol for social graphs, MagicBlock SOAR for leaderboards, and Solana Blinks for shareability

Technical Architecture

Rendering Pipeline

The biggest technical challenge was rendering 650 interactive 3D blocks while targeting 60 FPS on mobile. The solution batches all blocks into 3 InstancedMesh draw calls (geometry, glow, hit-test), with a custom GLSL shader handling:

  • Approximated ambient occlusion: cheap contact-shadow depth between blocks, tuned for mobile GPUs
  • Approximated subsurface: translucent glow for Spark evolution
  • Blinn-Phong specular + fresnel rim: lightweight highlights without full PBR cost
  • SDF faces & parallax windows: per-block personality and interior depth, entirely in-shader

Hybrid Architecture

The system separates fast game logic from blockchain finality:

On-chain (Anchor/Rust): USDC staking vault (deposit/withdraw), PDA-owned accounts
Server (Colyseus/Node): Real-time game state, instant feedback
Client (Expo/R3F): 3D rendering, animations, wallet adapter
Database (Supabase): Player profiles, analytics, persistent state

This keeps gameplay instant while settling stakes trustlessly on-chain.

Stack Details

ComponentTechnology
Mobile AppExpo 54, React Native 0.81, React 19
3D EngineReact Three Fiber v9, Three.js, GLSL
Smart ContractsAnchor 0.31 (Rust) on Solana Devnet
Game ServerColyseus on Node.js (Railway)
DatabaseSupabase (PostgreSQL)
State MgmtZustand (client), Colyseus (server)
SocialTapestry Protocol, MagicBlock SOAR
WalletSolana Mobile Wallet Adapter

Testing & Quality

300+ automated tests across the mobile app, the Colyseus server, and the on-chain Anchor program — uncommon coverage for a solo build, and the reason refactors stayed safe.

What I Learned

Building The Monolith deepened my expertise in:

  • 3D Graphics on Mobile: Shader optimization, instanced rendering, and hitting 60 FPS budgets on constrained hardware
  • Solana Program Development: Writing and testing Anchor programs for complex staking and ownership logic
  • Real-time Multiplayer: Designing state synchronization between Colyseus, Supabase, and on-chain data
  • Game Design: Balancing engagement mechanics (decay, streaks, evolution) with economic incentives (staking, claiming)
  • Full-stack Mobile: Shipping a production Expo app with wallet integration, 3D rendering, and real-time networking