On-Chain Reference

Mission Documentation

Everything below is defined in ZORPDualBurnMission369 v3.6.9

How the mission works

ZORP Dual Burn is a gamified, autonomous burn system on PulseChain. Holders and keepers fund the mission with FUEL (55,555 FUEL per cannon charge). When market-cap milestones are hit, the contract burns FUEL to charge the cannon and eventually executes large ZORP boss blasts.

Pricing uses TWAP (24h), spot reserves, and a one-hour market-cap cache. Keepers run heartbeat, commit–reveal burns, and execution on a schedule; anyone can call getLatestMarketCap() to refresh the oracle.

Awakening phase (Sector 15)

The contract boots in Sector 15 with boss Awakening ZORP. Special thresholds apply before the full sector ladder unlocks:

  • FUEL burns start at

    $20,000

  • ZORP boss blast at

    $50,000

  • Cannon charges

    15

  • ZORP burned on blast

    15,000,000 ZORP

Mission timeline

Sectors count down from 15 → 1 — a comic-book war map of every boss, milestone, and cannon charge baked into the contract. Sectors 3–1 stay classified until governance reveals them on-chain.

  1. 15
    Active sector
    #15
    Awakening ZORP

    Awakening ZORP

    Threat level · ORIGIN

    Awakening ZORP

    The signal wakes.

    MC target

    $20,000

    ZORP blast

    15M

    Charges

    15

  2. 14
    #14

    Virex

    Threat level · ALPHA

    Virex

    Viral corruption spreads.

    MC target

    $50,000

    ZORP blast

    14M

    Charges

    25

  3. 13
    #13

    Nullora

    Threat level · BETA

    Nullora

    Reality thins to void.

    MC target

    $100,000

    ZORP blast

    13M

    Charges

    50

  4. 12
    #12

    Malvak

    Threat level · GAMMA

    Malvak

    The fortress blocks all paths.

    MC target

    $200,000

    ZORP blast

    12M

    Charges

    150

  5. 11
    #11

    Sloathar

    Threat level · DELTA

    Sloathar

    Time itself slows.

    MC target

    $500,000

    ZORP blast

    11M

    Charges

    100

  6. 10
    #10

    Echohex

    Threat level · EPSILON

    Echohex

    Echoes rewrite the chain.

    MC target

    $700,000

    ZORP blast

    10M

    Charges

    150

  7. 9
    #9

    Gaspera

    Threat level · ZETA

    Gaspera

    Gas fees become weapons.

    MC target

    $1,000,000

    ZORP blast

    9M

    Charges

    500

  8. 8
    #8

    Spamora

    Threat level · ETA

    Spamora

    Noise drowns the signal.

    MC target

    $2,000,000

    ZORP blast

    8M

    Charges

    500

  9. 7
    #7

    Capturon

    Threat level · THETA

    Capturon

    Every wallet is a trap.

    MC target

    $3,000,000

    ZORP blast

    7M

    Charges

    500

  10. 6
    #6

    Driftlock

    Threat level · IOTA

    Driftlock

    Drift locks the fleet.

    MC target

    $4,000,000

    ZORP blast

    6M

    Charges

    500

  11. 5
    #5

    Taxarok

    Threat level · KAPPA

    Taxarok

    The tithe must be paid.

    MC target

    $5,000,000

    ZORP blast

    5M

    Charges

    500

  12. 4
    #4

    Lagmor

    Threat level · LAMBDA

    Lagmor

    Lag consumes momentum.

    MC target

    $6,000,000

    ZORP blast

    4M

    Charges

    500

  13. 3
    #3

    [ENCRYPTED]

    Threat level · ???

    [ENCRYPTED]

    Encrypted payload.

    MC target

    $7,000,000

    ZORP blast

    3M

    Charges

    500

  14. 2
    #2

    [ENCRYPTED]

    Threat level · ???

    [ENCRYPTED]

    Encrypted payload.

    MC target

    $8,000,000

    ZORP blast

    2M

    Charges

    500

  15. 1
    #1

    [ENCRYPTED]

    Threat level · OMEGA

    [ENCRYPTED]

    Final boss. Classified.

    MC target

    $9,000,000

    ZORP blast

    1M

    Charges

    FINAL

Key addresses

Contract read functions

Read live on-chain data from 0x4F22c51172C0709789378F31344E2de6B67F9CCC — no explorer or Remix required. Click Read on-chain on any function below.

Mission status

High-level dashboard reads — same data the site uses in Mission Control.

  • getCurrentMissionStatus()

    Single call for the mission HUD: current sector (15→1), boss name, cannon progress, and whether a ZORP blast is ready.

    getCurrentMissionStatus() → sector, boss, cannon charge, charges required, charge %, can defeat boss, complete, active

  • getCurrentOperationalStatus()

    Can burns run right now? Returns ready flags, next milestone, cached market cap (when fresh), and a plain-English blocking reason if not.

    getCurrentOperationalStatus() → canFuelBurn, canBossBlast, nextMilestone, marketCap, blockingReason

    Requires a valid oracle cache (< 1 hour). If stale, marketCap is 0 and blockingReason suggests running heartbeat.

  • getAwakeningPhaseStatus()

    Sector 15 only. Returns whether FUEL burns and the 15M ZORP blast are allowed, plus a phase label (e.g. “Waiting for $20K MC”).

    getAwakeningPhaseStatus() → canFuel, canZorp, charges, required, marketCap, phase

  • mission()

    Raw mission struct: lifetime burn totals, heartbeat timestamp, and last burn time.

    mission() → sector, cannonChargeCount, totalFuelBurned, totalZorpBurned, active, complete, lastHeartbeat, missedHeartbeats, lastBurn

  • getContractInfo()

    Pure metadata — returns ZORPDualBurnMission369, 3.6.9, and the mission description string.

    getContractInfo() → name, version, description

Oracle & market cap

How the contract prices ZORP for milestone checks (TWAP, spot, cache).

  • getOracleStatus()

    Oracle health check: TWAP/spot readiness, cached market cap, cache age in seconds, whether cache is within the 1-hour window, and if governance manual override is on.

    getOracleStatus() → twapReady, spotReady, cachedMc, cacheAge, cacheValid, manualOverrideActive

  • marketCapCache()

    Stored market cap snapshot and when it was last written. isValid is the struct flag; getOracleStatus also checks age.

    marketCapCache() → cachedMarketCap, lastUpdateTime, isValid

  • lastSecureMarketCap()

    Market cap recorded at the last successful executeBurns — useful when comparing to live oracle reads.

    lastSecureMarketCap() → uint256

  • lastObservationTime()

    Unix timestamp of the last TWAP price observation stored on-chain.

    lastObservationTime() → uint256

  • manualMarketCapOverride()

    Governance-set override MC value (only used when useManualOverride is true).

    manualMarketCapOverride() → uint256

  • useManualOverride()

    Whether governance manual market cap override is active (testing / emergency).

    useManualOverride() → bool

  • _getTWAPZorpPerWPLS()

    External view: 24h TWAP ZORP/WPLS price (1e18 scaled). Returns 0 if insufficient observations.

    _getTWAPZorpPerWPLS() → zorpPerWpls

    Low-level oracle helper — may revert if pair tokens are unexpected.

  • _getInstantMarketCap()

    External view: spot market cap from pair reserves × WPLS/DAI price.

    _getInstantMarketCap() → marketCap

    Reverts if liquidity is below MIN_LIQUIDITY_THRESHOLD.

  • _getWPLSPrice()

    External view: WPLS price in DAI (1e18) from the WPLS/DAI pair.

    _getWPLSPrice() → price

Sectors & bosses

Per-sector milestones, burns, and classified boss data.

  • getBossInfo()

    Full boss card for sector 1–15: name, ZORP burn size, cannon charges needed, MC gate, defeat status.

    getBossInfo(sector) → name, zorpBurnAmount, chargesRequired, marketCapMilestone, defeated, defeatTimestamp

    Pass sector number (15 = Awakening), not array index.

  • bosses()

    Same boss fields by array index 0–14 (index 0 = sector 15, index 14 = sector 1).

    bosses(index) → name, zorpBurnAmount, chargesRequired, marketCapMilestone, defeated, defeatTimestamp

  • getSectorProgress()

    $2K step burn tracker for a sector: where FUEL burns started, next milestone, and how many burns completed.

    getSectorProgress(sector) → startMilestone, nextBurnMilestone, burnsExecuted, isProgressInitialized

  • sectorProgress()

    Mapping accessor — same data as getSectorProgress for a given sector key.

    sectorProgress(sector) → startMilestone, nextBurnMilestone, burnsExecuted, progressInitialized

Access & configuration

Roles, pause state, token addresses, and on-chain constants.

  • isKeeper()

    Whether an address may call heartbeat, commitBurn, and executeBurns.

    isKeeper(address) → bool

  • isWatchdog()

    Watchdog allowlist (can pause with keeper/governance).

    isWatchdog(address) → bool

  • governance()

    Current governance address. address(0) after renounce.

    governance() → address

  • keeperCount()

    Number of active keeper addresses.

    keeperCount() → uint256

  • contractInitialized()

    Must be true (via initialize()) before burns can execute.

    contractInitialized() → bool

  • emergencyPaused()

    True when mission is emergency-paused — burns blocked.

    emergencyPaused() → bool

  • zorpToken()

    ZORP ERC-20 address.

    zorpToken() → address

  • fuelToken()

    FUEL ERC-20 address.

    fuelToken() → address

  • burnVault()

    Destination for burned FUEL and ZORP (0x…369 on PulseChain).

    burnVault() → address

  • zorpPair()

    ZORP/WPLS Uniswap V2 pair used for TWAP and spot MC.

    zorpPair() → address

  • wplsPair()

    WPLS/DAI pair used to price WPLS in USD terms.

    wplsPair() → address

Public constants

Immutable tuning parameters — all view, no args.

  • FUEL_BURN_AMOUNT()

    FUEL sent to burnVault per cannon charge.

    FUEL_BURN_AMOUNT() → 55555e18

  • AWAKENING_ZORP_BURN_THRESHOLD()

    Sector 15 ZORP blast requires this MC ($50K, 1e18 USD scale), not the $20K FUEL gate.

    AWAKENING_ZORP_BURN_THRESHOLD() → 50000e18

  • MILESTONE_STEP_SIZE()

    Each FUEL burn advances the next milestone by $2K MC.

    MILESTONE_STEP_SIZE() → 2000e18

  • CACHE_VALIDITY_PERIOD()

    Oracle cache considered fresh for operational checks.

    CACHE_VALIDITY_PERIOD() → 1 hours

  • GOVERNANCE_TIMELOCK()

    Delay before governance transfer or renounce executes.

    GOVERNANCE_TIMELOCK() → 48 hours

  • MIN_BURN_INTERVAL()

    Minimum seconds between executeBurns calls.

    MIN_BURN_INTERVAL() → 90

  • MAX_BURNS_PER_TX()

    Max FUEL burns batched in one executeBurns.

    MAX_BURNS_PER_TX() → 5

  • SLIPPAGE_TOLERANCE_BPS()

    2% tolerance between expectedMarketCap and oracle MC on execute.

    SLIPPAGE_TOLERANCE_BPS() → 200

  • TWAP_SPOT_DEVIATION_BPS()

    5% max TWAP vs spot divergence before oracle rejects both.

    TWAP_SPOT_DEVIATION_BPS() → 500

  • HEARTBEAT_INTERVAL()

    Expected keeper heartbeat cadence.

    HEARTBEAT_INTERVAL() → 15 minutes

Write functions (summary)

State-changing calls — grouped by who can run them. Use the Keeper console or homepage Console for oracle refresh and keeper burns.

  • getLatestMarketCap()

    Refresh oracle + update cache. Anyone can call. Nonpayable state change.

    Public
  • heartbeat()

    Keeper ping + oracle refresh. Updates lastHeartbeatTimestamp.

    Keeper
  • commitBurn()

    Step 1: store commitHash. Must execute on a later block.

    Keeper
  • executeBurns()

    Step 2: FUEL burns and/or ZORP boss blast when milestones align.

    Keeper
  • initialize()

    One-time TWAP bootstrap + sector 15 progress. Required before burns.

    Governance
  • setManualMarketCapOverride()

    Enable/disable fixed MC for testing (turn off before renounce).

    Governance
  • queueRenounceGovernance / executeRenounceGovernance()

    48h timelock path to renounce — sets governance to address(0).

    Governance

Full contract ABI

Verified ABI from PulseScan — 114 entries (views, writes, events, errors). Copy for Remix, ethers, viem, or Hardhat.

[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_zorpToken",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_fuelToken",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_zorpPair",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_wplsPair",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_burnVault",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_wpls",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_dai",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_governance",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [],
    "name": "ActionAlreadyExecuted",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "AlreadyInitialized",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "BossAlreadyDefeated",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "BurnTooFrequent",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "CannonNotCharged",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ContractPaused",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InsufficientLiquidity",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InsufficientTWAPData",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidCommit",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidInput",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "MissionComplete",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "MissionInactive",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "NotInitialized",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "PriceManipulation",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ReentrancyGuard",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "SlippageExceeded",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TimelockNotExpired",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "TransferFailed",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "Unauthorized",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "sector",
        "type": "uint256"
      }
    ],
    "name": "BossDefeated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "sector",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "BossRevealed",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "commitHash",
        "type": "bytes32"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "BurnCommitted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "keeper",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "string",
        "name": "burnType",
        "type": "string"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "marketCap",
        "type": "uint256"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "milestoneOrSector",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "BurnExecuted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "percent",
        "type": "uint256"
      }
    ],
    "name": "CannonCharged",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "ContractInitialized",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "string",
        "name": "action",
        "type": "string"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "EmergencyAction",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "user",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "FuelBurned",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "actionId",
        "type": "bytes32"
      },
      {
        "indexed": false,
        "internalType": "string",
        "name": "actionType",
        "type": "string"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "executeAfter",
        "type": "uint256"
      }
    ],
    "name": "GovernanceActionQueued",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "oldGov",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newGov",
        "type": "address"
      }
    ],
    "name": "GovernanceTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "keeper",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "active",
        "type": "bool"
      }
    ],
    "name": "KeeperUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "overrideValue",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "enabled",
        "type": "bool"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "ManualOverrideSet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "newValue",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "MarketCapCacheUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "sector",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "nextMilestone",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "burnsExecuted",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "MilestoneProgressUpdate",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "finalMarketCap",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "MissionCompleted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "MissionHeartbeatEmitted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "startTime",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "string",
        "name": "action",
        "type": "string"
      }
    ],
    "name": "MissionStartTime",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "MissionStarted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "sector",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "string",
        "name": "currentBossName",
        "type": "string"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "cannonChargePercent",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "zorpBurnReady",
        "type": "bool"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "bossesDefeated",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "missionComplete",
        "type": "bool"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "MissionStatusUpdate",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "bool",
        "name": "active",
        "type": "bool"
      }
    ],
    "name": "MissionToggled",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "string",
        "name": "reason",
        "type": "string"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "fallbackValue",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "OracleFallbackTriggered",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "twapPrice",
        "type": "uint256"
      }
    ],
    "name": "PriceObservationUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "sector",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "startMilestone",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "timestamp",
        "type": "uint256"
      }
    ],
    "name": "SectorProgressReset",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "AWAKENING_ZORP_BURN_THRESHOLD",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "CACHE_VALIDITY_PERIOD",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "FUEL_BURN_AMOUNT",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "GOVERNANCE_TIMELOCK",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "HEARTBEAT_INTERVAL",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_BURNS_PER_TX",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MILESTONE_STEP_SIZE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MIN_BURN_INTERVAL",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MIN_LIQUIDITY_THRESHOLD",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MIN_TWAP_OBSERVATIONS",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "SLIPPAGE_TOLERANCE_BPS",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "TWAP_PERIOD",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "TWAP_SPOT_DEVIATION_BPS",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_getInstantMarketCap",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_getTWAPZorpPerWPLS",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "zorpPerWpls_1e18",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_getWPLSPrice",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "acceptGovernance",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "keeper",
        "type": "address"
      }
    ],
    "name": "addKeeper",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "watchdog",
        "type": "address"
      }
    ],
    "name": "addWatchdog",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "bosses",
    "outputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "uint256",
        "name": "zorpBurnAmount",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "chargesRequired",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "marketCapMilestone",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "defeated",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "defeatTimestamp",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "burnVault",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "commitHash",
        "type": "bytes32"
      }
    ],
    "name": "commitBurn",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "name": "committedBurns",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "contractInitialized",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "dai",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "deploymentTimestamp",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "emergencyPause",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "emergencyPaused",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "newChargeCount",
        "type": "uint256"
      }
    ],
    "name": "emergencyResetCannonCharges",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "sector",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "newStartMilestone",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "burnsAlreadyExecuted",
        "type": "uint256"
      }
    ],
    "name": "emergencyResetSectorProgress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "emergencyUnpause",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "emergencyWithdraw",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "expectedMarketCap",
        "type": "uint256"
      },
      {
        "internalType": "bytes32",
        "name": "commitHash",
        "type": "bytes32"
      }
    ],
    "name": "executeBurns",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "actionId",
        "type": "bytes32"
      }
    ],
    "name": "executeGovernanceTransfer",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "actionId",
        "type": "bytes32"
      }
    ],
    "name": "executeRenounceGovernance",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "fuelToken",
    "outputs": [
      {
        "internalType": "contract IERC20",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getAwakeningPhaseStatus",
    "outputs": [
      {
        "internalType": "bool",
        "name": "canStartFuelBurns",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "canExecuteZorpBurn",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "currentCharges",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "requiredCharges",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "currentMarketCap",
        "type": "uint256"
      },
      {
        "internalType": "string",
        "name": "currentPhase",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "sector",
        "type": "uint256"
      }
    ],
    "name": "getBossInfo",
    "outputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "uint256",
        "name": "zorpBurnAmount",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "chargesRequired",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "marketCapMilestone",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "defeated",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "defeatTimestamp",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getContractInfo",
    "outputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "version",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "description",
        "type": "string"
      }
    ],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getCurrentMissionStatus",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "currentSector",
        "type": "uint256"
      },
      {
        "internalType": "string",
        "name": "currentBossName",
        "type": "string"
      },
      {
        "internalType": "uint256",
        "name": "cannonCharge",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "chargesRequired",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "chargePercent",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "canDefeatBoss",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "missionComplete",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "isMissionActive",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getCurrentOperationalStatus",
    "outputs": [
      {
        "internalType": "bool",
        "name": "canExecuteFuelBurns",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "canExecuteBossBlast",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "nextMilestone",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "currentMarketCap",
        "type": "uint256"
      },
      {
        "internalType": "string",
        "name": "blockingReason",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getLatestMarketCap",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getOracleStatus",
    "outputs": [
      {
        "internalType": "bool",
        "name": "twapReady",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "spotReady",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "cachedMc",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "cacheAge",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "cacheValid",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "manualOverrideActive",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "sector",
        "type": "uint256"
      }
    ],
    "name": "getSectorProgress",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "startMilestone",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "nextBurnMilestone",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "burnsExecuted",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "isProgressInitialized",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "governance",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "heartbeat",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "initialize",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "isKeeper",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "isWatchdog",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "keeperCount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "lastObservationTime",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "lastSecureMarketCap",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "manualMarketCapOverride",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "marketCapCache",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "cachedMarketCap",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "lastUpdateTime",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "isValid",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "mission",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "currentSector",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "cannonChargeCount",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "totalFuelBurned",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "totalZorpBurned",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "missionActive",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "missionComplete",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "lastHeartbeatTimestamp",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "missedHeartbeats",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "lastBurnTimestamp",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "missionStartTime",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "name": "pendingActions",
    "outputs": [
      {
        "internalType": "address",
        "name": "newGovernance",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "missionToggle",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "resumeMission",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "emergencyUnpause",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "executeAfter",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "executed",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "pendingGovernance",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "priceObservations",
    "outputs": [
      {
        "internalType": "uint32",
        "name": "timestamp",
        "type": "uint32"
      },
      {
        "internalType": "uint256",
        "name": "price0Cumulative",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "price1Cumulative",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newGovernance",
        "type": "address"
      }
    ],
    "name": "queueGovernanceAction",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "queueRenounceGovernance",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "keeper",
        "type": "address"
      }
    ],
    "name": "removeKeeper",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "watchdog",
        "type": "address"
      }
    ],
    "name": "removeWatchdog",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "sector",
        "type": "uint256"
      },
      {
        "internalType": "string",
        "name": "newName",
        "type": "string"
      }
    ],
    "name": "revealBoss",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "sectorProgress",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "startMilestone",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "nextBurnMilestone",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "burnsExecuted",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "progressInitialized",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "overrideValue",
        "type": "uint256"
      },
      {
        "internalType": "bool",
        "name": "enabled",
        "type": "bool"
      }
    ],
    "name": "setManualMarketCapOverride",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "useManualOverride",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "wpls",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "wplsPair",
    "outputs": [
      {
        "internalType": "contract IUniswapV2Pair",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "zorpPair",
    "outputs": [
      {
        "internalType": "contract IUniswapV2Pair",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "zorpToken",
    "outputs": [
      {
        "internalType": "contract IERC20",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  }
]

Oracle & cache notes

  • CACHE VALID — market cap snapshot is less than one hour old (CACHE_VALIDITY_PERIOD).
  • CACHE STALE — snapshot expired or refresh returned fallback data without updating the timestamp (e.g. TWAP/spot unavailable). A successful fresh oracle read or keeper heartbeat updates the cache.
  • Burns use commit–reveal: keeper calls commitBurn(hash), waits until the next block, then executeBurns(expectedMc, hash).