ARC-XXXX: AlgoRhythm, a Decentralized Task Scheduler on Algorand
Author: Paweł Pierścionek (aka Urtho)
Status: Draft
Created: 2025-11-28
Requires: ARC-0004 (Application Specification), ARC-0014 (Box Storage)
This ARC proposes a standard for implementing a decentralized task scheduler on the Algorand blockchain.
The system consists of the following primitives
- A master queue manager singleton contract, that registers and oversees multiple queues
- Queues contracts, either private or public that manage jobs
- Schedules (optional), apps that control recurrance, their start and termination criteria
- Jobs which can be created directly or via schedules and realiably execute a task
- Tasks execute user-defined applications with access to configurable data.
External stimuli from eligible accounts trigger batch processing or history cleanup, with incentives via fee sharing. A chain of trust mechanism ensures that tasks can verify the authorization of calling jobs or schedules through signature verification. This enables reliable, permissioned automation of on-chain tasks, such as recurring payments, data processing or oracle updates, in a decentralized manner.
Algorand's smart contract ecosystem lacks a standardized framework for scheduling and executing deferred or recurring tasks in a decentralized way. Existing solutions often rely on centralized off-chain bots or cron jobs, introducing single points of failure, censorship risks, and trust dependencies. This proposal introduces hybrid on/off-chain, permissionless (public queues) or permissioned (private queues) scheduler that laverages Algorand's application calls, box storage, and inner transactions for efficient task management. It supports incentive mechanisms for external participants to trigger executions, ensuring liveness without central coordinators. The chain of trust addresses security concerns in delegated executions, allowing tasks to enforce authorization from specific signers or multi-signers.
This standard promotes interoperability, enabling developers to build composable automation tools, such as DeFi yield farming schedulers, NFT minting queues, governance voting reminders, while adhering to Algorand's performance limits.
The system comprises:
- Master Queue Manager App: A singleton application that registers and tracks queues.
- Queue Apps: Individual applications (one per queue) that manage jobs, configurations, and stimuli.
- Schedule Apps: Applications that define recurring job creation based on cron-like expressions.
- Job Apps: Ephemeral applications representing individual tasks, which reliably call a user-defined
task_appno sooner than some round or UTC timestamp. - Task Apps: User-provided, ephemeral or reference ARC task implementations that perform the actual work, accessing metadata from the calling job.
All components use Algorand Applications (apps) with global state, local state, and box storage.
External stimuli are provided via app calls from any eligible account, triggering batch processing (up to batch_size_max) or history purging.
- how to we authorize multiple tasks_apps per job to actually spend from treasury
- research decentralized competition
- no more than 1 batch per signal
- clarify chain of trust - what is it that sig/msig are actually signing
- see if task_apps can actually verify that they are called by specfic job (or parent schedule) and signature threshold is OK
- decide if Reti manager is the best initial implementation of smart signals. Pools (or just pool operators) could be rewarded for triggering schedules/jobs.
- do we need the queue manager (signleton) app abstraction at all (rate limiting) ?
- what are the possible failures of batches.
- fee structure (anti spam + incentives)
- can we make monitoring user friendly (onchain success, failure notifications?)
- transfer tasks are scheduled ahead of time by anyone
- batch is signed by sig or msig account that has spending rights at any time before the start date