StEver is a staking platform that aggregates real network validators in one place. This platform has the ability to automatically balance between validators.
- Users shouldn't select a validator for them self
- Users shouldn't freeze their money, after stake user will receive StEver tokens based on the current rate
npm i
SEED="{{seed phrase}}" \
MAIN_GIVER_KEY={{giver secret key}} \
npx locklift run --disable-build --network mainnet -s scripts/1_deploy-and-setup-stEverVault.ts
- MultiSig admin(owner) wallet address: StEverVault owner
- TokeRoot address: StEver token root address
- Governance PUBLIC key: bot public key
- StEverVault deploy value (nano ever), min 100 ever
- GainFee (nano ever), min 1 ever: StEverVault will take gainFee from each strategy report to maintain the required gas level (1 ever is recommended)
- StEver platform fee (0..1000), 1% == 10: This fee will aggregate (as a platform fee) for future withdrawal to the admin
npx locklift run --disable-build --network mainnet -s scripts/2_fix_upgrade.ts
This update provides validators the possibility to control their strategies for themselves
(in the previous version only stEverOwner
could add and remove strategies from StEverVault
)
- Cluster entity was added to the StEverVault, now actions like deploy, add and delete strategy only allowed by the
Cluster
contract. Cluster can be created only by thestEverOwner
. Each cluster includes constraints such asmaxStrategiesCount
andassurance
.maxStrategiesCount
- maximal strategy count that can be created by theCluster
assurance
- Assurance that should be provided by theclusterOwner
to hisCluster
.assurance
isStEver
value, so theclusterOwner
should make aStEver
token transfer to theCluster
address
Now interaction with strategies looks like this:
- We need to create a
Cluster
, this method can be called bystEverOnwer
only
- Other operations should be done by
clusterOwner
- Deploy strategies via
Cluster.deployStrategies(_dePools=deppolssAddress[])
- Attach strategies to the StEver
Cluster.addStrategies(_strategies=strategiesAddresses[])
- Remove strategies
Cluster.removeStrategies(_strategies=strategiesAddresses[])