❓I Want to Become a Keeper
Instructions to register a keeper and install the software
To become a keeper, you have to do the following:
Register a keeper in the PowerAgent contract;
Install the PowerAgent software;
Activate the keeper in the PowerAgent contract.
Keeper registration
Keeper registration, activation, management, stake deposit and withdrawal, compensation withdrawal are done via PowerAgent DApp.
To register a new keeper, follow the instructions below:
Press “Connect” and connect with your Admin wallet.
Press the “Create Keeper” button:
Select the most recent agent version. Press the “Create Keeper” button at the bottom:
In the keeper creation pop-up window, specify the amount of CVP to stake (no less than 1000) and the Worker address which you created beforehand:
An “Unlock” button will light up. Press and confirm the transaction. Afterwards, press “Create keeper”.
Afterwards, a keeper will be created, but not activated. Proceed to Installation Section and install the node software.
Node installation
Follow one of guides listed below based on the chosen method:
Installation
Start with a clean AMD-64 architecture distribution (the code is given for Ubuntu or Debian.
Install NodeJS, npm, Docker, and Docker-Compose
Install NodeJS and npm
Refer to the official installation documentation.
Install Docker and Docker Compose
Refer to the official installation documentation.
Navigate to a directory of your choice:
cd /path/to/the/directory/of/your/choiceClone the standalone repository and
cdto it:git clone https://github.com/powerpool-finance/powerpool-agent-v2-compose cd powerpool-agent-v2-composeGenerate the worker keyfile:
npm i node jsongen.js ${YOUR_WORKER_PRIVATE_KEY} ${A_PASSWORD_OF_YOUR_CHOICE}Mind that the password will be specified in the config later on, so remember it.
Open the config file with a text editor of your choice. For the sake of an example, here we open it with nano
nano config/main.yamlFill the file out according to the schema, substituting the variables where needed (numerical values can also be changed, if you so desire). Do not remove
‘’(quotation marks).
[OPTIONAL] Change the name of the package if you want to run several instances of the PowerAgent on the same machine.
version: "3.9" services: ${SERVICE_NAME}: container_name: ${CONTAINER_NAME} image: powerpool/power-agent-node:latest restart: always volumes: - ./config:/usr/app/config - ./keys:/usr/app/keys environment: NODE_ENV: ${NODE_ENV}Launch the node.
docker compose up -d docker logs -f ${CONTAINER_NAME}
Update
In the folder with the docker-compose.yaml file run:
docker compose down --rmi local
docker compose pull
docker compose up -dStop
In the folder with the docker-compose.yaml file run:
docker compose down --rmi localAfterwards, proceed to the keeper activaton section.
Preparation of the keyfile
On your personal machine, clone this repository:
And execute the following command:
npm i
node jsongen.js ${WORKER_PRIVATE_ADDRESS} ${ANY_PASSWORD}The generated keyfile will be written into ./keys/ directory.
Installation
In order to locate the PowerAgent package,
Switch your IPFS mode to “Local”
Add the following peers to your DAppNode’s IPFS peer list:
/ip4/134.122.84.162/tcp/4001/p2p/12D3KooWPJk93THACnrk2LayhBuafoKQTypvssZSQTASU365c8v2
/ip4/134.122.84.162/udp/4001/quic/p2p/12D3KooWPJk93THACnrk2LayhBuafoKQTypvssZSQTASU365c8v2
/ip4/134.122.84.162/udp/40202/quic/p2p/12D3KooWPJk93THACnrk2LayhBuafoKQTypvssZSQTASU365c8v2Navigate to the most recent package version either through the installer link or by the IPFS hash. Accept “bypass unsigned restriction” and press install.
Fill in the fields when prompted by DAppNode installation UI:
Worker address #This field should contain
#the address of your worker.
Worker key #Remember the keyfile you generated?
#Upload it here.
Worker keyfile password #The password to the keyfile you chose
#during generation
Network #Sepolia or Gnosis, whichever network
#you are running on
Execution client RPC #The Websockets RPC address
#of the execution client,
#which PowerAgent will connect to.
#Look it up in the logs tab
#of your execution client you installed earlier.
#The default for Sepolia Geth may be like
#ws://sepolia-geth.dappnode:8546.
Agent address #The address of the latest version
#of the PowerAgent contract
#on the appropriate chain.
####Leave these empty:####
Data source
Graph URL
API Server
Sentry SDK data source name
##########################
Number of blocks to elapse before a tx is resent or dropped #4
Max gase price in GWei for tx resending #500
Maximal resending attempts number #4
Logging level #"debug"
Accrue reward on the poweragent address
#True/False. Default: False.
#This value governs whether you accrue the rewards on your worker address or have them transferred immediately upon conferring. Keep in mind that the former option is more gas-efficient.
Execute tasks when block base fee is greater than max base fee
#True/False. Default: False.
#This field also accepts a Boolean value. In PowerAgent, the Job owner may set an upper bound on the gas cost for the purposes of reward computation. If you wish to execute the transaction even in the case of such an upper bound depressing your reward amount, select True.
Max Priority Fee Per Gas
#Default: 60000 This field accepts an integer value, to which the max priority fee per gas shall be set.Update
The package update is as straightforward as possible: locate the new package by its IPFS hash and press “Update”. The configuration from the previous version will persist.
PowerAgent Node can be added as a service into another docker container.
Create
/configand/keysfolders alongside yourdocker-compose.yamlfile.Follow the Standalone instructions to obtain the keyfile and the
main.yamlconfig file and place them into the corresponding folders.Add the following service into the
docker-compose.yaml:
agent-latest:
image: powerpool/power-agent-node:latest
restart: always
volumes:
- ./config:/usr/app/config
- ./keys:/usr/app/keys
environment:
NODE_ENV: ${NODE_ENV}Execute
docker-compose up -d agent-latestin the folder withdocker-compose.yaml.
Example configs for standalone installation:
networks:
enabled:
- gnosis
details:
gnosis:
rpc: 'your_rpc_address'
block_logs_mode: true
agents:
'0x071412e301C2087A4DAA055CF4aFa2683cE1e499':
data_source: subgraph
subgraph_url: https://api.studio.thegraph.com/proxy/48711/ppav2-rd-gnosis-b12-ui/version/latest
executor: pga
keeper_worker_address: 'your_keeper_worker_address'
key_pass: 'your_password'
accrue_reward: falsenetworks:
enabled:
- sepolia
details:
sepolia:
rpc: 'your_rpc_address'
block_logs_mode: true
agents:
'0xbde2aed54521000dc033b67fb522034e0f93a7e5':
data_source: subgraph
subgraph_url: https://api.studio.thegraph.com/query/48711/ppav2-rd-sepolia-b12-ui/version/latest
executor: pga
keeper_worker_address: 'your_keeper_worker_address'
key_pass: 'your_password'
accrue_reward: falsenetworks:
enabled:
- mainnet
details:
mainnet:
rpc: 'your_rpc_address'
block_logs_mode: true
agents:
'0xc9ce4CdA5897707546F3904C0FfCC6e429bC4546':
data_source: subgraph
subgraph_url: https://api.studio.thegraph.com/query/48711/ppav2-rd-maintest-ui/version/latest
executor: pga
keeper_worker_address: 'your_keeper_worker_address'
key_pass: 'your_password'
accrue_reward: false🥳 This concludes the installation + configuration process. Good job! Now the keeper must be activated in order to be able to execute transactions.
Keeper activation
After installation, go back to the DApp, open “My Keepers” tab and expand the entry for your newly registered keeper.
The status of the keeper will be “Activating”. Next to it, locate the “Complete” button and confirm the transaction:

Verify that the keeper is active:

Managing Keepers
On the My Keepers tab you can see all your registered keepers; both active and inactive.
Click on the keeper entry to expand the detailed view:

Summary tab.
Here you can see the total number of your keepers, sum of all their CVP stakes and their total earnings in native token.
Keeper stats tab.
Here the key metrics of your keeper are presented: active and pending withdrawal CVP stake, number of jobs completed, and detailed balance.
Control tab.
On this tab you can stake or withdraw CVP for your keeper, as well as withdraw native token earnings.
Last updated
Was this helpful?
