🚀 By staking their ETH to a staking contract, users receive a liquid staked derivative token called ssvETH. This allows them to earn compound interest on their staked ETH, while also being able to use the ssvETH tokens in other DeFi protocols without having to unstake their original ETH.
🙏 For aditional functionality and documentation check the amazing scaffold-eth repo this frontend is based on!
You can find our live demo deployment Here
Node (v18 LTS) Yarn (v1.x) Git
1️⃣ clone/fork awesome SSV Staking repo:
git clone https://github.com/bloxapp/awesome-ssv
2️⃣ make sure you have the right network set
3️⃣ install and start the frontend:
cd frontend
yarn install
yarn react-app:start
📱 Open http://localhost:3000 to see the app
❗❗ Important : Make sure that your front end is connected to the correct chain in frontend/packages/react-app/src/App.jsx
, either:
const initialNetwork = NETWORKS.goerli;
for using the live Goerli network.
or
const initialNetwork = NETWORKS.localhost;
if running withyarn fork
.
📝 Edit your frontend App.jsx
in packages/react-app/src
✏ Edit the home view and the manager view in packages/react-app/src/views/Home.jsx
and packages/react-app/src/views/Manager.jsx
respectively.
🔏 Edit the smart contracts in packages/hardhat/contracts
💼 Add/Edit your deployment scripts in packages/hardhat/deploy
If you want to deploy the contracts locally using the Goerli fork you can do so with hardhat.
You will need to setup your RPC endpoint.
Update frontend/packages/hardhat/package.json
file and edit this line "fork": "hardhat node --network hardhat --fork https://goerli.infura.io/v3/<YOUR_KEY>"
and input <YOUR_KEY>
You can obtain one from infura here.
Now run:
yarn fork
After setting up your defaultNetwork
to "localhost"
in hardhat-config.js
you can run
yarn deploy
Once done you can fund the pool :
yarn fund-pool
🎇 After this, your new staking pool and ssvETH contracts should reflect on automatically in packages/react-app/src/contracts/localhost/
, packages/react-app/src/contracts/external_contracts
and in packages/react-app/src/contracts/hardhat_contracts
.
If you want to deploy on the live Goerli testnet, you'll only need :
Set up your defaultNetwork
to "goerli"
in hardhat-config.js
Then :
yarn deploy
🎇 after this your new staking pool and ssvETH contracts should reflect on automatically in packages/react-app/src/contracts/goerli/
✅ you can also verify your staking pool contract on Goerli by using this :
yarn verify --constructor-args arguments.js --network goerli <NEW_DEPLOYED_CONTRACT_ADDRESS>
✅ and your ssvETH contract by using this :
yarn verify --network goerli NEW_DEPLOYED_CONTRACT_ADDRESS
❗❗ Important reminder : ❗❗
💥 Once you have your contracts deployed you will need to update the default network in App.jsx
to match your default network in hardhat-config.js
!
🚨📡 To deploy to a public domain, use yarn surge
. You will need to have a surge account and have the surge CLI installed. There is also the option to deploy to IPFS using yarn ipfs
and yarn s3
to deploy to an AWS bucket 🪣 There are scripts in the packages/react-app/src/scripts
folder to help with this.`
Now it's time to activate some validators beacon chain and use ssv network to run it!
All the backend functionality for this, namely
- validator creation
- validator activation with beacon chain
- splitting your validator (DVT!) into multiple shares
- registering validator share with ssv.network
are done for you out of the box!!!
🚀 Just follow the readme and run scripts here
💼 Add/Edit your deployment scripts in packages/hardhat/scripts/deploy
for Goerli and in packages/hardhat/deploy
for localhost (Goerli fork)
- build sth interesting on top, transferable NFT validators, Restaking app, or whatever else and open PR.
Best way is via discord channel #devs-support, ask there, tag the team directly and also @MarkoInEther and @Matty. They will help you to get to the right person.