Job Registration Guide

A complete guide on creating and managing PowerAgent Jobs
PowerPool Protocol dApp
Automate your task via the intuitive UI!


Detailed information on the types of Jobs can be found here.
In this guide, we will submit a task for execution and monitor it via the Explorer.


Job Balance and Owner Balance
CVP Stake Range
A job can be funded in two ways:
  • By topping up the job balance.
  • By topping up the owner’s balance and allowing the job to be funded from it.
It is useful if multiple jobs are created from a single owner address.
A stake interval can be assigned to a job.
The lower bound will ensure that only keepers with this or higher stake can be assigned to the execution of this job.
The upper bound limits the maximum compensation for the job, meaning that stakes higher than this amount will not increase the compensation. It also limits the maximum amount of stake slashed in case the keeper fails to execute the job.
A resolver is a function that defines when and how the target function must be executed.
A resolver contains the logic to define if the job should be executed this block and returns the calldata to pass to the job function for execution.
You have to configure and deploy the resolver before submitting your resolver task for automation.

Registering a Job

  1. 1.
    Navigate to the PowerPool dApp.
  2. 2.
    Connect your wallet of choice, select the desired chain and navigate to the My Jobs tab on the left.
My Jobs tab
  1. 3.
    Press Create Job button
  2. 4.
    Select the latest Agent contract
On this page you can see different implementations of the PowerAgent contract deployed on the selected chain. Pick the latest one and press "Create job".
Select the latest version
  1. 5.
    Configure the Job. See Job for details.
Job Creation Interface.
Interval Job
To create a simple interval job, paste the address of the contract you want to automate into the Target contract field. If the contract is verified on the blockchain explorer, the ABI will be filled in automatically. If it is not verified, you will have to paste in the ABI of the contract manually.
Either way, when ABI is ready, you can select the target function in the Contract Method Selector field.
If the target function does not accept any calldata, move to the next step.
If the target function requires passing of calldata, you can specify it in the field below.
Resolver Job
To create a resolver job, move the slider “Use Resolver” to the right.
A Resolver window will appear below the Contract Method Selector field. Here you can specify the address of the resolver contract and the function to be called. The resolver function should return a tuple containing either (False, ) if the execution is not ready yet, or (True, Calldata) if the conditions for execution are met. More on resolver jobs see here.
  1. 6.
    Now move to the right side of the interface. There you can specify CVP stake range, max base fee and job execution interval. If you prefer to fund the Job from its own Balance rather than the Owner Balance, don't forget to top it up with native credits.
Job Execution Parameters
  1. 7.
    When you have finished configuring your job, press “Create Job” button at the bottom right corner.
Success Button

Managing Jobs

In the UI, navigate to the My Jobs tab. Here you can see
  • your current Owner Address (the one you have connected to the webapp)
  • your Owner Balance and
  • the list of all your Jobs (if you have any).
Each Job entry is expandable. In the drop down menu you can see the details of this Job and change any parameter.
Then confirm the transaction and wait until it is mined in the blockchain. Check the hash to make sure it executed correctly.