stake.link is a Liquid Staking protocol, built initially for the Chainlink Network with upcoming support for Ethereum 2.0's beacon chain. stake.link consists of the highest-quality node operators and validators to ensure a seamless and secure way to put tokens to stake.
By building on top of Chainlink Staking stake.link offers a way for users to stake their LINK across Chainlink Node Operators and in-future the wider community pool, receiving stLINK, the liquid staking receipt token that rebases rewards. stLINK is always backed by the amount of LINK staked 1:1.
stake.link proposes a unique way of liquid staking within the Ethereum ecosystem, by allowing both reputable and self-hosted validators to participate in the same pool. By the way of governance, any self-hosted validator has the opportunity to raise a proposal to become a whitelisted reputable validator removing the need for the validator to provide collateral by being performant.
Users who stake their ETH within the stake.link protocol will in return receive sdlETH, the liquid staking receipt token that is backed by staked ETH on the beacon chain 1:1. Users who stake ETH will see their tokens buffered, being distributed between validators who are either whitelisted or non-whitelisted, with all users receiving a blended reward rate between the two.
For more detailed technical documentation:
$ nvm install 14.17.4
$ nvm use 14.17.4
$ yarn
- Inside
hardhat.config.ts
, add a provider url to the networks object for each network you would like to connect to - Also replace
accounts[0]
with the private key of the address you will be using for contract deployments and running scripts - Set env var
HARDHAT_NETWORK
to the network you want to deploy to and/or interact with (default islocalhost
)
To run hardhat and deploy all contracts, run:
$ yarn start
To run hardhat, deploy all contracts, and send a series of transactions that mock user behaviour, run:
$ yarn start-mock-data
The following commands can be used both on local and non-local networks.
To deploy all contracts to the currently selected network, run:
$ yarn deploy
To run all contract tests, run:
$ yarn test
To generate events for metrics testing, run:
$ yarn luv-deyta