# Delegating (CLI)
On mainnet, you can delegate uscrt
to a validator. These delegators can receive part of the validator's fee revenue. Read more about the Cosmos Token Model.
# Query Validators
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>
# Bond Tokens
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.
# Withdraw Rewards
To withdraw the delegator rewards:
secretcli tx distribution withdraw-rewards <validator-operator-address> --from <key-alias>
# Query Delegations
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>
# Unbond Tokens
Please Note
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 has passed.
# Query Unbonding-Delegations
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>
# Redelegate Tokens
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.
# Query Redelegations
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>
# Query Parameters
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.
# Query Pool
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
# Query Delegations To Validator
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