contracts
contracts copied to clipboard
StakeWise smart contracts.
StakeWise smart contracts
The StakeWise smart contracts for liquid non-custodial ETH2 staking.
Check our Harbour contracts for custodial ETH2 staking.
We also support GNO staking. Check contracts for gnosis chain.
Audits and bug bounty
All audit reports are presented in the audits folder
Feel free to join our bug bounty program
Documentation
You can find the documentation for every contract in the contracts
directory. For integration, check the contracts/interfaces
directory.
The documentation is also available on the official documentation page.
Pool
The Pool contract is an entry point for deposits into the StakeWise Pool. This contract stores ETH collected from the users before it is sent to the ETH2 Validator Registration Contract.
StakedEthToken
The StakedEthToken is an ERC-20 contract. It reflects the deposits made by the stakers in the form of sETH2 tokens. The tokens are mapped 1 to 1 to ETH. The total supply of sETH2 is the sum of all the StakeWise Pool's validators' effective balances, plus an additional amount of up to (32 ETH - 1 Wei) ETH awaiting inclusion into a new validator.
RewardEthToken
The RewardEthToken is an ERC-20 contract. It reflects the rewards accumulated by the stakers in the form of rETH2 tokens. The tokens are mapped 1 to 1 to ETH. The total supply of rETH2 is the amount that is above the effective balance of all the validators registered for the StakeWise Pool.
Oracle
Oracles contract stores accounts responsible for submitting or updating values based on the off-chain data.
Deployments
Mainnet
- Pool: 0xe68E649862F7036094f1E4eD5d69a738aCDE666f
- Pool Escrow: 0x2296e122c1a20Fca3CAc3371357BdAd3be0dF079
- Pool Validators: 0x002932e11E95DC84C17ed5f94a0439645D8a97BC
- StakedEthToken: 0x41bcac23e4db058d8D7aAbE2Fccdae5F01FE647A
- RewardEthToken: 0x7cA75ccf264b2d9F91D4ABA7639fC7FcC73a7e09
- StakeWiseToken: 0x48C3399719B582dD63eB5AADf12A40B4C3f52FA2
- Oracles: 0x8a887282E67ff41d36C0b7537eAB035291461AcD
- Vesting Escrow: 0x1E6d872CE26C8711e7D47b8E0C47aB91d95a6dF3
- Vesting Escrow Factory: 0xbeE3Eb97Cfd94ace6B66E606B8088C57c5f78fBf
- Dao Module: 0xB5cF5363c3e766e64B37b2fB9554bFE8D48ED1A0
- Merkle Distributor: 0x1d873651c38D912c8A7E1eBfB013Aa96bE5AACBC
- Roles: 0xC486c10e3611565F5b38b50ad68277b11C889623
- Early Adopters Campaign (Merkle Drop): 0x2AAB6822a1a9f982fd7b0Fe35A5A5b6148eCf4d5
- Contract Checker: 0x85ee326f839Bc430655A3fad447837072ef52C2F
- Proxy Admin: 0x3EB0175dcD67d3AB139aA03165e24AA2188A4C22
Check more details and previous versions at https://github.com/stakewise/contracts/blob/master/networks/mainnet.md
Goerli testnet
- Pool: 0x6931a7A2B196386005a3E1F9752542227d4f4d64
- Pool Escrow: 0x040F15C6b5Bfc5F324eCaB5864C38D4e1EEF4218
- Pool Validators: 0x3A2A4c01BC8595E168A90bA6F04BB8A9FEac2acb
- StakedEthToken: 0x221D9812823DBAb0F1fB40b0D294D9875980Ac19
- RewardEthToken: 0x45E444930236De8548CAe187C2CD0BbDE73f5e13
- StakeWiseToken: 0x0e2497aACec2755d831E4AFDEA25B4ef1B823855
- Oracles: 0x531b9D9cb268E88D53A87890699bbe31326A6f08
- Vesting Escrow: 0x4CDAe3f1Eaa84b88fFc97627Ef1c77F762794287
- Vesting Escrow Factory: 0x1BBf89F4Dc9913FCC14EF5A336A1d8C23Ccb74E3
- Early Adopters Campaign (Merkle Drop): 0xFc3513E92799F0169e5f14F354d0097E4b790498
- Merkle Distributor: 0x3022648376AfBf1f716111a256221043b7a03c1f
- Roles: 0x81aaa59d7d1000A56326Bb577DEbc287Cbd351cC
- Contract Checker: 0x85ee326f839Bc430655A3fad447837072ef52C2F
- Proxy Admin: 0xbba3f4dDD4F705aD2028ee2da64fF3166bDe8cA8
Check more details and previous versions at https://github.com/stakewise/contracts/blob/master/networks/goerli.md
Development
NB! You would have to define the initialize
function for the contracts that don't have it when deploying for the first time.
-
Install dependencies:
yarn install
-
Compile optimized contracts:
yarn compile --optimizer
-
Update network parameters in
hardhat.config.js
. Learn more at Hardhat config options. -
Change settings if needed.
-
Deploy StakeWise contracts to the selected network:
yarn deploy-contracts --network rinkeby
Contributing
Development of the project happens in the open on GitHub, and we are grateful to the community for contributing bug fixes and improvements.
Contact us
License
The project is GNU AGPL v3.