You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This rate limit prevents the owner of a child hotkey from making frequent changes to the child key take percentages. This protects against rapid manipulation of child key relationships and ensures stability in the child key delegation system.
This rate limit controls how frequently a parent hotkey can set or revoke child hotkeys on a specific subnet. Note that revoking children is implemented by calling `set_children` with an empty list, so both operations share the same rate limit.
@@ -64,10 +65,10 @@ The child hotkey features are as follows:
64
65
65
66
The following rate limits apply for child hotkeys:
66
67
67
-
-A child hotkey's take rate can only be adjusted once per 30 days.
68
-
-One successful execution of `set_children` or `revoke_children` is allowed for every 720 blocks.
68
+
-Setting or revoking children is allowed for every 150 blocks (~30 minutes).
69
+
-A given child hotkey's take rate can only be adjusted once per 30 days.
69
70
70
-
See [Rate Limits in Bittensor](../learn/chain-rate-limits.md).
71
+
See [Rate Limits in Bittensor: Child hotkey operations rate limit](../learn/chain-rate-limits#child-hotkey-operations-rate-limit).
71
72
72
73
## Minimum stake requirement
73
74
@@ -84,49 +85,41 @@ The minimum stake requirement is:
84
85
Query `subtensorModule.stakeThreshold()` to check the current threshold.
85
86
:::
86
87
87
-
88
88
## Child hotkey commands
89
89
90
90
Use the `btcli` command options described below to work with child hotkeys.
91
91
92
92
## Setting a child hotkey
93
93
94
-
This command assigns a proportion of the parent hotkey's stake weight to the child hotkeys. Specific proportion for each child hotkey can be set. The parent hotkey must be registered on at least one `netuid`. This `netuid` need not be the same `netuid` used in this command. Only the stake TAO of the parent hotkey can be assigned to the child hotkeys.
94
+
You can allocate a portion of the parent hotkey’s stake weight to its child hotkeys, specifying the exact proportion for each one. The parent hotkey must be registered on at least one netuid, but it doesn’t have to be registered on the same netuid where the child weights are being set. However, all child hotkeys assigned must be registered on the netuid specified in the command.
95
95
96
96
### Usage
97
97
98
98
```bash
99
-
btcli stake set_children --netuid <netuid> --children <a list of SS58 child hotkeys> --proportions <a list of decimal numbers> --hotkey <parent hotkey> --wallet.name <coldkey>
99
+
btcli stake child set --netuid <netuid> --children <a list of SS58 child hotkeys> --proportions <a list of decimal numbers> --hotkey <parent hotkey> --wallet.name <coldkey>
100
100
```
101
101
102
102
### Parameters
103
103
104
-
-`--netuid:`Integer. Should be a single integer value representing a current subnet's `netuid`.
105
-
- Must be greater than `0` (`netuid 0` is not allowed).
106
-
- Integer values greater than the value of current subnet limit, i.e., greater than the value of `subtensorModule.subnetLimit()`, will be rejected with an error message and the command will stop.
107
-
- All child hotkeys used in this command must be already registered on this`netuid`.
108
-
-`--children`: SS58. A comma-separated ordered list of SS58 hotkeys for child hotkeys.
104
+
-`--netuid:`The netuid of the subnet in the network. Value must be greater than zero.
105
+
-`--children`: A comma-separated ordered list of SS58 hotkeys for the child hotkeys.
106
+
-`--proportions`: A comma-separated ordered list of the stake weight proportions for the child hotkeys listed in the `--children` parameter.
107
+
-`--hotkey`: A single SS58 of the parent hotkey. This must be a delegate hotkey that is already registered in with any`netuid`.
108
+
-`--wallet.name`: Name of the wallet or the SS58 of the coldkey. This coldkey must be matched with the parent hotkey SS58 of the `--hotkey`.
109
109
110
-
- There should be a maximum of five, 5, SS58 hotkeys in this comma-separated list. If there are more than five hotkeys, the command will issue an error message and stop.
111
-
- The number of list elements should match the number of elements passed in the `--proportions` parameter. If the number of list elements do not match, the command will issue an error and stop.
112
-
- All hotkeys used here must be already registered on the `netuid` used in this command.
110
+
:::info
113
111
114
-
-`--proportions`: Floating. A comma-separated ordered list of floating values. Each proportion value of the parent hotkey's stake weight will be assigned to the corresponding child hotkey in the `--children` parameter.
115
-
- Each floating value should be a number greater than zero and equal to or less than `1.0`.
116
-
- If a value is zero, the corresponding child hotkey will be revoked.
117
-
- If a value is greater than `1.0`, the command will issue an error message and stop.
118
-
- All the proportions for a given `netuid` must sum to less than or equal to `1.0`. If the proportions sum to greater than `1.0`, the command will issue an error message and stop.
119
-
-`--hotkey`: SS58. A single SS58 of the parent hotkey. This must be a delegate hotkey that is already registered in with any `netuid`. This `netuid` need not be the same `netuid` used in this command.
120
-
- If this parent hotkey has zero stake, then the command will issue an error message and stop.
121
-
- Note that this `--hotkey` parameter expects parent hotkey whereas the `--hotkey` parameter of the [Setting child hotkey take](#parameters-1) expects child hotkey.
122
-
-`--wallet.name`: String or SS58. Name of the wallet or the SS58 of the coldkey. This coldkey must be matched with the parent hotkey SS58 of the `--hotkey`. If the coldkey and the parent hotkey do not match, the command will issue an error message and stop.
112
+
- The `--children` and `--proportions` parameters can each include up to five comma-separated values.
113
+
- The sum of all proportion values for the child hotkeys should be less than or equal to 1.
114
+
- All hotkeys listed in the `--children` parameter must be already registered on the `netuid` used in this command.
115
+
- Only the staked TAO of the parent hotkey can be assigned to the child hotkeys. If the parent hotkey has zero stake, then the command will issue an error message and stop.
If a parent hotkey has, for example, three child hotkeys: child hotkey A, child hotkey B and child hotkey C, then to add a fourthchild hotkey D, you must run `set_children` command again with the parent hotkey and all four child hotkeys A, B, C and D.
143
+
If a parent hotkey has, for example, three child hotkeys: `child hotkey A`, `child hotkey B` and `child hotkey C`, then to add a fourth—`child hotkey D`, you must run `btcli stake child set` command again with the parent hotkey and set the proportions for all four child hotkeys `A`, `B`, `C` and `D`.
151
144
152
-
## Changing the proportions
145
+
:::info Updating hotkey proportions
146
+
When updating the proportion of a child hotkey, you must rerun the `btcli stake child set` command with the parent hotkey and all existing child hotkeys, including their updated proportions.
153
147
154
-
If a parent hotkey has, for example, three child hotkeys:
155
-
156
-
- child hotkey A with `0.2` proportion.
157
-
- child hotkey B with `0.5` proportion.
158
-
- child hotkey C with `0.1` proportion.
159
-
160
-
Then to change the proportion of, for example, the child hotkey B from `0.5` to `0.3`, you must run `set_children` command again with the parent hotkey and all three child hotkeys A, B, and C set to `0.2`, `0.3` and `0.1` proportions.
148
+
:::
161
149
162
150
## Getting the child hotkeys
163
151
164
-
This command displays all the child hotkeys for a given parent hotkey.
btcli stake child get --netuid <netuid> --hotkey <parent hotkey> --all
186
162
```
187
163
188
-
and follow the prompts.
189
-
190
164
## Revoking the child hotkeys
191
165
192
-
This command revokes **all** the child hotkeys for a given parent hotkey.
166
+
This is used to remove delegated authority from all child hotkeys, removing their position and influence on the subnet.
193
167
194
-
:::danger Revoking a specific child hotkey is not allowed
195
-
Currently it is not possible to revoke a specific child hotkey. However, if a parent hotkey has, for example, three child hotkeys: child hotkey A, child hotkey B and child hotkey C, then setting the parent hotkey again with only child hotkeys A and B will result in revoking the child hotkey C.
168
+
:::info Revoking a specific child hotkey is not allowed
169
+
It is not possible to revoke a specific child hotkey. However, if a parent hotkey has, for example, three child hotkeys: `child hotkey A`, `child hotkey B` and `child hotkey C`, then setting the parent hotkey again with only child hotkeys `A` and `B` will result in revoking `child hotkey C`.
Each child hotkey can have a defined take percentage that determines the portion of rewards it receives on a given netuid. The take value can range from `0` (0%) to `0.18` (18%). This configuration is subnet-specific meaning that a child hotkey may have one take percentage on one netuid and a different value on another.
225
190
226
-
This command sets the take percentage of the child hotkey for a given `netuid`. The `take` can be between `0` (0%) and `0.18` (18%).
191
+
The child hotkey can also set its delegate take separately from the child hotkey take. That is, a child hotkey can carry two separate take rates: the child hotkey take rate and the delegate take rate. For the delegate take rate, see [Set delegate take](../btcli/btcli.md#btcli-sudo-set-take).
227
192
228
-
A child hotkey's `take` is subnet-specific, i.e., a child hotkey can have one `take` in one `netuid` and a different `take` in another `netuid`.
193
+
### Usage
229
194
230
-
The child hotkey take rate is an attribute of the child hotkey and this take rate applies to all the parent hotkeys for which this hotkey is the child hotkey.
195
+
```bash
196
+
btcli stake child take
197
+
```
231
198
232
-
The child hotkey can also set its delegate take separately from the child hotkey take. That is, a child hotkey can carry two separate take rates: the child hotkey take rate and the delegate take rate. For the delegate take rate, see [Set delegate take](../btcli/btcli.md#btcli-sudo-set-take).
199
+
:::info
200
+
Running the command without the `--take` flag only retrieves the child hotkey's take on the subnet. To set the child hotkey take, you must run the command with the `--take` flag.
201
+
:::
233
202
234
-
### Usage
203
+
To set child hotkey take, run the following command:
235
204
236
205
```bash
237
-
btcli stake set_childkey_take \
206
+
btcli stake child take \
238
207
--netuid <netuid> \
239
-
--hotkey <child hotkey> \
208
+
--child-hotkey-ss58<child hotkey> \
240
209
--take <decimal number> \
241
210
--wallet.name <coldkey>
242
211
```
243
212
244
213
### Parameters
245
214
246
-
-`--hotkey`: SS58. A single SS58 of the child hotkey. Note that this `--hotkey` parameter expects child hotkey whereas the `--hotkey` parameter of the [Setting a child hotkey](#parameters) expects parent hotkey.
247
-
-`--take`: Floating. A value between `0` (0%) and `0.18` (18%). Default value is `0`.
248
-
-`--netuid`: Integer. The `netuid` in which this child hotkey's `take` is applicable. Note that a child hotkey's `take` is subnet-specific, i.e., a child hotkey can have one `take` in one `netuid` and a different `take` in another `netuid`.
215
+
-`--child-hotkey-ss58 `: A single SS58 of the child hotkey. If not provided, it assigns the take value to the hotkeyof the signing wallet.
216
+
-`--take`: A value between `0` (0%) and `0.18` (18%). Default value is `0`.
217
+
-`--netuid`: The `netuid` in which this child hotkey's `take` is applicable. Note that a child hotkey's `take` is subnet-specific, i.e., a child hotkey can have one `take` in one `netuid` and a different `take` in another `netuid`.
0 commit comments