Skip to content
Pixel-art scene: the control shed with a gauge board and a beacon on the roof
OPS · AUTOMATION, LOGS & TRANSACTION PROOFS

Nobody pushes buttons here.
The chain keeps the receipts.

A supervisor cranks the keeper every 30 minutes and the agent every 6 hours — the same rehearsed scripts, on a schedule, dry-run-proof and watchdog-guarded. This page shows what the automation sees right now (running the keeper's exact decision code in your browser), and every action it has ever taken, decoded from chain events with the transaction hash as proof. Pre-launch: the automation idles armed; the checks below that can be live already are.

AUTOMATION STATE · CADENCE, INTERVALS, FALLBACK

KEEPER CADENCE
every 30m

watchdog → dispatch() → fenced convert(). Dry-run by default; nothing signs without --execute. Armed, idling pre-launch.

AGENT CADENCE
every 6h

signals → fenced trade(). Its own gates decide: market hours, ±15pp band, fence. Most passes correctly do nothing.

NEXT CONVERT ELIGIBLE

lastConvert + minInterval. Contract-enforced (TooFrequent) — the schedule cannot outrun the chain.

DEAD-MAN FALLBACK

If the keeper goes silent past fallbackAfter (7d), ANYONE may call convertViaV4 — liveness does not depend on us.

ACTION LOG · EVERY ROW IS AN ON-CHAIN EVENT · TX HASH = PROOF

FULL REASONING PER TXN → /TXNS

The log starts with the first automated crank

Every dispatch, convert and trade is an on-chain event. This table decodes them straight from the chain — self-reported logs are not proofs, transaction hashes are. Nothing is deployed yet, so there is honestly nothing to show.

WATCHDOGS · WHAT STOPS THE MACHINE

BENEFICIARY WATCHDOG
ARMS AT LAUNCH

Every keeper run reads taxProcessor.marketAddress() first. Any mismatch halts ALL cranking (exit 2, human paged) — the flow is never auto-retried into a diverted stream.

PLATFORM CODE-HASH DRIFT (LIVE NOW)
CHECKING…

keccak256 of the live Flap Portal + TaxTokenV3 bytecode vs the pinned hashes — the same guard the keeper and launcher assert. Live today, pre-launch.

DECISION TRACE · THE KEEPER'S OWN CODE, LIVE IN YOUR BROWSER
processor pending WETH
dispatch()?
executor ETH
convert()?
next trade eligible

These verdicts come from scripts/keeper-lib.mjs — the exact functions the automation runs, imported into this page unmodified and fed the same live reads. Pre-launch they honestly show "—".

MARKET-HOURS GATE · FEED CLOCKS (LIVE NOW)
USO feed
SLV feed
ETH feed
market

Feeds update 24/5 and freeze on weekends; anything older than the 4-day tolerance closes the market and nothing trades — fail-closed, mirrored on-chain (StaleOracle).

THE REST OF THE GLASS HOUSE

$MSTRGY automation is supervised locally (logs/ops-runs.jsonl), bounded on-chain (fence, clamps, intervals), and backstopped trustlessly (permissionless fallback). The site never shows a number that is not an on-chain read.