Executors and ARCADE

In principle, anyone can execute any job via the execute function in the EES contract and take the role as executor. Executors will most commonly be automated programs which regularly scans the EES contract for jobs to execute. The incentivisation to do so comes in form of execution fees which can read more about here. Some third party apps utilizing EES jobs might also run executor programs to ensure jobs associated with their app always gets executed as they should.

Because all jobs are stored in a single array, executors only have to look at one place which reduced fragmentation of bots. Furthermore, the array data structure is easily partitionable and jobs are completely independent which makes it possible to parallelise executor bots.

Executors have to implement logic specific to each execution module they wish to support. This is because the execution module of a job decides values such as the execution fee, when and who can execute the job etc, all of which are crucial to run a profitable executor. However, an executor can completely neglect the implementation of the executable. This is a key feature that makes it possible for any contract to utilize EES jobs.

The open execution model of EES protects users from discrimination and censoring. It only requires a single honest executor (which is willing to take the execution fee) to execute the job.

Warning: A job will not get executed without an executor actively calling execute on it.

Warning: Even though anyone can call execute on any job, logic in either the execution module or the job's executable might cause reversion for any reason. To minimise failed attempts and wasted gas it is considered good practise to simulate the transaction before broadcasting it on-chain.

Last updated