Some Loops Shouldn't Have an Owner
Games for Pennies
On Base / Arbitrum gas is ~100–1000× cheaper. $0.0000/tick at current prices · base fee 2% on testnets, target 5% on mainnet
Built for Loops That Can't Self-Trigger
Chainlink Automation works when someone benefits from triggering. AutoLoop exists for the structural cases where nobody does.
Neutral Keeper Execution
A worker fleet with no stake in any outcome. When your loop damages participants, selects winners, executes governance, or triggers a vault transfer — you need a keeper who doesn't care about the result and won't stall, collude, or front-run.
On-Chain ECVRF Verification
Native ECVRF proof generation and trustless on-chain verification. Provably fair randomness on every tick — the proof is verified by the contract itself, not trusted from a third-party oracle service.
Hybrid VRF — Randomness When You Need It
Standard-cost ticks with VRF only when your contract requests it. Your game decides when randomness matters — loot drops, critical hits, spawns — and pays VRF gas only on those ticks.
Fee-on-Execution Model
Pay only when loops actually run. Gas reimbursement plus a small base fee split between protocol and controllers. Transparent and predictable.
Developer Friendly
Simple functions, direct hooks. Sample contracts included.
Multi-Network Ready
Live on Ethereum mainnet, Sepolia, Base Sepolia, and Arbitrum Sepolia. The same contracts and worker infrastructure run on every EVM chain — 19 demo contracts deployed across all four networks.
Permissioned & Secure
Role-based access control ensures only registered controllers can trigger loops. On-chain VRF verification prevents manipulation.
Every Loop Here Fails the Self-Trigger Test
Games, agents, DeFi, AI — each for a different structural reason. Not design choices. Proofs.
Inverted self-interest
Every VRF tick picks a random floor and damages it. No floor owner will ever trigger the loop — it might hit their own asset. A neutral keeper is the only viable operator.
Nobody should hold the trigger
A dead man's switch that transfers your vault to a beneficiary if you miss a check-in window. The whole point is that no human should control when it fires.
Front-running attack surface
VRF selects winners from a registered pool on schedule. If player-controlled, the trigger holder knows who wins before calling. AutoLoop fires first, asks questions never.
Timing as attack surface
The high bidder wants the auction closed now. Counter-bidders want an extension. No player-controlled trigger is fair — proving the problem extends far beyond randomness.
4-way coordination failure
Third hop in KaijuLeague → KaijuOracle → ForecasterLeaderboard. Adversarial timing, cross-contract dependency, free-rider gas, prize-pool timing attack — no single player resolves all four.
Neutral on-chain schedule
An LLM agent that runs off-chain and acts on-chain every N blocks. The agent itself shouldn't decide when it fires — its operator, users, and rivals all have conflicting interests.
Up and Running in 4 Steps
From contract to autonomous loop in minutes, not months.
Inherit
Extend one of three base contracts:
- •AutoLoopCompatible — pure automation
- •AutoLoopHybridVRFCompatible — selective randomness (loot, crits, spawns)
- •AutoLoopVRFCompatible — randomness on every tick
Implement
Add shouldProgressLoop() to signal readiness and progressLoop() to execute your game logic.
Register & Fund
Register your contract on-chain and deposit ETH to cover gas and fees.
Let It Run
Workers automatically detect and execute your loops. Sit back and watch your loop run — no owner required.
See the Details
Gas comparisons, example sessions, and fee structure — everything you need to budget your automation.
Fee Breakdown (Mainnet)
On L2 testnets the base fee is set to 2%. Mainnet L2 target: 5%. The fee is governance-adjustable by network to match gas economics.
Simple by Design
Smart contracts, TypeScript SDK, and AI-native MCP tools — everything you need to build.
1// SPDX-License-Identifier: MIT2pragma solidity ^0.8.13;34// Import the base contract that makes any5// contract compatible with AutoLoop workers6import {AutoLoopCompatible} from7 "autoloop/AutoLoopCompatible.sol";89// A simple demo: number goes up every interval10contract NumberGoUp is AutoLoopCompatible {11 uint256 public number;12 uint256 public interval;13 uint256 public lastTimeStamp;14 uint256 private _loopID;1516 constructor(uint256 _interval) {17 interval = _interval;18 lastTimeStamp = block.timestamp;19 }2021 // Workers call this every block to check22 // if the contract is ready for an update23 function shouldProgressLoop()24 external view override25 returns (26 bool loopIsReady,27 bytes memory progressWithData28 )29 {30 // Ready when enough time has passed31 loopIsReady =32 (block.timestamp - lastTimeStamp) > interval;33 // Pass loop ID to prevent duplicate runs34 progressWithData = abi.encode(_loopID);35 }3637 // Called by AutoLoop when shouldProgressLoop38 // returns true — this is your update logic39 function progressLoop(40 bytes calldata progressWithData41 ) external override {42 uint256 loopID =43 abi.decode(progressWithData, (uint256));44 // Guard against stale or replayed calls45 require(loopID == _loopID, "stale loop");46 lastTimeStamp = block.timestamp;47 ++number;48 ++_loopID;49 }50}See How We Compare to Chainlink
Three automation modes — Standard, Hybrid VRF, and Full VRF — all in one protocol. No separate subscriptions. Cheaper than Chainlink in every tier.