# Transactions (/docs/tx)

Every mutation is an **intent**: preview it with `plan` / `--dry-run`, submit it with `execute`. Each CLI command below is `btcli tx <name>`; each Python class is `bt.<ClassName>`. The machine-readable catalog of all of these (with JSON schemas) is at [`/catalog/intents.json`](/catalog/intents.json) or via `btcli tools` / `bt.intents.list_tools()`.

## AdminUtils [#adminutils]

| Operation                                                             | Signer  | Origin            | Summary                                                          |
| --------------------------------------------------------------------- | ------- | ----------------- | ---------------------------------------------------------------- |
| [`set-hyperparameter`](/docs/tx/set-hyperparameter)                   | coldkey | subnet owner      | Set an owner-settable subnet hyperparameter (btcli `sudo set`).  |
| [`set-mechanism-count`](/docs/tx/set-mechanism-count)                 | coldkey | subnet owner      | Set the number of mechanisms on a subnet.                        |
| [`set-subnet-emission-enabled`](/docs/tx/set-subnet-emission-enabled) | coldkey | root (chain sudo) | Enable or disable a subnet's pool-side TAO emission (root only). |
| [`trim-subnet`](/docs/tx/trim-subnet)                                 | coldkey | subnet owner      | Trim a subnet to at most `max_n` UIDs (subnet owner).            |

## Balances [#balances]

| Operation                               | Signer  | Origin                                 | Summary                                                            |
| --------------------------------------- | ------- | -------------------------------------- | ------------------------------------------------------------------ |
| [`fund-evm-key`](/docs/tx/fund-evm-key) | coldkey | signed account (pallet role may apply) | Fund an EVM (h160) address with TAO from the signing coldkey.      |
| [`transfer`](/docs/tx/transfer)         | coldkey | signed account (pallet role may apply) | Transfer TAO from the coldkey to a destination address.            |
| [`transfer-all`](/docs/tx/transfer-all) | coldkey | signed account (pallet role may apply) | Transfer the entire transferable balance to a destination address. |

## Crowdloan [#crowdloan]

| Operation                                                                         | Signer  | Origin                                 | Summary                                                                            |
| --------------------------------------------------------------------------------- | ------- | -------------------------------------- | ---------------------------------------------------------------------------------- |
| [`contribute-crowdloan`](/docs/tx/contribute-crowdloan)                           | coldkey | signed account (pallet role may apply) | Contribute TAO to an active crowdloan.                                             |
| [`create-crowdloan`](/docs/tx/create-crowdloan)                                   | coldkey | signed account (pallet role may apply) | Open a crowdloan raising up to `cap_tao` by `end` block.                           |
| [`dissolve-crowdloan`](/docs/tx/dissolve-crowdloan)                               | coldkey | signed account (pallet role may apply) | Dissolve a fully-refunded crowdloan (creator only).                                |
| [`finalize-crowdloan`](/docs/tx/finalize-crowdloan)                               | coldkey | signed account (pallet role may apply) | Finalize a crowdloan that reached its cap (creator only).                          |
| [`refund-crowdloan`](/docs/tx/refund-crowdloan)                                   | coldkey | signed account (pallet role may apply) | Refund contributors of a non-finalized crowdloan (creator only).                   |
| [`set-crowdloan-max-contribution`](/docs/tx/set-crowdloan-max-contribution)       | coldkey | signed account (pallet role may apply) | Set or clear the per-contributor max for a non-finalized crowdloan (creator only). |
| [`update-crowdloan-cap`](/docs/tx/update-crowdloan-cap)                           | coldkey | signed account (pallet role may apply) | Update the cap of a non-finalized crowdloan (creator only).                        |
| [`update-crowdloan-end`](/docs/tx/update-crowdloan-end)                           | coldkey | signed account (pallet role may apply) | Update the end block of a non-finalized crowdloan (creator only).                  |
| [`update-crowdloan-min-contribution`](/docs/tx/update-crowdloan-min-contribution) | coldkey | signed account (pallet role may apply) | Update the minimum contribution of a non-finalized crowdloan (creator only).       |
| [`withdraw-crowdloan`](/docs/tx/withdraw-crowdloan)                               | coldkey | signed account (pallet role may apply) | Withdraw the signer's contribution from a non-finalized crowdloan.                 |

## EVM [#evm]

| Operation                               | Signer  | Origin                                 | Summary                                                    |
| --------------------------------------- | ------- | -------------------------------------- | ---------------------------------------------------------- |
| [`evm-withdraw`](/docs/tx/evm-withdraw) | coldkey | signed account (pallet role may apply) | Claim TAO deposited to the coldkey's truncated EVM mirror. |

## Multisig [#multisig]

| Operation                                               | Signer  | Origin                                 | Summary                                                                         |
| ------------------------------------------------------- | ------- | -------------------------------------- | ------------------------------------------------------------------------------- |
| [`multisig-approve`](/docs/tx/multisig-approve)         | coldkey | signed account (pallet role may apply) | Register approval for a multisig call (non-final approvals).                    |
| [`multisig-cancel`](/docs/tx/multisig-cancel)           | coldkey | signed account (pallet role may apply) | Cancel an ongoing multisig operation (only the original depositor may).         |
| [`multisig-execute`](/docs/tx/multisig-execute)         | coldkey | signed account (pallet role may apply) | Approve and, if the threshold is met, execute a multisig call (final approval). |
| [`multisig-threshold-1`](/docs/tx/multisig-threshold-1) | coldkey | signed account (pallet role may apply) | Dispatch a 1-of-N multisig call immediately (single approval).                  |

## Proxy [#proxy]

| Operation                                                     | Signer  | Origin                                 | Summary                                                                 |
| ------------------------------------------------------------- | ------- | -------------------------------------- | ----------------------------------------------------------------------- |
| [`add-proxy`](/docs/tx/add-proxy)                             | coldkey | signed account (pallet role may apply) | Authorize a delegate key to sign calls on this account's behalf.        |
| [`create-pure-proxy`](/docs/tx/create-pure-proxy)             | coldkey | signed account (pallet role may apply) | Create a pure proxy: a fresh keyless account controlled via delegation. |
| [`execute-proxy-announced`](/docs/tx/execute-proxy-announced) | coldkey | signed account (pallet role may apply) | Execute a proxy call that was announced and has passed its delay.       |
| [`kill-pure-proxy`](/docs/tx/kill-pure-proxy)                 | coldkey | signed account (pallet role may apply) | Close a pure proxy account and return its reserved deposit.             |
| [`remove-proxies`](/docs/tx/remove-proxies)                   | coldkey | signed account (pallet role may apply) | Revoke every proxy delegation for the signing account at once.          |
| [`remove-proxy`](/docs/tx/remove-proxy)                       | coldkey | signed account (pallet role may apply) | Revoke one proxy delegation.                                            |

## SubtensorModule [#subtensormodule]

| Operation                                                                     | Signer  | Origin                                 | Summary                                                                      |
| ----------------------------------------------------------------------------- | ------- | -------------------------------------- | ---------------------------------------------------------------------------- |
| [`add-collateral`](/docs/tx/add-collateral)                                   | coldkey | signed account (pallet role may apply) | Lock additional miner collateral on your own hotkey.                         |
| [`add-stake`](/docs/tx/add-stake)                                             | coldkey | signed account (pallet role may apply) | Stake TAO from the coldkey onto a hotkey.                                    |
| [`add-stake-limit`](/docs/tx/add-stake-limit)                                 | coldkey | signed account (pallet role may apply) | Stake TAO with a limit price (slippage protection).                          |
| [`announce-coldkey-swap`](/docs/tx/announce-coldkey-swap)                     | coldkey | signed account (pallet role may apply) | Announce (commit to) a coldkey swap; executable after the chain's delay.     |
| [`associate-evm-key`](/docs/tx/associate-evm-key)                             | hotkey  | signed account (pallet role may apply) | Associate an EVM key with a hotkey on a subnet.                              |
| [`associate-hotkey`](/docs/tx/associate-hotkey)                               | coldkey | signed account (pallet role may apply) | Associate a hotkey with the signing coldkey.                                 |
| [`burned-register`](/docs/tx/burned-register)                                 | coldkey | signed account (pallet role may apply) | Register a hotkey on a subnet by paying the registration cost.               |
| [`claim-root`](/docs/tx/claim-root)                                           | coldkey | signed account (pallet role may apply) | Claim accumulated root dividends from one or more subnets.                   |
| [`clear-coldkey-swap-announcement`](/docs/tx/clear-coldkey-swap-announcement) | coldkey | signed account (pallet role may apply) | Cancel a pending coldkey swap announcement (after the reannouncement delay). |
| [`commit-weights`](/docs/tx/commit-weights)                                   | hotkey  | signed account (pallet role may apply) | Timelock-encrypt and commit weights, forcing the commit-reveal path.         |
| [`decrease-take`](/docs/tx/decrease-take)                                     | coldkey | signed account (pallet role may apply) | Decrease the delegate take of a hotkey.                                      |
| [`dispute-coldkey-swap`](/docs/tx/dispute-coldkey-swap)                       | coldkey | signed account (pallet role may apply) | Freeze this coldkey entirely until root resolves the dispute.                |
| [`increase-take`](/docs/tx/increase-take)                                     | coldkey | signed account (pallet role may apply) | Increase the delegate take of a hotkey.                                      |
| [`lock-stake`](/docs/tx/lock-stake)                                           | coldkey | signed account (pallet role may apply) | Lock alpha stake on a subnet, building conviction toward a hotkey.           |
| [`move-lock`](/docs/tx/move-lock)                                             | coldkey | signed account (pallet role may apply) | Move an existing lock from one hotkey to another on a subnet.                |
| [`move-stake`](/docs/tx/move-stake)                                           | coldkey | signed account (pallet role may apply) | Move alpha between hotkeys and/or subnets.                                   |
| [`register-leased-network`](/docs/tx/register-leased-network)                 | coldkey | signed account (pallet role may apply) | Register a new crowdloan-funded leased subnet.                               |
| [`register-subnet`](/docs/tx/register-subnet)                                 | coldkey | signed account (pallet role may apply) | Create a new subnet owned by the signing coldkey.                            |
| [`remove-stake`](/docs/tx/remove-stake)                                       | coldkey | signed account (pallet role may apply) | Unstake alpha from a hotkey back to the coldkey.                             |
| [`remove-stake-limit`](/docs/tx/remove-stake-limit)                           | coldkey | signed account (pallet role may apply) | Unstake alpha with a limit price (slippage protection).                      |
| [`reset-axon`](/docs/tx/reset-axon)                                           | hotkey  | signed account (pallet role may apply) | Reset (stop serving) this hotkey's axon endpoint on a subnet.                |
| [`reveal-weights`](/docs/tx/reveal-weights)                                   | hotkey  | signed account (pallet role may apply) | Reveal previously committed weights (legacy salt-based commit-reveal).       |
| [`root-register`](/docs/tx/root-register)                                     | coldkey | signed account (pallet role may apply) | Register a hotkey on the root network (netuid 0).                            |
| [`serve-axon`](/docs/tx/serve-axon)                                           | hotkey  | signed account (pallet role may apply) | Publish this hotkey's axon endpoint (ip:port) for a subnet.                  |
| [`serve-axon-tls`](/docs/tx/serve-axon-tls)                                   | hotkey  | signed account (pallet role may apply) | Publish this hotkey's axon endpoint with a neuron certificate.               |
| [`serve-prometheus`](/docs/tx/serve-prometheus)                               | hotkey  | signed account (pallet role may apply) | Publish this hotkey's prometheus metrics endpoint (ip:port) for a subnet.    |
| [`set-auto-stake`](/docs/tx/set-auto-stake)                                   | coldkey | signed account (pallet role may apply) | Auto-stake future mining rewards on a subnet to a chosen hotkey.             |
| [`set-childkey-take`](/docs/tx/set-childkey-take)                             | coldkey | signed account (pallet role may apply) | Set the childkey take for a hotkey on a subnet.                              |
| [`set-children`](/docs/tx/set-children)                                       | coldkey | signed account (pallet role may apply) | Assign child hotkeys with stake-weight proportions on a subnet.              |
| [`set-identity`](/docs/tx/set-identity)                                       | coldkey | signed account (pallet role may apply) | Publish an on-chain identity (name, links, description) for the coldkey.     |
| [`set-min-collateral`](/docs/tx/set-min-collateral)                           | coldkey | signed account (pallet role may apply) | Set the self-maintaining collateral floor for your hotkey on a subnet.       |
| [`set-perpetual-lock`](/docs/tx/set-perpetual-lock)                           | coldkey | signed account (pallet role may apply) | Enable or disable perpetual lock mode for a coldkey on a subnet.             |
| [`set-root-claim-type`](/docs/tx/set-root-claim-type)                         | coldkey | signed account (pallet role may apply) | Set how a coldkey's root alpha emission is claimed.                          |
| [`set-subnet-identity`](/docs/tx/set-subnet-identity)                         | coldkey | subnet owner                           | Publish identity metadata for a subnet (signer must be the subnet owner).    |
| [`set-take`](/docs/tx/set-take)                                               | coldkey | signed account (pallet role may apply) | Set the delegate take to an absolute value.                                  |
| [`set-weights`](/docs/tx/set-weights)                                         | hotkey  | signed account (pallet role may apply) | Set validator weights, auto-selecting plaintext or commit-reveal.            |
| [`stake-burn`](/docs/tx/stake-burn)                                           | coldkey | signed account (pallet role may apply) | Buy back / burn stake via the stake-burn extrinsic.                          |
| [`start-call`](/docs/tx/start-call)                                           | coldkey | subnet owner                           | Activate a subnet (subtoken trading, epochs) as its owner.                   |
| [`swap-coldkey-announced`](/docs/tx/swap-coldkey-announced)                   | coldkey | signed account (pallet role may apply) | Execute a previously announced coldkey swap (after the delay has passed).    |
| [`swap-hotkey`](/docs/tx/swap-hotkey)                                         | coldkey | signed account (pallet role may apply) | Swap a hotkey for a new one (all subnets, or one netuid).                    |
| [`swap-stake`](/docs/tx/swap-stake)                                           | coldkey | signed account (pallet role may apply) | Swap stake on one hotkey between two subnets.                                |
| [`terminate-lease`](/docs/tx/terminate-lease)                                 | coldkey | signed account (pallet role may apply) | Terminate an ended lease and take subnet ownership (beneficiary only).       |
| [`transfer-stake`](/docs/tx/transfer-stake)                                   | coldkey | signed account (pallet role may apply) | Transfer stake ownership to another coldkey.                                 |
| [`unstake-all`](/docs/tx/unstake-all)                                         | coldkey | signed account (pallet role may apply) | Unstake everything from a hotkey across all subnets.                         |
| [`unstake-all-alpha`](/docs/tx/unstake-all-alpha)                             | coldkey | signed account (pallet role may apply) | Unstake all alpha from a hotkey across subnets (moves it to root).           |
| [`update-symbol`](/docs/tx/update-symbol)                                     | coldkey | subnet owner                           | Update a subnet's symbol (from the chain's fixed catalog).                   |

## Utility [#utility]

| Operation                 | Signer  | Origin                                 | Summary                                                               |
| ------------------------- | ------- | -------------------------------------- | --------------------------------------------------------------------- |
| [`batch`](/docs/tx/batch) | coldkey | signed account (pallet role may apply) | Execute several intents atomically in one extrinsic (all-or-nothing). |
