Define a condition and a policy. When it holds, a keeper simulates the exact transaction, sends it inside your limits and records a public receipt.
A contract can know the price. It can't notice it.
Smart contracts only run when someone sends a transaction. Conditions become true and nothing happens until an external caller shows up. ACTUATE is that caller, bounded by your policy.
Contract alone
Waiting.
- rebalance() is public
- condition readable onchain: true
- no caller → no transaction
Contract + ACTUATE job
Armed.
- observed block
- condition evaluated
- simulated: success
- sent within policy
Illustration. The price is a local control, not a market feed.
Five stages between a condition and a receipt.
Keepers read every new block.
Each active job is checked against fresh chain state: a time window, a block interval, a contract event, a balance or an oracle value. Nothing is polled from a private API.
Reading block …100
Every run passes five gates.
Trigger, policy, simulation, execution, receipt. Nothing is sent unless every gate passes. Select a stage to see what it checks.
- TriggerWaiting
- PolicyWaiting
- SimulationWaiting
- ExecutionWaiting
- ReceiptWaiting
Each automation passes the same five gates, in order. A failure at any gate stops the run.
Install a module instead of writing a bot.
Demonstration. No modules are published on mainnet yet; these are concepts, not live listings.
M monitors · S simulates · E executes. Select a module to inspect it.
Five decisions. Then it runs.
Pick a module, define the trigger, cap the policy, review the simulation, prepare the job. The preview is local; the real builder lives in the console after you connect.
Write a manifest. Earn when it runs.
A module declares one trigger, one action, the selectors it may call and the permissions it requests. Published versions are immutable. Confirmed, paid runs feed the epoch reward score.
{name: "treasury-sweep",version: "1.0.0",trigger: { type: "balance", gte: "{{config.floor}}" },action: { type: "call", target: "{{config.vault}}" },selectors: ["deposit(uint256)"],permissions: ["monitor", "simulate", "execute"],}
- manifest hashed → AutomationRegistry
- version 1.0.0 published (immutable)
- installer pins version + config
- keeper evaluates trigger each block
- confirmed runs score epoch rewards
Three functions, one loop. Nothing else.
Execution credits
Holding ACT grants a quota of subsidized executions per epoch, scaled by tier and capped by the credit program’s remaining budget.
Details