The StakeWise smart contracts for tokenized staking and non-custodial validators.
- Extensible: It is possible to create your own contract with logic for accumulating validator deposit amount.
- Upgradable: By using OpenZeppelin Upgrades, it's possible to fix bugs and critical issues when the contracts are deployed to the production network.
- Role-based access: By having Operators, Admins, and Managers contracts, it is possible to restrict user capabilities.
- Integration friendly: Any contract state change is always followed by an emitted event. Applications can monitor and act on these events.
- Configurable: Any global setting can be managed through the separate Settings contract.
-
Install dependencies:
yarn install
-
Compile optimized contracts:
yarn compile --optimizer
-
Define network parameters in
buidler.config.js
. Learn more at Buidler config options. -
Change initial settings accordingly.
-
If you are deploying to the network without ETH2 deposit contract, run the following commands:
yarn deployVRC --network rinkeby
-
If you are deploying to the network without
DAI contract
, run the following commands:yarn deployDAI --network rinkeby
-
Deploy StakeWise contracts to the selected network:
yarn deploy --network rinkeby
You can find the documentation for every contract in the contracts
directory. In the future, the documentation will be hosted on a dedicated webpage.
Development of the project happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and improvements.
The project is GNU GPL v3.