Keepers
Any wallet can trigger due payouts and earn keeper tips. Automate it with the keeper bot.
How keeper incentives work
A payer can fund a tip per milestone when creating a schedule; it is locked alongside the payment. After a date passes, whoever calls release(id) or releaseMany(ids) receives the tip in the same transaction. The recipient always gets the full milestone.
releaseMany isolates each schedule, so one schedule whose payout reverts (for example a blocklisted recipient) is skipped instead of blocking the batch.
A ready-to-run bot lives in keeper/ in the repo. It simulates each batch and compares tips against gas before sending.
git clone https://github.com/kutluhaneth46/dueline cd dueline/keeper && npm install # read-only pass, no key needed DRY_RUN=1 npm run once # loop every 60s, sending releaseMany when tips cover gas PRIVATE_KEY=0x... npm start
Defaults to RPC_URL=https://rpc.testnet.arc.io (the old arc.network RPC is offline). Other options: POLL_INTERVAL_SECONDS, MIN_PROFIT_USDC, ALWAYS_RELEASE, ONCE. Use a dedicated low-balance wallet and never commit private keys. Full docs