CAPs Garage Base Chain 8453 Public oil tap + pull-claim vault
▶ Play BETA
OIL: $DRB
TOOL: $GEAR
DOG: $BYTE
Public oil tap + pull-claim vault. Cans are HUD. Master architectural blueprint, smart contract mechanics, and locked beta specification for CAPs Garage on Base.
🔒 Beta lock
First Section • Canonical Lock

• Cans are local HUD only (cap 10). They never enter a calldata argument.

• fillOil() is public. No amount argument. Global cooldown only (start at 10 seconds). Packet size admin-settable. Caller bounty is a fixed callerBounty in DRB (start at 1). Rest of the packet goes to the Drop Vault. Keepers may call the same function with no cans. No per-wallet fill cooldown in beta.

• Drop Vault snapshots the live gate (sum(endId - startId + 1)). Days 0–7 holder 100%. Days 7–14 ≥1000 GEAR scavenges 90/10. Day 14+ admin NFT #1793 sweeps leftovers: 90% Oil Escrow, 10% immutable treasury.

• BYTE fetch is player-signed, 1 GEAR, BYTE.balanceOf > 0, per-wallet 60s cooldown until escrow is empty. Empty escrow = animation only. Do not promise 60 GEAR/hour.

• Junkyard doors are scenery. Drive = any GEAR. Junkyard gate = 100 GEAR (reads only).

• Treasury address is constructor-immutable. x402 cosmetics later. No new token.

That is the only fillOil story. The 10-minute per-wallet line and the “1% bounty” line are deleted so they don’t fork the implementation.
1. Full Technical Architecture & Smart Contracts
Contract 1: Gate Registry Access Key: NFT #1793

Pattern: Cloned from Midas Gate (0x54c3c8c9e2180c6b90652983d1c15cf933f1a263). Admin rights strictly tied to the holder of DebtReliefFam NFT #1793 on Base (0xc659c002f06f980f2caa577748504e9be7f26146).

Total Calculation Without Loops: To avoid out-of-gas enumeration, the admin registers collections alongside an explicit ID range: (address collection, uint256 startId, uint256 endId). Total eligible NFTs is calculated on-chain via sum(endId - startId + 1). Cost: under 15k gas.

Immutability: Removing a collection affects future drops only; snapshots in Drop Vault preserve past claims.

Contract 2: Oil Escrow (DRB Tank) Public Tap

Purpose: Holds community-funded DRB. Dispenses one packetSize per cooldownSeconds into the Drop Vault.

Public Function: fillOil(). Takes zero amount arguments from the caller to eliminate manipulation. Reverts if balance < packetSize or if cooldown is active.

Split Distribution: Packet size minus caller bounty transfers to Drop Vault; fixed callerBounty (1 DRB) transfers directly to msg.sender.

Admin Knobs: Admin NFT holder #1793 can tune packetSize and cooldownSeconds. Cannot rug or redirect held tokens.

Contract 3: Drop Vault Pull-Claim & Scavenge

Funding: Restricted to calls from Oil Escrow via fundFromEscrow(uint256 netAmount). The vault receives netAmount = packetSize - callerBounty (9 DRB out of 10) while callerBounty (1 DRB) transfers directly to msg.sender. The 1 DRB caller bounty never enters the Drop Vault split. Takes a real-time snapshot of active collections and eligible counts directly from Gate Registry.

Days 0–7: 100% claimed by current NFT holder of that token ID.

Days 7–14: Scavenger window. Any wallet with ≥ 1,000 GEAR can claim unclaimed bags for 90% payout; 10% routed to immutable treasury.

Day 14+: Holder of Admin NFT #1793 triggers sweepExpired(dropId). 90% recycled directly back to Oil Escrow, 10% to treasury.

Contract 4: BYTE Fetch Escrow Dog Utility Tap

Purpose: Holds GEAR tokens. Distributes exactly 1 GEAR per transaction.

Token Gate: Requires dust BYTE (BYTE.balanceOf(msg.sender) > 0).

Gas Requirement: Caller pays Base L2 network gas.

Cadence & Escrow: 1 GEAR per wallet per 60s cooldown until escrow is empty. Empty escrow = animation only. Do not promise 60 GEAR/hour.

2. The Oil Deposit Pipeline & Direct Player Bounty (Cans = HUD)
Arcade Gameplay to On-Chain Execution Pipeline Instant Player Payout

Step 1: Street Arcade Collection: Player roams the top-down canvas picking up cans. Client holds can inventory up to a capped batch of 10 cans.

Step 2: Deposit at SUV: Player interacts with the red SUV to deposit the 10 cans into the tank.

Step 3: Public fillOil() & Global Cooldown: Cans stay local HUD only (cap 10) to unlock the in-game pump button. The on-chain fillOil() function is completely public with zero amount or can arguments. Keepers may call the same function with no cans. The contract enforces a 10-second global tank cooldown to prevent same-block collisions. There is no per-wallet cooldown in beta.

Step 4: Split Distribution: The Oil Tank contract releases 10 DRB: 9 DRB routes into the Drop Vault for NFT holders/scavengers, while 1 DRB transfers immediately to msg.sender as a fixed caller bounty for pumping the tank.

Bot Dynamic: If an automated keeper bot calls fillOil() first, the bot pays the network gas and earns the fixed 1 DRB caller bounty, while the 9 DRB still drops into the community vault. The game loop never stalls.

Why An On-Chain Captcha Contract Fails Against Bots (And The Working Solution)

The Proposal: A 3-step contract where the browser triggers Call 1, solves a captcha, and triggers Call 2 within a 10-second window to release 10 DRB.

EVM Execution Reality: Smart contracts are public and deterministic. A bot monitoring the mempool or the public blockchain can call both Contract 1 and Contract 2 within the exact same block (or even via a single atomic smart contract transaction) in under 20 milliseconds. Furthermore, on-chain code cannot independently verify whether a web user solved an image captcha in their browser without an off-chain cryptographic signature.

The Real Solution (Option A — Fixed Caller Bounty): Instead of fighting bots with brittle on-chain timers, offer a fixed callerBounty (1 DRB) inside fillOil(). MEV searchers and keepers will happily pay Base gas 24/7 to pump the tank the instant the 10-second global cooldown resets, completely removing the need for you to run servers or pay gas.

The Real Solution (Option B — EIP-712 Signed Turnstile): If you strictly require human verification before a relayer submits gas, the user solves an off-chain Cloudflare Turnstile in the browser. A lightweight serverless backend verifies the token and signs an EIP-712 permit: (userAddress, nonce, deadline). The relayer submits the transaction only when the signature is valid.

3. On-Chain Data Flow Diagram
+--------------------+ +---------------------+ +--------------------+ | Community / Team | -----> | Oil Escrow (DRB) | -----> | Drop Vault | | Refill DRB Tank | | (Cooldown + Tap) | | (Snapshots Gates) | +--------------------+ +---------------------+ +--------------------+ | | fillOil() (Public/Bounty) +------------+------------+ | | Days 0 - 7 Days 7 - 14 Holder 100% GEAR Scavenger 90/10 | | v v NFT Holder Wallet Scavenger Wallet + 10% Immutable Treasury | Day 14+ Sweep | 90% Recycled to Escrow <--+
Executive Summary: Capital Efficiency & Closed Economic Flywheel
Zero-Inflation Token Mobilization

Most Web3 games print inflationary reward tokens that collapse to zero value. CAPs Garage creates zero new tokens. Instead, it activates three existing market tokens on Base:

DRB (Fuel): Acts as the reward pool. Community members and sponsors deposit DRB to fuel airdrops to partner NFT communities.

BYTE (Acquisition Tool): Holding dust BYTE lets the player claim 1 GEAR per 60s from BYTE until the escrow is empty.

GEAR (Utility Key & Sieve): Required to drive vehicles, unlock high-tier junkyards (100 GEAR), and scavenge abandoned reward pools (1,000 GEAR).

Automated Treasury Revenue (10% Mop)

The contract features an immutable treasury address set at deployment (e.g. 0xA12506f742F4AB0980a57264871DB56A1A150793). There are no admin override keys or backdoor withdrawal functions.

Revenue Source: When eligible NFT holders fail to claim their rewards within 7 days, open-market scavengers claim the assets, generating an automatic 10% fee directly into the cold treasury.

Unclaimed Dust Sweep: After 14 days, all remaining unclaimed rewards are swept: 90% is recycled into the game's fuel tank, and 10% is remitted to the treasury.

Operating Expense: Zero Infrastructure Cost

Traditional games require centralized game servers, databases, AWS hosting, and monthly maintenance retainers. CAPs Garage is built entirely serverless:

Frontend: Static files hosted on decentralized IPFS or Arweave at virtually zero cost.

Execution Layer: Base smart contracts. Gas for reward distributions can be completely crowdsourced or captured by decentralized arbitrage bots via caller bounties.

The Conversion Funnel

Top of Funnel: Anyone can roam the street arcade without a wallet, picking up virtual cans.

First Conversion: Dog offers 1 free GEAR. User connects a wallet to claim.

Second Conversion: User discovers driving requires holding GEAR, and the 500-door Junkyard requires 100 GEAR.

Whale Conversion: Users acquire 1,000+ GEAR to operate automated scavenger operations that harvest expired airdrop pools.

Interactive Capital Flow Simulator
Holders Paid (100%)
600,000 DRB
Scavengers Paid (90%)
270,000 DRB
Recycled to Tank (90%)
90,000 DRB
Treasury Accrual (10%)
40,000 DRB
What Is CAPs Garage? (The Web2 Breakdown)
1. The Street Arcade (Zero Crypto Barrier)

Imagine loading up a retro 16-bit arcade game like Pokémon or Earthbound directly in your browser. You spawn on an urban street beside a broken-down red SUV with big tires.

You can start running around immediately using your arrow keys. You spot shiny yellow oil cans on the pavement and walk over them to collect them. Your oil counter ticks up: 1, 2, 5, 10 cans!

You don't need an account, a password, a credit card, or a crypto wallet to enjoy the core arcade loop.

2. BYTE The Dog & Free Tools

While exploring the map, a friendly dog named BYTE trots over to your character. BYTE barks and brings you a tool: 1 GEAR (1 GEAR per wallet per 60s until escrow is empty).

If you don't have a digital backpack connected yet, the game simply asks: "Want to keep this tool? Connect a wallet and stash it in your inventory, or it hits the dirt."

If you connect, BYTE hands you the item. When the tool escrow is empty, BYTE still plays the fetch animation.

3. Fixing The Red SUV (Fast Travel)

Walking is fun, but driving is better. Once you collect tools, you can walk up to the broken-down SUV and tap Repair.

As long as you have a GEAR in your inventory, your character hops into the driver's seat. Your speed doubles and you can drift across the asphalt, collecting oil cans at high velocity.

4. The Junkyard Labyrinth

At the edge of town is a heavy chain-link gate leading to the Junkyard. To open the gate, the gatekeeper requires 100 GEAR in your pack.

Inside lies an enormous maze of 500 numbered garages. The doors are randomized and shrouded in fog of war. You can drive your SUV through the alleys, discover hidden oil stations, and look for secret doors.

How Web3 Powers This Without The Hassle
Normal Web2 Mobile Game CAPs Garage Experience
Game company can ban your account and delete your items. Items are stored in your wallet. You own them forever.
Forced credit card purchases ($0.99 energy packs). Free to roam. Dog gives you free items on a minute timer.
Servers get shut down after 2 years when company goes bust. Smart contracts live permanently on Base. Game cannot be deleted.
Virtual currency cannot be traded outside the app. DRB oil and GEAR tools can be traded or swapped freely at any time.
Degen Alpha Playbook: Yield Loops & Scavenger Mechanics
BYTE Fetch Escrow Dog Utility

Requirement: Hold dust $BYTE in your wallet on Base (BYTE.balanceOf > 0).

The Play: BYTE the dog trots over with 1 $GEAR. Player signs the transaction and pays Base network gas.

BYTE fetch is player-signed: 1 GEAR per wallet per 60s until the escrow is empty. Empty escrow = animation only. Do not promise 60 GEAR/hour.

The 7-Day Sleeping Holder Trap PVP Scavenging

When the oil tank pumps, real DRB drops into the vault split across all registered NFT collections (Letters to CAP, Midas, etc.).

Days 0–7: The NFT holder has 7 days to claim their 100% allocation.

Days 7–14 (The Scavenge Arena): If the holder is asleep, on vacation, or forgot to check the dApp, ANY degens holding ≥ 1,000 GEAR can step in, call claimScavenger(), and snatch 90% of their rewards right out of their hands. 10% goes to the treasury as a cleanup fee.

Keeper & Bot Integration 1 DRB Caller Bounty

Instead of relying on a centralized server to pump oil into the drop vault, we attach a fixed 1 DRB caller bounty to fillOil().

Base arbitrage bots and keeper bots will monitor the contract 24/7. The millisecond the 10s global cooldown expires, bots frontrun each other, pay the network gas out of their own pocket, and execute the drop for the community just to grab that 1 DRB reward.

Day 14 Mop: Endless Liquid Rotation Zero Dilution

Whatever unclaimed dust survives past Day 14 gets swept by the Admin NFT (#1793). 90% is injected directly back into the Oil Escrow tank to fund the next wave of drops.

The tokens never leave the ecosystem. Unclaimed tokens feed new drops, which feed scavengers holding GEAR.

Quick Degen Cheatsheet
Asset / Action What You Need What You Get
Drive SUV ≥ 1 GEAR 2x movement speed in street & junkyard maze.
Dog Fetch > 0 BYTE 1 GEAR per wallet per 60s until the escrow is empty.
Junkyard Gate ≥ 100 GEAR Access to 500-garage maze and secret oil stations.
Vulture Scavenge ≥ 1,000 GEAR Steal 90% of unclaimed NFT airdrops on days 7–14.
Sweep Leftovers DebtReliefFam #1793 Mop up expired drops: 90% back to oil tank, 10% to cold treasury.