# set-take (/docs/tx/set-take)

The delegate take is the fraction of staking emissions a delegate hotkey
keeps before distributing the rest to its nominators. This is sugar over
the chain's directional `increase_take` / `decrease_take`: it reads the
current take and dispatches whichever call moves it to `take`, so you do
not need to know the current value. Signed by the coldkey that owns the
hotkey. If the move is upward it inherits the increase path's constraints
(take maximum and rate limit on increases).

| Signer    | Pallet          | Wraps                                                            |
| --------- | --------------- | ---------------------------------------------------------------- |
| `coldkey` | SubtensorModule | `SubtensorModule.increase_take`, `SubtensorModule.decrease_take` |

## Parameters [#parameters]

| Parameter     | Type    | Required | Description                                                                                                                    |
| ------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `take`        | integer | yes      | New take as a u16 proportion (fraction of 65535, e.g. 5898 is about 9 percent). The chain enforces its configured take bounds. |
| `hotkey_ss58` | string  | no       | Hotkey the operation applies to.                                                                                               |

Address parameters (`--hotkey`, `--coldkey`, `--dest`, ...) accept a raw ss58
address, an address-book or proxy-book name, or a local wallet/hotkey name.

## CLI [#cli]

Preview with `--dry-run` (shows fee, effects, and policy result without
submitting), then submit:

```bash
btcli tx set-take \
  --take <int> --dry-run
btcli tx set-take \
  --take <int> -w my_coldkey
```

## Python [#python]

```python
import bittensor as sub
from bittensor.wallet import Wallet

wallet = Wallet(name="my_coldkey", hotkey="my_hotkey")
intent = sub.SetTake(take=0)

async with sub.Client("finney") as client:
    plan = await client.plan(intent, wallet)   # fee, effects, policy — no submission
    result = await client.execute(intent, wallet)
    if not result.success:
        print(result.error.code, result.error.remediation)
```

Or build it by op name, as an agent would:

```python
await client.execute_tool("set_take", {...}, wallet)
```
