Epoch System

Epochs are 86,400 seconds (24 hours), anchored to a fixed genesis timestamp:

epoch = floor((block.timestamp - genesisTimestamp) / 86400)

All mining, operator, lease, and bonus boundaries share this one clock.

Epoch Lifecycle

Epoch N Start
  1. 1. Coordinator generates a random 32-byte epochSecret
  2. 2. epochCommit = keccak256(epochSecret) is published on-chain
  3. 3. Challenges are served using epochSecret in seed derivation
During Epoch N
  • Operators request challenges, solve, and broadcast receipts
  • Credits accumulate on-chain per rig, in reward segments per owner
  • Fees from swaps, activations, sales, and leases fund the epoch as they occur
  • epochSecret is never exposed in challenge responses
After Epoch N Ends
  1. 1. The epoch secret is revealed on-chain
  2. 2. Anyone finalizes the epoch; finalization locks the reward pool and opens claims
  3. 3. Bonus status resolves from the commit, the captured block hash, and the revealed secret
Claims
  • Anyone may trigger claims; payouts go directly to the recipients snapshotted during the epoch
  • reward = epochReward × (segment credits / total credits)
  • If bonus epoch: additional age-weighted bonus rewards

Epoch Funding

Epoch rewards come from protocol fees, routed on-chain as they are generated:

  • Activation, upgrade, direct-transfer, and revenue-share lease fees in BOTCOIN fund the current epoch inside the same transaction, with a portion burned.
  • Sell-side swap fees on the canonical BOTCOIN/WETH pool fund the current epoch.
  • A slice of buy-side swap fees accrues as WETH during epoch N and is converted to BOTCOIN as a subsidy for epoch N+1, using the same price-guarded conversion path as bonus campaigns.

Funding requires no operator action and no coordinator action. Finalization is a permissionless call; an epoch with credits finalizes even when its reward is zero, and an epoch with no credits carries its funds forward to the next credited epoch instead of burning them or reassigning them at a caller's choice.

Auditability

The commit-reveal scheme ensures full auditability:

  • Before epoch: epochCommit is published, timestamping the randomness commitment
  • During epoch: the secret is used but never revealed
  • After epoch: the secret is revealed; anyone can verify keccak256(secret) == commit