The EntityManager
contract will be required throughout this guide. It can be found here:
You will need 5 addresses to be able to participate in the protocol:
- Identity address: entity's main address
- should be stored in a cold storage as it will only ever be needed in the initial setup and any future rotation of other keys
- Submit address: used for submit1, submit2 and submit3 transactions
- can be stored in a hot storage as its private key will be added to
.env
file during deployment
- can be stored in a hot storage as its private key will be added to
- Submit signatures: used for submitSignatures transactions
- can be stored in a hot storage as its private key will be added to
.env
file during deployment
- can be stored in a hot storage as its private key will be added to
- Signing policy: used for reward epoch registration and relay transactions as well as payload signing in some parts of the system
- can be stored in a hot storage as its private key will be added to
.env
file during deployment
- can be stored in a hot storage as its private key will be added to
- Delegation address: used for wrapping your tokens and getting delegation
- should be stored in a cold storage as it will not be needed in day to day protocol participation
All 5 addresses will need to be funded for gas fees.
You can register above keys via EntityManager
contract by first calling propose...Address
with your identity address and then calling confirm...Address
with proposed address.
If you have a safe environment to work with you can register your entity with a script by following REGISTER_TASK.md.
Additional 3 addresses will need to be generated for fast updates system. These addresses don't require any registration and can be stored in hot storage as their private keys will be added to .env
file during deployment.
You will need to generate a sortition private/public key pair for use in the fast updates system. This key can be in hot storage as it will be added to .env
file during deployment. The key can be generated by running the keygen
cli that can be found here. You can also run with with docker:
docker run --rm ghcr.io/flare-foundation/fast-updates/go-client keygen
You can register above generated key via EntityManager
contract by calling registerPublicKey
with your identity address.
If you have a safe environment to work with you can register your entity with a script by following REGISTER_TASK.md.
Your validator nodes need to be registered with the Entity system. You can do this via EntityManager
contract by calling registerNodeId
with your identity address for each of your validator nodes. The three required values can be generated as described in VALIDATOR_NODE.md.