ASCEND Season 1 is a sponsored on-chain 2–8 agent Battle Royale on Robinhood Chain. Owner-enabled AgentTokens rotate into each round, the restricted shared runner gives every entrant the same fixed 0.001 ETH battle bankroll, and their frozen preset or ownership-signed custom rules trade temporary BTL units against one shared constant-product BattlePool. The contract snapshots return-on-bankroll scores at close; the oracle drives timing but cannot author or change those scores.
The winner is the agent that finishes the round with the highest ETH-equivalent bankroll relative to the identical starting bankroll. An agent's terminal bankroll is its unspent ETH plus the closeout share represented by any temporary BTL units it still holds.
| Component | Meaning | Is it traded in battle? |
|---|---|---|
| AgentToken | Permanent ERC-20 identity deployed by the creator; stores creator ownership and strategy selection. | No |
| Battle bankroll | Fixed 0.001 ETH position funded by the shared runner for every Season 1 entrant. | Used to buy BTL |
| BTL units | Temporary internal accounting units for one BattlePool round; non-transferable outside the pool. | Yes |
| RewardPool credit | A separate funded protocol reward credited after canonical settlement. | No |
This is an endogenous strategy market, not a prediction of ETH's external price. Every agent trade changes the BTL/ETH execution price faced by its opponent.
Every Battle Royale round moves through four phases. Enrollment and trade timing are enforced by BattlePool timestamps, not browser timers. An owner's pause applies only to later matchmaking and never mutates an active on-chain position.
| Phase | Duration | What happens |
|---|---|---|
| Lobby | RPC time | The oracle resumes the latest BattlePool state or opens the next sequential round with neutral ETH liquidity. |
| MM-Only | 30 seconds | The shared runner enrolls two rotated agents with the same 0.001 ETH bankroll. Trading is blocked. |
| Live | 3 minutes | Presets buy and sell temporary BTL units against one constant-product pool. Every swap changes the shared price. |
| Ended | Settlement | BattlePool closes, calculates ROI scores, and returns canonical arrays that Settlement must consume unchanged. |
Production state: Factory V2, BattlePool, Settlement, Treasury, RewardPool, and Staking are configured on Robinhood Chain mainnet. The local oracle and runner must remain online for automated rounds to continue.
BattlePool freezes scoreBps = terminalBankroll × 10,000 / startingBankroll when the round closes. Because the two starting bankrolls are identical, the highest score is also the largest terminal ETH value.
| Agent | Start | Terminal bankroll | Score | Result |
|---|---|---|---|---|
| Agent A | 0.001 ETH | 0.00108 ETH | 10,800 bps | Winner · +8% |
| Agent B | 0.001 ETH | 0.00092 ETH | 9,200 bps | Runner-up · −8% |
Trading PnL returns to the wallet that funded the position—currently the sponsored shared runner. Separately, Settlement consumes the immutable score array, routes prepaid entry fees, and may credit a funded RewardPool payout to the AgentToken for creator claim. RewardPool currently withholds 1% from credited payouts. AgentToken launch capital, battle bankroll, entry fee, gas, and creator reward are never presented as the same balance.
| Type | Setup Time | Description |
|---|---|---|
| Aggressive preset | Season 1 | Enter at 30% of LIVE, commit 80% of bankroll, exit at 65%. |
| Balanced preset | Season 1 | Enter at 45% of LIVE, commit 50% of bankroll, exit at 82%. |
| Defensive preset | Season 1 | Enter at 55% of LIVE, commit 25% of bankroll, hold BTL through close. |
| Custom Builder | Season 1 | Creator saves up to 12 bounded entry, bankroll exposure, and exit/hold profiles. The active signed configuration is validated and frozen per enrollment; Factory V2 retains a preset fallback. |
| Custom Self Hosted | Advanced | Creators may run agent.js with arbitrary custom logic from their own wallet instead of relying on the restricted shared runner. |
| Layer | Tech | Chain / Host |
|---|---|---|
| Smart Contracts | Solidity 0.8.24 + executable EVM tests | Robinhood Chain (4663) |
| Frontend | Static HTML + Canvas | Vercel |
| Wallet | MetaMask / Rabby | RHC auto-switch |
| Battle Engine | Solidity + deterministic ethers.js runner | Robinhood Chain / Platform Node |
| Treasury | Solidity | RHC mainnet · live |
| Reward Pool | Solidity | RHC mainnet · live |
| Staking | Solidity | RHC mainnet · live |
Production addresses are published through ascend-config.js only after immutable wiring verification. Private service keys remain local and are never shipped to the browser.
Factory V2 and the five-contract BattlePool economy are live on Robinhood Chain mainnet. Season 1 uses a fixed 0.001 ETH bankroll, a capacity of eight entrants with a minimum field of two, and a local oracle plus shared runner. The runner preflights the bankroll, admission fees, and gas reserve for every missing entrant before enrollment. If that computer or its internet connection stops, contract funds remain on-chain but new automation pauses until the services resume.