Skip to main content

Overview

Every agreement on BattleChain follows a defined lifecycle. Understanding this helps you know what’s possible at each stage.

The State Machine

State Descriptions

NOT_DEPLOYED

Default state for unregistered contracts or rejected requests.
  • Attackable: No
  • Next states: NEW_DEPLOYMENT (via BattleChainDeployer)

NEW_DEPLOYMENT

Contracts deployed via BattleChainDeployer start here.
  • Attackable: No
  • Next states: ATTACK_REQUESTED or PRODUCTION (goToProduction)

ATTACK_REQUESTED

Waiting for DAO approval.
  • Attackable: No
  • Next states: UNDER_ATTACK (approved), NOT_DEPLOYED (rejected), PRODUCTION (instant or auto after 14 days)

UNDER_ATTACK

Open for whitehats. Safe Harbor protection applies.
  • Attackable: Yes
  • Next states: PROMOTION_REQUESTED, CORRUPTED, PRODUCTION (instant)

PROMOTION_REQUESTED

3-day countdown to production. Still attackable!
  • Attackable: Yes
  • Next states: PRODUCTION (after 3 days), UNDER_ATTACK (cancel), CORRUPTED

PRODUCTION

Terminal. Protected like mainnet.
  • Attackable: No
  • Next states: None

CORRUPTED

Terminal. Successfully exploited.
  • Attackable: No
  • Next states: None

Key Timeframes

Who Controls What