Protocol Rewards
SatLayer is a coordination layer which enables individuals to (re)stake their Bitcoin and secure a set of Bitcoin Validated Services (BVSes). The functions required to secure the BVSes are carried out by operators
, who receive staked capital and use that capital to validate BVSes on behalf of restakers.
To ensure a robust amount of Bitcoin stake for security and proper operator functioning, BVSes must reward good behavior in the form of payments made to restakers and operators. This page describes how these payments function.
BVS Payments Workflow
1) Calculate rewards to restakers/operators off-chain
BVSes calculate and disperse rewards to restakers and operators at their discretion. These rewards must be formatted as a distribution.json
file, adhering to the following schema.
2) (optional) Submit distribution to Github
Once the rewards are computed, the service submits the distribution.json
file as a Pull Request (PR) to a public GitHub repository managed by SatLayer (TBD).
3) Generate Merkle tree over the rewards
The BVS then computes a Merkle tree of the rewards owed using the data from the distribution.json
file they originally generated (details of the Merkle tree format and a generation script will be released in Phase II).
If the BVS submits the rewards distribution file to Github in step (2), the merkle tree will be computed automatically via Github actions on behalf of the BVS.
4) Distribute Rewards
The service then calls the
distributeRewards
function in thebvs-rewards
contract with themerkleRoot
and thetotalAmount
to distribute.The service must ensure it holds a sufficient balance of tokens to complete the transfer from the its account to the
bvs-rewards
contract.
Restaker and Operator Rewards Claiming
perators can receive their rewards from services rendered from the bvs-rewards
contract. They can do so by calling the claimRewards
function on the bvs-rewards
contract. When calling this function, they must provide the following information:
Merkle root
Merkle proof
Claimant address
Total amount of rewards
Merkle index
This information can be computed by calling the SatLayer CLI (not yet released) using the merkle tree and claimant address of the restaker/operator.
Last updated