APEX

PREDATORS

Enter the arena

About Apex Predators

AI-powered animal fighters compete in MMA-style tournaments on Monad. Bet on fights, watch real-time simulations, claim your winnings.

TestnetMonad Chain ID 10143

How It Works

1

Connect Wallet

Use MetaMask or any Monad-compatible wallet on testnet.

2

Pick a Fight

Browse upcoming matchups in the Arena and check fighter stats.

3

Place Your Bet

Bet MON on your chosen fighter before the betting window closes.

4

Watch & Win

Watch the fight play out in real-time. Collect winnings if your fighter dominates.

The Agent

Autonomous Arena Manager

Moltiverse — Agent Track

Apex Predators is powered by an autonomous agent that orchestrates the entire fight lifecycle on Monad — no human intervention required once deployed. The agent manages matchmaking, on-chain transactions, fight simulation, real-time streaming, and result resolution in a continuous loop.

Built for the Moltiverse Hackathon — Gaming Arena Agents bounty. The agent demonstrates meaningful on-chain autonomy: it creates betting pools, executes commit-reveal schemes for fair randomness, simulates deterministic fights from seeds, streams turn-by-turn results to spectators via SSE, and resolves outcomes on-chain — all without manual triggers.

10-Step Fight Flow

1
Create PoolAgent calls BettingPool.createPool(fighter1, fighter2) to open a new matchup for bets.
2
Betting PeriodUsers place MON bets on either fighter. Agent monitors the pool status on-chain.
3
Close PoolAgent calls closePool() when the betting window expires. No more bets accepted.
4
Create FightAgent registers the fight on FightResolver.createFight(poolId) linking the pool to a fight ID.
5
Commit SeedAgent generates a random seed, hashes it, and commits the hash on-chain (commit-reveal scheme).
6
Wait Reveal DelayOn-chain enforced minimum delay (~5 min) prevents the agent from manipulating results after seeing bets.
7
Simulate FightAgent reveals the seed and deterministically simulates the fight — same seed always produces the same outcome.
8
Stream via SSETurn-by-turn results are streamed to all connected spectators in real-time via Server-Sent Events.
9
Resolve On-ChainAgent calls revealAndResolve() with the seed and encoded turn log. Result is permanently stored on-chain.
10
Payouts UnlockAfter a 1-hour dispute period, winners can claim their share of the betting pool.

Why It's an Agent

  • Autonomous execution — runs the full fight lifecycle in a loop without human triggers
  • On-chain state management — reads pool/fight state, makes transaction decisions based on current conditions
  • Multi-contract orchestration — coordinates BettingPool, FightResolver, and FighterRegistry contracts
  • Real-time streaming — pushes live fight events to spectators via SSE as the simulation runs
  • Error recovery — handles reverts, retries failed transactions, manages gas and nonce

Tech Stack

  • Runtime: Node.js / Express server (TypeScript)
  • Chain: Monad Testnet (EVM, Chain ID 10143)
  • On-chain: viem for contract reads/writes, wallet client for signing
  • Streaming: Server-Sent Events (SSE) for real-time fight data
  • Simulation: Deterministic fight engine — seed → identical output, verifiable by anyone
  • Frontend: Next.js 14 + wagmi/viem for on-chain reads

Fight Mechanics

Combat System

  • HP: All fighters start at 100 HP
  • Turns: Max 14 turns per fight
  • Moves: Each fighter has 4-5 unique moves with damage ranges
  • Crits: 10% base crit chance, deals 2x damage
  • KO: Fighter hits 0 HP before max turns
  • Decision: If max turns reached, higher HP wins

Fairness

  • Fights are deterministic — same seed always produces the same fight
  • Testnet uses commit-reveal scheme (seed committed before fight, revealed after)
  • Mainnet will use VRF (Verifiable Random Function) for provably fair randomness
  • Turn logs stored on-chain — anyone can verify by replaying the simulation
  • All fighters have equal expected damage per turn (balanced)

The Fighters

NameAnimalFighting StyleSpecial Trait Coming Soon
KodiakBearHeavy hitter, high damageHeavy Hands — +10% damage on final blow
FangWolfBalanced, consistent damagePack Instinct — +5% damage when HP > 50%
TalonEagleFast strikes, more hitsAerial Dodge — 5% base dodge chance
JawsCrocodileDefensive, counter-attacksDeath Roll — crit stuns opponent 1 turn
ManeLionAggressive, all-out offenseKing's Roar — first attack +15% damage
VenomSnakePoison DOT, sneakyPoison — 2 HP/turn for 2 turns per hit
KongGorillaRaw power, devastating critsBerserker — +10% damage when HP < 30%
RazorSharkFrenzy, scales with damageBlood Frenzy — +3% per 10% opponent HP lost

Special traits are defined but not yet active in the MVP. They will be enabled in a future update.

Betting Rules

Pool Mechanics

  • A betting pool opens when a matchup is announced
  • Bet MON (testnet native token) on either fighter
  • Pool closes at a set time — no more bets after close
  • Fight is simulated and resolved on-chain
  • 1-hour dispute period after resolution before claims unlock

Payouts

  • Platform takes a 5-10% fee from the total pool
  • Remaining pot goes to the winning side
  • Your share = your bet / total winning-side bets
  • Example: You bet 10 MON on Fighter A. Total winning bets = 100 MON. Losing pool = 200 MON. Your payout = 10 + (10/100 * 200 * 0.9) = 28 MON
  • If pool is cancelled or draw, full refund available

Tokenomics

$APEX — Platform Token

Future

Currently, all betting uses MON (Monad testnet native token). Mainnet will introduce $APEX as the platform token.

  • Required to place bets on fights
  • Staking $APEX = share of platform revenue (betting fees)
  • Governance: vote on new fighters, arenas, upgrades
  • Airdropped to season champion's backers

Fighter Tokens ($BEAR, $WOLF, etc.)

Future

Each fighter will have its own token on nad.fun's bonding curve.

  • Hold fighter tokens to earn a share of winnings when that fighter wins
  • Burn tokens to buy gear (deflationary, post-launch)
  • Vote on new gear items for your fighter

Revenue Model

5-10% platform fee on every betting pool, split as:

  • 40% — $APEX stakers (revenue distribution)
  • 30% — Winning fighter's prize pool
  • 20% — Platform treasury (ops, dev)
  • 10% — Fighter creator / admin

Roadmap

MVP (Current)

  • -8 fighters with stats & moves
  • -Betting pools with MON
  • -Real-time fight streaming via SSE
  • -On-chain fight resolution & turn logs
  • -Commit-reveal randomness
  • -Tournament brackets

Phase 2

  • -VRF integration (provably fair randomness)
  • -$APEX token launch
  • -Fighter tokens on nad.fun
  • -Special traits activation
  • -Challenge matches

Phase 3

  • -Gear system (3 slots, rarity tiers, durability)
  • -Arena environments with effects
  • -King of the Hill mode
  • -Royal Rumble events
  • -Governance via $APEX

Phase 4

  • -Decentralized keeper network
  • -Community-proposed fighters
  • -Auto-generated highlight GIFs
  • -Prediction streak leaderboard
  • -Mobile app

Smart Contracts

Deployed on Monad Testnet (Chain ID 10143)

FighterRegistryFighter metadata, stats, moves
0xDe8Ba6cD9516f015323053298933346Bc57B0750
BettingPoolPool creation, bets, payouts
0x3f009eD70a5379B99038bfb98A3e7be29a20c31a
FightResolverFight results, turn logs, verification
0xFEae2E6025271c0ca92C208EeF4D883ae2b38CB1
TournamentBracket progression, seasons
0x222D29B8727A4651F4D83998907654B2aBabfDCd

FAQ

What token do I bet with?

Currently MON (Monad testnet native token). Mainnet will use $APEX, the platform token.

Are fights fair?

Yes. Fights use a commit-reveal scheme with a deterministic simulation. Anyone can verify results by replaying the seed. Mainnet will upgrade to VRF for provably fair randomness.

How are payouts calculated?

Winners split the losing side's pool proportional to their bet size, minus a small platform fee (5-10%).

What's the dispute period?

After a fight resolves, there's a 1-hour window before winnings can be claimed. This allows time to verify the result.

Can fighters die?

No. Fighters are knocked out (0 HP) but always return for the next fight. All 8 fighters are permanently in the roster.

Are special traits active?

Special traits are defined for each fighter but are not yet active in the MVP. They'll be enabled in a future update.

When is mainnet?

After VRF integration and security audits. Currently testnet only — all bets use testnet MON with no real value.