Skip to Content
TutorialsRun Maintenance Bot

Run a MaintenanceHub bot (poke loop)

Goal:

  • run permissionless upkeep safely and predictably
  • keep checkpoints, reward flushes, and marketplace automation moving

MaintenanceHub is designed so poke never reverts due to a single subcall failure.

Flow

Steps

1) Load contract addresses from the manifest

You need:

  • MaintenanceHub
  • MarketRouter
  • VeClaimNFT
  • ShareholderRoyalties
  • LpStakingVault7D

2) Read pause flags before you call

At minimum:

  • MineCore.takeoversPaused()
  • Furnace.lockingPaused()
  • MarketRouter.tradingPaused()

Policy:

  • If trading is paused, do not include offerIds for auto-Furnace execution.
  • If locking is paused, treat any slippage-dependent swaps as unsafe.

3) Construct PokeArgs

Shape (ABI order matters):

  • offerIds: uint256[]
  • maxOffers: uint256 (clamped onchain)
  • deadline: uint256 (swap deadline)
  • minClaimOutStaking: uint256

Practical defaults:

  • maxOffers: 10–25
  • deadline: now + 120s
  • minClaimOutStaking: computed from quotes with a conservative slippage bps

4) Run on a fixed cadence

Typical patterns:

  • every 1–5 minutes
  • or event-driven (new offerIds appended, then poke)

5) Observe outcomes via events

Index:

  • MaintenanceHub.Poked
  • downstream events (Market router auto-Furnace executed, flush, fee harvest, etc)

What success looks like

  • poke calls succeed consistently and gas stays stable.
  • Your bot backs off automatically during pauses.

Next reads