Cron
Live, armed by handRuns on
OutLayer has no scheduler, so the contract keeps a chain of yielded promises alive. A hop runs about every 2 minutes for about 2.25 Tgas, and each job run takes 95 Tgas from the chain. One arm of 1 PGas lasts about 15 hours with no jobs and about 6 with one hourly job. Then the chain stops until a transaction arms it again, and nobody does that for you.
Commands
quay cron add "every 60m" digest quay cron arm quay cron status
How Harbour Board uses it
- The Board's
digestjob runs every 60 minutes. Its first scheduled run failed because the contract gave OutLayer 45 Tgas. Contract 3.0.1 gives it 80. - The next run, at 23:22 UTC on 2026-11-10, wrote a digest, and the Board's home page says it came from the hourly job.
Proof on testnet
| The schedule armed; every tick and run is a receipt of it | GJSg1cdT… |
|---|---|
| Contract 3.0.1 with the gas fix | G5EUhkto… |
| The latest digest | the Board's home page |
Check it without a key: view cron_status '{}' says whether the chain is armed now, its hops and its last tick. The view helper is in the repository README, and scripts/judge.sh runs these checks.
What you trust
No operator runs the schedule. The contract does, and OutLayer runs each job. When an arm runs out, the page keeps the last digest with its time. Run quay cron arm on a timer you control.
Limits
| Jobs | At most 8, every 5 minutes or slower |
|---|---|
| Cost | Each arm reserves about 1 NEAR while it runs and refunds the unused gas |
Every flag is in the command reference, generated from quay cron --help.