Delegating
On mainnet, you can delegate
uscrt
to a validator. These delegators can receive part of the validator's fee revenue. To learn more read about the Cosmos Token Model.You can query the list of all validators of a specific chain:
secretcli q staking validators
If you want to get the information of a single validator you can check it with:
secretcli q staking validator <validator-address>
On the Secret Network mainnet, we delegate
uscrt
, where 1scrt = 1000000uscrt
. Here's how you can bond tokens to a validator (i.e. delegate):secretcli tx staking delegate \
<validator-operator-address>
<amount> \
--from=<key-alias>
Example:
secretcli tx staking delegate \
secretvaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm \
1000uscrt \
--from <key-alias>
<validator-operator-address>
is the operator address of the validator to which you intend to delegate. If you are running a full node, you can find this with:secretcli keys show <key-alias> --bech val
Where
<key-alias>
is the name of the key you specified when you initialized secretd
.While tokens are bonded, they are pooled with all the other bonded tokens in the network. Validators and delegators obtain a percentage of shares that equal their stake in this pool.
To withdraw the delegator rewards:
secretcli tx distribution withdraw-rewards <validator-operator-address> --from <key-alias>
Once you've submitted a delegation to a validator, you can see it's information by using the following command:
secretcli q staking delegation <delegator-address> <validator-operator-address>
Example:
secretcli q staking delegation \
secret1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p \
secretvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
Or if you want to check all your current delegations with distinct validators:
secretcli q staking delegations <delegator-address>
There currently is in place a 21 days unbonding rule, during which no rewards are handed out.
If for any reason the validator misbehaves, or you just want to unbond a certain amount of tokens, use this following command:
secretcli tx staking unbond \
<validator-address> \
10uscrt \
--from=<key-alias> \
--chain-id=<chain-id>
The unbonding will be automatically completed when the unbonding period passes.
Once you begin an unbonding-delegation, you can see it's information by using the following command:
secretcli q staking unbonding-delegation <delegator-address> <validator-operator-address>
Or if you want to check all your current unbonding-delegations with distinct validators:
secretcli q staking unbonding-delegations <delegator-address>
Additionally, you can get all the unbonding-delegations from a particular validator:
secretcli q staking unbonding-delegations-from <validator-operator-address>
A redelegation is a type delegation that allows you to bond illiquid tokens from one validator to another:
secretcli tx staking redelegate \
<src-validator-operator-address> \
<dst-validator-operator-address> \
10uscrt \
--from=<key-alias> \
--chain-id=<chain-id>
Here you can also redelegate a specific
shares-amount
or a shares-fraction
with the corresponding flags.The redelegation will be automatically completed when the unbonding period has passed.
Once you begin an redelegation, you can see it's information by using the following command:
secretcli q staking redelegation <delegator-address> <src-valoper-address> <dst-valoper-address>
Or if you want to check all your current unbonding-delegations with distinct validators:
secretcli q staking redelegations <delegator-address>
Additionally, you can get all the outgoing redelegations from a particular validator:
secretcli q staking redelegations-from <validator-operator-address>
Parameters define high level settings for staking. You can get the current values by using:
secretcli q staking params
With the above command you will get the values for:
- Unbonding time
- Maximum numbers of validators
- Coin denomination for staking
Example:
$ secretcli q staking params
{
"unbonding_time": "1814400000000000",
"max_validators": 50,
"max_entries": 7,
"historical_entries": 0,
"bond_denom": "uscrt"
}
All these values will be subject to updates though a
governance
process by ParameterChange
proposals.A staking
Pool
defines the dynamic parameters of the current state. You can query them with the following command:secretcli q staking pool
With the
pool
command you will get the values for:- Not-bonded and bonded tokens
- Token supply
- Current annual inflation and the block in which the last inflation was processed
- Last recorded bonded shares
You can also query all of the delegations to a particular validator:
secretcli q staking delegations-to <validator-operator-address>
Example:
$ secretcli q staking delegations-to secretvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
\
Last modified 21d ago