Operators
Operators execute tasks for one or more DVNs and obtain rewards.
An Operator is universally identified by an Operator ID, obtained by registering to Kernel.
As mentioned above, the DVNCoordinator is a contract that identifies each DVN on-chain in Kernel Protocol. Operators use its address when registering in a DVN.
3.1. Register to Kernel
Registration to Kernel is a permissionless procedure. It’s the first, mandatory step an Operator performs when onboarding into Kernel.
Determine an EOA (or a contract, like a Safe account) to use as Operator Owner (may be updated later)
As Operator Owner, call OperatorRegistry::register(address rewardAddress, string calldata metadataURI) to obtain the Operator ID, which is immutable and will identify an Operator in Kernel, providing:
a Reward address, which will be able to claim rewards
can be the same of the Operator Owner address, or different
can be updated later
a “Metadata URI” url pointing to a json file respecting the following structure: { "name": "Hello World Operator", "website": "https://www.example.com", "description": "I do tasks", "logo": "https://example.com/logo.png" }
Operator is now part of Kernel but not ready to work for any DVN yet
3.2. Onboard into a DVN
To start working for a DVN, an Operator must send a request to the DVN and be accepted.
The procedure is the following:
Register to Kernel and obtain the Operator ID
Request registration to a DVN
retrieve the DVNCoordinator address: each DVN has one, immutable
call DVNCoordinator::requestRegisterOperatorToDVN(operatorId) to ask the DVN to become part of the Operators enabled to execute its Tasks, also called “DVN Operators List”
Wait for DVN decision
the procedure is a 2-step process, where DVN decides to accept or not an Operator
eventually and with a transaction, DVN accepts or rejects the Operator request
If the request is accepted, the Operator is completely onboarded and is now able to execute Tasks and get rewards
DVNs can apply custom rules when deciding to accept or reject Operators. As some examples, they may require an Operator to:
have a minimum delegated amount of a specific asset
have a minimum amount of delegators
be onboarded into a maximum number of other DVNs
These rules are not enforced by Kernel, leaving flexibility to DVNs to create their own logic.
Last updated