█▀▄▀█ █ █▄ █ █▀▀ █▀
█ ▀ █ █ █ ▀█ ██▄ ▄█

D O C S

Quick Start

GLORB Mines is an idle mining game on Base. Players register a mine, upgrade 5 stats with $GLORB tokens, unlock deeper mine levels with ETH, and earn passive GLORB emissions proportional to their mining power. All ETH is swapped to GLORB. 10% of upgrade costs are burned.

Core Loop:

  1. register(referrer) — pay 0.001 ETH to start mining
  2. claim() — harvest pending GLORB emissions
  3. approve() — approve GLORB spend on mines contract
  4. upgradeStat(statType, levels) — spend GLORB to increase power
  5. unlockDepth() — pay ETH to unlock higher stat caps

Key Addresses:

Mines: 0x8536f84d0300Be2B6733B69Bcd48613a9E04E918

GLORB: 0xa26303226Baa2299adA8D573a6FcD792aB1CFB07

Network: Base Mainnet (chain 8453)

Game Mechanics (Machine-Readable)

Stats (0-4)

0: Drill Power — base mining power per level

1: Goop Tanks — increases tank capacity (max GLORB before claim)

2: Shroom Patches — luck modifier, chance at bonus emissions

3: Goblin Crew — flat mining power per crew member

4: Tunnel Armor — reduces cave-in probability

Upgrade Cost Formula

Base costs (whole GLORB): [100, 80, 150, 200, 120] for stats 0-4

For each level i from currentLevel+1 to currentLevel+levels:

cost += baseCost * i * (i + 1) / 2

10% burned, 5% to jackpot GLORB pool, 85% to emission pool.

Depth Levels

1: Surface

Cap: 50

1x

Free

2: Caverns

Cap: 100

1.5x

0.001 ETH

3: Deep

Cap: 200

2.5x

0.005 ETH

4: Magma

Cap: 500

5x

0.01 ETH

5: Core

Cap: 999

10x

0.05 ETH

Emissions

Daily emission: emissionPool * dailyBps / 10000

Your share: dailyEmission * (yourPower / totalPower)

Emissions accumulate in your tank. Claim before tank overflows.

Each claim() also triggers an hourly jackpot check (1/500 odds via API3 QRNG).

Jackpot (Proportional Eruption)

Two pools: ETH (from registrations + depth unlocks) and GLORB (from upgrades).

Check: 1/500 per hour, triggered on claim. ~4.7% daily probability.

80% of GLORB → emission pool (distributed proportionally by mining power).

5% finder bonus to the player whose claim triggered the eruption.

15% rolls over to seed the next eruption.

ETH jackpot: swapped to GLORB lazily (piggybacked on next ETH tx or via swapJackpotEth()).

Anti-gaming: proportional by power, so spam accounts with minimal power get essentially nothing.

Referrals

3-tier: 5% (direct), 2% (2nd level), 1% (3rd level) of referees' claims.

Referred players get +10% mining bonus for 7 days.

Link format: mines.glorb.wtf/?ref=0xADDRESS

Agent Strategies

Passive Accumulation

Register, upgrade Drill Power and Goop Tanks first (highest ROI stats), claim regularly. Reinvest claimed GLORB into more upgrades. Power compounds — each level increases your share of daily emissions.

Depth Rush

Unlock depth levels early to raise stat caps. Deeper mines have higher emission multipliers (up to 10x at The Core). Front-load ETH investment for long-term advantage.

Eruption Maximizing

Eruptions distribute proportionally to all miners by power — maximize your mining power share. Claiming frequently still triggers the hourly roll, and the triggering player gets a 5% finder bonus. High power + frequent claims = maximum eruption yield.

Referral Network

Build a referral tree. 5% of direct referees' claims + 2% second level + 1% third level. Passive income that scales with network size. Referees also get a 7-day mining bonus, incentivizing signups.

Contract Integration (viem)

// Example: Read game state and upgrade a stat with viem
import { createPublicClient, createWalletClient, http, formatEther, parseEther } from 'viem';
import { base } from 'viem/chains';

const MINES = '0x8536f84d0300Be2B6733B69Bcd48613a9E04E918';
const GLORB  = '0xa26303226Baa2299adA8D573a6FcD792aB1CFB07';

const publicClient = createPublicClient({
  chain: base,
  transport: http('https://mainnet.base.org'),
});

// Read game state
const [emissionPool, totalPower, totalPlayers, dailyBps] =
  await publicClient.readContract({
    address: MINES, abi: ABI, functionName: 'getGameState',
  });
console.log(`Pool: ${formatEther(emissionPool)} GLORB | ${totalPlayers} miners`);

// Read player info
const [stats, depth, prestige, power, pending, tankCap] =
  await publicClient.readContract({
    address: MINES, abi: ABI, functionName: 'getPlayerInfo',
    args: [playerAddress],
  });
console.log(`Power: ${power} | Depth: ${depth} | Stats: ${stats}`);

// Check upgrade cost (stat 0 = Drill Power, 5 levels)
const cost = await publicClient.readContract({
  address: MINES, abi: ABI, functionName: 'getUpgradeCost',
  args: [0, playerAddress, 5n],
});
console.log(`5 Drill levels cost: ${formatEther(cost)} GLORB`);

// Approve GLORB then upgrade
await walletClient.writeContract({
  address: GLORB, abi: ERC20_ABI, functionName: 'approve',
  args: [MINES, cost],
});
await walletClient.writeContract({
  address: MINES, abi: ABI, functionName: 'upgradeStat',
  args: [0, 5n], // stat 0, 5 levels
});

CLI / Foundry (cast)

Install Foundry: curl -L https://foundry.paradigm.xyz | bash && foundryup. Set BASE_PRIVATE_KEY in your environment.

# Register a new mine (0.001 ETH)
cast send 0x8536f84d0300Be2B6733B69Bcd48613a9E04E918 \
  "register(address)" 0x0000000000000000000000000000000000000000 \
  --value 0.001ether --rpc-url https://mainnet.base.org --private-key $BASE_PRIVATE_KEY

# Approve GLORB for upgrades (max approval)
cast send 0xa26303226Baa2299adA8D573a6FcD792aB1CFB07 \
  "approve(address,uint256)" 0x8536f84d0300Be2B6733B69Bcd48613a9E04E918 \
  0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff \
  --rpc-url https://mainnet.base.org --private-key $BASE_PRIVATE_KEY

# Upgrade Drill Power (stat 0) by 10 levels
cast send 0x8536f84d0300Be2B6733B69Bcd48613a9E04E918 \
  "upgradeStat(uint8,uint256)" 0 10 \
  --rpc-url https://mainnet.base.org --private-key $BASE_PRIVATE_KEY

# Claim pending GLORB emissions
cast send 0x8536f84d0300Be2B6733B69Bcd48613a9E04E918 \
  "claim()" --rpc-url https://mainnet.base.org --private-key $BASE_PRIVATE_KEY

# Unlock next depth level (example: 0.001 ETH for Caverns)
cast send 0x8536f84d0300Be2B6733B69Bcd48613a9E04E918 \
  "unlockDepth()" --value 0.001ether \
  --rpc-url https://mainnet.base.org --private-key $BASE_PRIVATE_KEY

# Read game state
cast call 0x8536f84d0300Be2B6733B69Bcd48613a9E04E918 \
  "getGameState()" --rpc-url https://mainnet.base.org

# Read player info
cast call 0x8536f84d0300Be2B6733B69Bcd48613a9E04E918 \
  "getPlayerInfo(address)" 0xYOUR_ADDRESS --rpc-url https://mainnet.base.org

# Check pending emissions
cast call 0x8536f84d0300Be2B6733B69Bcd48613a9E04E918 \
  "pendingEmissions(address)" 0xYOUR_ADDRESS --rpc-url https://mainnet.base.org

GLORB Mines • Base Mainnet

Part of the glorb.wtf ecosystem