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:
MaintenanceHubMarketRouterVeClaimNFTShareholderRoyaltiesLpStakingVault7D
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–25deadline:now + 120sminClaimOutStaking: 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
- Full surface: Maintenance and bots
- Pause rules: Security, guardian, pausing