diff --git a/docs/errors/custom.md b/docs/errors/custom.md
index fab2aced6..6fb3d26aa 100644
--- a/docs/errors/custom.md
+++ b/docs/errors/custom.md
@@ -26,7 +26,7 @@ Related:
### Error Code 0
-**Error**: `ColdKeyInSwapSchedule`
+**Error**: `ColdkeySwapAnnounced`
**Description**: Your coldkey is set to be swapped. No transfer operations are possible.
### Error Code 1
diff --git a/docs/errors/subtensor.md b/docs/errors/subtensor.md
index 29086627e..5214c69ab 100644
--- a/docs/errors/subtensor.md
+++ b/docs/errors/subtensor.md
@@ -102,10 +102,6 @@ New coldkey is hotkey.
The coldkey has already been swapped.
-### `ColdkeyIsInArbitration`
-
-The coldkey is in arbitration.
-
### `UnableToRecoverPublicKey`
Public key cannot be recovered.
@@ -494,13 +490,21 @@ PoW hash seal does not match work.
Faucet is disabled.
-### `SwapAlreadyScheduled`
+### `ColdkeySwapAnnouncementNotFound`
+
+Coldkey swap announcement not found
+
+### `ColdkeySwapTooEarly`
-Swap already scheduled.
+Coldkey swap too early.
-### `FailedToSchedule`
+### `ColdkeySwapReannouncedTooEarly`
-Failed to schedule swap.
+Coldkey swap reannounced too early.
+
+### `AnnouncedColdkeyHashDoesNotMatch`
+
+The announced coldkey hash does not match the new coldkey hash.
### `InvalidIdentity`
@@ -541,3 +545,7 @@ Wallet not authorized. Ensure that the account has the correct root or subnet ow
### `InvalidValue`
Generic error for out-of-range parameter value
+
+### `Deprecated`
+
+Deprecated call.
diff --git a/docs/governance/senators-btcli-guide.md b/docs/governance/senators-btcli-guide.md
index 0d897ed9d..fe1c902d0 100644
--- a/docs/governance/senators-btcli-guide.md
+++ b/docs/governance/senators-btcli-guide.md
@@ -27,4 +27,4 @@ See: [Senate](./senate).
If you suspect your coldkey may have been leaked, you can request to swap it out of your wallet, using an extrinsic blockchain transaction. This operation has a 5 day waiting period, during which your coldkey will be locked. The cost of this coldkey swap transaction is 0.1 TAO.
-See [Rotate/Swap your Coldkey](../keys/schedule-coldkey-swap)
+See [Rotate/Swap your Coldkey](../keys/coldkey-swap)
diff --git a/docs/keys/coldkey-hotkey-security.md b/docs/keys/coldkey-hotkey-security.md
index 24caf74ea..749828056 100644
--- a/docs/keys/coldkey-hotkey-security.md
+++ b/docs/keys/coldkey-hotkey-security.md
@@ -2,7 +2,7 @@
title: "Coldkey and Hotkey Workstation Security"
---
-import { SecurityWarning } from "./_security-warning.mdx";
+import { SecurityWarning } from "./\_security-warning.mdx";
# Coldkey and Hotkey Workstation Security
@@ -98,7 +98,7 @@ Even on a minimal or air-gapped machine, follow standard security hygiene:
If you suspect your coldkey may have been leaked, you can request to swap it out of your wallet, using an extrinsic blockchain transaction. This operation has a 5 day waiting period, during which your coldkey will be locked. The cost of this coldkey swap transaction is 0.1 TAO.
-See [Rotate/Swap your Coldkey](./schedule-coldkey-swap)
+See [Rotate/Swap your Coldkey](./coldkey-swap)
Effectively, this transfers all of your TAO and alpha stake balances, as well as your `sudo` control over any subnets you have created:
@@ -115,16 +115,17 @@ Effectively, this transfers all of your TAO and alpha stake balances, as well as
**Proxies are one of the most effective tools for protecting your coldkey** while maintaining operational flexibility. By setting up proxy relationships, you can perform routine operations like staking without exposing your coldkey to any online environment.
Key benefits:
+
- **Least-privilege permissions**: Configure proxies with only the specific permissions needed (e.g., `Staking` type for stake management only)
- **Time-delayed operations**: Set a non-zero delay so you have time to reject unauthorized transactions if a proxy is compromised
- **Coldkey stays in cold storage**: Your high-value coldkey never needs to leave secure offline storage for day-to-day operations
-
:::warning Zero-delay proxies
A proxy with `delay: 0` and `ProxyType: Any` offers **no additional security** over direct coldkey access. Always use the narrowest `ProxyType` possible and consider adding delays for high-value operations.
:::
See:
+
- [Proxies: Overview](./proxies/index.md)
- [Working with Proxies](./proxies/working-with-proxies.md)
- [Staking with a Proxy](./proxies/staking-with-proxy.md)
diff --git a/docs/keys/coldkey-swap.md b/docs/keys/coldkey-swap.md
new file mode 100644
index 000000000..8062c80bc
--- /dev/null
+++ b/docs/keys/coldkey-swap.md
@@ -0,0 +1,316 @@
+---
+title: "Rotate/Swap your Coldkey"
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Rotate/Swap your Coldkey
+
+This page describes how to _rotate_ or _swap_ the coldkey in your wallet. This is required if you suspect your coldkey has been leaked. Your coldkey secures your identity on Bittensor.
+
+See:
+
+- [Wallets, Coldkeys and Hotkeys in Bittensor](./wallets)
+- [Coldkey and Hotkey Workstation Security](./coldkey-hotkey-security)
+
+See [code for coldkey swap](https://github.com/opentensor/subtensor/blob/main/pallets/subtensor/src/swap/swap_coldkey.rs).
+
+:::tip Prevent emergencies with proxies
+Coldkey swaps are often needed when a coldkey is compromised. **Using proxy wallets can help prevent this situation entirely.** With a properly configured proxy (limited `ProxyType` and non-zero delay), even if an attacker gains access to your proxy wallet, they cannot immediately drain your funds—the delay gives you time to detect and reject unauthorized transactions.
+
+For high-value wallets, consider setting up a `Staking` proxy for regular staking operations instead of using your coldkey directly.
+
+See [Proxies: Overview](./proxies/index.md) to learn how to protect your coldkey proactively.
+:::
+
+The coldkey swap mechanism provides a secure way to transition from a potentially compromised source coldkey to a new destination coldkey. To initiate the swap, you must first announce your intention by providing a cryptographic hash of the destination coldkey. This announcement is visible on the chain but does not immediately move funds or ownership; instead, it triggers a mandatory locking period for the source coldkey.
+
+After the announcement, a required delay period must pass before the swap can be finalized. By default, this [announcement delay period](https://github.com/opentensor/subtensor/blob/b1067d49a24112e80a1fc8ce04f52a34f9bb6cff/pallets/subtensor/src/lib.rs#L1360) is set to **36,000 blocks** (approximately **5 days**). Once this period has elapsed, you must manually execute the swap by providing the actual destination coldkey. The system then verifies that this key matches the previously submitted hash and that the required time has passed.
+
+:::info
+If the destination coldkey already has an existing identity, it will be preserved during this process rather than being overwritten.
+:::
+
+The cost for a coldkey swap transaction is **0.1 TAO**. This must be available in the source coldkey when the swap is announced. Upon successful execution, the source coldkey is entirely unlocked, and all associated assets are migrated to the destination coldkey. This includes the transfer of all delegated stake, staked TAO (for those staking to a validator), and any subnet ownership from the source coldkey to the destination coldkey.
+
+:::warning Announced swaps cannot be cancelled
+Once a coldkey swap has been announced, **it cannot be cancelled**. This is an intentional design feature; coldkey swaps must not be cancellable, because if they were, an attacker who gained access to a coldkey could use cancellation to thwart the owner's attempt to swap it.
+
+The delay period is intentionally long to allow those affected by the swap to access their coldkeys in order to respond. This is an issue because high-value keys (for example, coldkeys with subnet ownership or which control high value validator hotkeys) should be kept under stringent conditions of physical security, implying they cannot always be quickly accessed, for example during travel.
+
+:::
+
+## Prerequisites
+
+To follow along with the below examples:
+
+- You must own the source coldkey to be swapped.
+- A destination (new) coldkey public key.
+
+:::warning
+Confirm the identity of the destination coldkey. A mistake here can result in loss of all of the source coldkey's assets and identity.
+
+- The destination coldkey must not have any existing associations with hotkeys on-chain.
+- If you are rotating the coldkey to maintain ownership, you must control the destination coldkey privatekey. Otherwise you will lose control over all of the source coldkey's assets and identity.
+- If you are transferring ownership to someone else, confirm that they have secure control of the destination coldkey private key.
+ :::
+
+## Announce a coldkey swap
+
+Before swapping a coldkey, users must first announce their intention to swap coldkeys by providing a hash of the new coldkey and then wait the required delay interval before executing the swap.
+
+To announce a coldkey swap:
+
+
+
+
+
+Run the following command to announce a coldkey swap using BTCLI:
+
+```bash
+btcli wallets swap-coldkey announce \
+--wallet-name WALLET_NAME \
+--new-coldkey DESTINATION_COLDKEY
+```
+
+Replace `WALLET_NAME` and `DESTINATION_COLDKEY` with the appropriate wallet addresses.
+
+
+ Show sample output
+
+
+
+```sh
+Wallet selected: Wallet (Name: 'alice', Hotkey: 'default', Path: '/Users/chidera/.bittensor/wallets/')
+
+
+New coldkey wallet: Wallet (Name: 'swap-test', Hotkey: 'default', Path: '/Users/chidera/.bittensor/wallets/')
+
+Using the specified network local from config
+[19:16:41] Warning: Verify your local subtensor is running on port 9944. subtensor_interface.py:91
+
+ Announcing Coldkey Swap
+
+ Item ┃ Value
+━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+ Current Coldkey │ 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY
+ New Coldkey │ 5FHqAJM9jtVccTctCVmEvxzzm6qeA2yfbqcLFZLMipRKS1cB
+ New Coldkey Hash │ 0x278149779b423b9294031351e042580000f6f0bce1fbf3a217a27be977c6d080
+ Swap Cost │ 0.1000 τ
+Delay Before Execution│ 5d
+──────────────────────┼────────────────────────────────────────────────────────────────────
+ │
+Are you sure you want to continue? [y/n] (n): y
+✅ Successfully announced coldkey swap
+
+✅ Your extrinsic has been included as 208-2
+
+ Coldkey Swap Announced
+
+ Item ┃ Value
+━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+ Original Coldkey │ 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY
+ New Coldkey │ 5FHqAJM9jtVccTctCVmEvxzzm6qeA2yfbqcLFZLMipRKS1cB
+ New Coldkey Hash │ 0x278149779b423b9294031351e042580000f6f0bce1fbf3a217a27be977c6d080
+ Execution Block │ 258
+Time Until Executable│ 4d 23h
+─────────────────────┼────────────────────────────────────────────────────────────────────
+ │
+
+After the delay, run:
+btcli wallet swap-coldkey execute --new-coldkey 5FHqAJM9jtVccTctCVmEvxzzm6qeA2yfbqcLFZLMipRKS1cB
+```
+
+
+
+
+
+Paste the following snippet to announce a coldkey swap using the Bittensor SDK:
+
+```py
+import bittensor as bt
+
+subtensor = bt.Subtensor(network="local")
+wallet = bt.Wallet(name="WALLET_NAME")
+
+new_coldkey_ss58 = "DESTINATION_COLDKEY"
+
+# Announce the coldkey swap
+response = subtensor.announce_coldkey_swap(
+ wallet=wallet,
+ new_coldkey_ss58=new_coldkey_ss58,
+ wait_for_inclusion=True,
+ wait_for_finalization=True,
+)
+
+if response.success:
+ print(f"✅ Coldkey swap announced successfully!")
+else:
+ print(f"❌ Failed to announce swap: {response.message}")
+```
+
+Replace `WALLET_NAME` and `DESTINATION_COLDKEY` with the appropriate wallet addresses. Also, modify the targeted network if necessary.
+
+
+
+:::info reannouncing coldkey swaps
+A coldkey swap can be reannounced only after the [ColdkeySwapReannouncementDelay](https://github.com/opentensor/subtensor/blob/b1067d49a24112e80a1fc8ce04f52a34f9bb6cff/chain-extensions/src/mock.rs#L329C15-L329C52) has passed. By default, this is 7,200 blocks (~1 day) after the initial announcement delay period expires. Reannouncing will overwrite the existing announcement and reset the mandatory waiting period before execution.
+:::
+
+### Check announcements from a coldkey
+
+You can check the details of any coldkey swap announcements associated with a particular coldkey. This allows you to verify that your announcement is active while inspecting the committed hash and the target block for execution.
+
+
+
+
+
+Run the following command to execute a coldkey swap using BTCLI:
+
+```bash
+btcli wallets swap-check --wallet-name WALLET_NAME
+```
+
+Replace `WALLET_NAME` with the source coldkey address.
+
+
+ Show sample output
+
+```sh
+Enter wallet name or SS58 address (leave blank to show all pending announcements): alice
+
+ Pending Coldkey Swap Announcements
+ Current Block: 115
+
+ Coldkey ┃ New Coldkey Hash ┃ Execution Block ┃ Time Remaining ┃ Status
+━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━
+ 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY │ 0x94772f97f5...ae2160 │ 36111 │ 4d 23h │ Pending
+
+
+```
+
+
+
+
+
+Paste the following snippet to execute a coldkey swap using the Bittensor SDK:
+
+```py
+import bittensor as bt
+
+subtensor = bt.Subtensor(network="local")
+wallet = bt.Wallet(name="WALLET_NAME")
+
+announcement = subtensor.get_coldkey_swap_announcement(
+ coldkey_ss58=wallet.coldkeypub.ss58_address
+)
+
+if announcement:
+ current_block = subtensor.get_current_block()
+
+ print(f"📋 Announcement found:")
+ print(f" New coldkey hash: {announcement.new_coldkey_hash}")
+ print(f" Execution block: {announcement.execution_block}")
+ print(f" Current block: {current_block}")
+else:
+ print("❌ No announcement found")
+```
+
+Replace `WALLET_NAME` with the source coldkey address. Also, modify the targeted network if necessary.
+
+
+
+## Execute a coldkey swap
+
+After the announcement waiting period has passed, the source coldkey can now execute the swap to finalize the process. Attempting to execute a coldkey swap before the announcement delay period has passed will return an error.
+
+To execute a coldkey swap:
+
+
+
+
+
+Run the following command to execute a coldkey swap using BTCLI:
+
+```bash
+btcli wallets swap-coldkey execute \
+--wallet-name WALLET_NAME \
+--new-coldkey DESTINATION_COLDKEY
+```
+
+Replace `WALLET_NAME` and `DESTINATION_COLDKEY` with the appropriate wallet addresses.
+
+
+ Show sample output
+
+```sh
+Wallet selected: Wallet (Name: 'alice', Hotkey: 'default', Path: '/Users/chidera/.bittensor/wallets/')
+
+New coldkey wallet: Wallet (Name: 'swap-test', Hotkey: 'default', Path: '/Users/chidera/.bittensor/wallets/')
+
+Using the specified network local from config
+[18:59:12] Warning: Verify your local subtensor is running on port 9944. subtensor_interface.py:91
+
+ Executing Coldkey Swap
+
+ Item ┃ Value
+━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+ Current Coldkey │ 5Gxhv5iZGBvvR6YJeEdLmvZ7hSHbE6FdHc43fLqMVkhki7j4
+ New Coldkey │ 5G4HAHNfT3TFvXMi53LLCR4vsBbSeKXUPsBycDtfbkroMVP9
+─────────────────┼──────────────────────────────────────────────────
+ │
+
+WARNING: This action is irreversible. All assets will be transferred.
+
+Are you sure you want to continue? [y/n] (n): y
+Decrypting...
+
+✅ Successfully executed coldkey swap!
+✅ Your extrinsic has been included as 39386-2
+
+ Coldkey Swap Completed
+
+ Item ┃ Value
+━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+ Old Coldkey │ 5Gxhv5iZGBvvR6YJeEdLmvZ7hSHbE6FdHc43fLqMVkhki7j4
+ New Coldkey │ 5G4HAHNfT3TFvXMi53LLCR4vsBbSeKXUPsBycDtfbkroMVP9
+─────────────────┼──────────────────────────────────────────────────
+ │
+
+All assets have been transferred to the new coldkey.
+```
+
+
+
+
+
+Paste the following snippet to execute a coldkey swap using the Bittensor SDK:
+
+```py
+import bittensor as bt
+
+subtensor = bt.Subtensor(network="local")
+wallet = bt.Wallet(name="WALLET_NAME")
+
+new_coldkey_ss58 = "DESTINATION_COLDKEY"
+
+# Announce the coldkey swap
+response = subtensor.swap_coldkey_announced(
+ wallet=wallet,
+ new_coldkey_ss58=new_coldkey_ss58,
+ wait_for_inclusion=True,
+ wait_for_finalization=True,
+)
+
+if response.success:
+ print(f"✅ Coldkey swap executed successfully!")
+else:
+ print(f"❌ Failed to announce swap: {response.message}")
+```
+
+Replace `WALLET_NAME` and `DESTINATION_COLDKEY` with the appropriate wallet addresses. Also, modify the targeted network if necessary.
+
+
+
+After executing a coldkey swap, all assets will be transferred to the destination coldkey, including TAO balance, delegated stake, and any subnet ownership.
diff --git a/docs/keys/schedule-coldkey-swap.md b/docs/keys/schedule-coldkey-swap.md
deleted file mode 100644
index 49e1e5ad2..000000000
--- a/docs/keys/schedule-coldkey-swap.md
+++ /dev/null
@@ -1,117 +0,0 @@
----
-title: "Rotate/Swap your Coldkey"
----
-
-import ThemedImage from '@theme/ThemedImage';
-import useBaseUrl from '@docusaurus/useBaseUrl';
-
-# Rotate/Swap your Coldkey
-
-This page describes how to _rotate_ or _swap_ the coldkey in your wallet. This is required if you suspect your coldkey has been leaked. Your coldkey secures your identity on Bittensor.
-
-See:
-
-- [Wallets, Coldkeys and Hotkeys in Bittensor](./wallets)
-- [Coldkey and Hotkey Workstation Security](./coldkey-hotkey-security)
-
-See [code for coldkey swap](https://github.com/opentensor/subtensor/blob/main/pallets/subtensor/src/swap/swap_coldkey.rs).
-
-:::tip Prevent emergencies with proxies
-Coldkey swaps are often needed when a coldkey is compromised. **Using proxy wallets can help prevent this situation entirely.** With a properly configured proxy (limited `ProxyType` and non-zero delay), even if an attacker gains access to your proxy wallet, they cannot immediately drain your funds—the delay gives you time to detect and reject unauthorized transactions.
-
-For high-value wallets, consider setting up a `Staking` proxy for regular staking operations instead of using your coldkey directly.
-
-See [Proxies: Overview](./proxies/index.md) to learn how to protect your coldkey proactively.
-:::
-
-The schedule coldkey swap feature works as follows:
-
-- The schedule coldkey swap feature enables you to schedule the swapping of source coldkey to a destination coldkey. If you feel your existing coldkey is potentially compromised, then use this feature to schedule a swap to a destination coldkey.
-- When you use this feature, it will not immediately swap your coldkeys and swap your TAO funds from the source coldkey to the destination coldkey. It will only schedule the swap event.
-- All scheduled coldkey swaps will be executed on-chain. **Your scheduled coldkey swap will execute on the mainnet 36000 blocks (approximately 5 days) after you successfully scheduled the coldkey swap using the method described in this document.**
-- The source coldkey you used in this method will be locked when you schedule the swap. After the 36000-block period is elapsed your original coldkey will be unlocked entirely.
-- **Cost**: The cost of this coldkey swap transaction is 0.1 TAO. This must be available in your source coldkey.
-- Any subnet ownership from your source coldkey will move to the destination coldkey.
-- The delegated stake will be transferred from your source coldkey to the destination coldkey.
-- For those who were staking to a validator from their source coldkey, their staking TAO will transfer to the destination coldkey.
-
-:::danger Do not schedule coldkey swap more than once using the same coldkey
-:::
-
-:::warning Scheduled swaps cannot be cancelled
-Once a coldkey swap has been scheduled, **it cannot be cancelled**. This is an intentional design feature; coldkey swaps must not be cancellable, because if they were, an attacker who gained access to a coldkey could use cancellation to thwart the owner's attempt to swap it.
-
-The delay period is intentionally long to allow those affected by the swap to access their coldkeys in order to respond. This is an issue because high-value keys (for example, coldkeys with subnet ownership or which control high value validator hotkeys) should be kept under stringent conditions of physical security, implying they cannot always be quickly accessed, for example during travel.
-
-:::
-
-## Requirements
-
-1. To execute this operation, you must own the source coldkey.
-2. The destination (new) coldkey public key must not already be assigned to a hotkey _or a coldkey that is associated with any hotkeys_.
-3. Confirm the identity of the destination coldkey. A mistake here can result in loss of all of the source coldkey's assets and identity.
- - If you are rotating the coldkey to maintain ownership, you must control the destination coldkey privatekey. Otherwise you will lose control over all of the source coldkey's assets and identity.
- - If you are transferring ownership to someone else, confirm that they have secure control of the destination coldkey private key.
-
-## Using Bittensor-CLI
-
-`btcli w swap-coldkey`
-
-## Using the [Polkadot JS extension](https://polkadot.js.org/extension/)
-
-1. You must import your source and destination coldkeys into the Polkadot JS extension.
-2. You must connect the source coldkey account to the [polkadot.js.org/apps](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fentrypoint-finney.opentensor.ai%3A443#/explorer) website.
-
-:::danger If you do not do this step, then you will not see **Developer** > **Extrinsics** option on the [polkadot.js.org/apps](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fentrypoint-finney.opentensor.ai%3A443#/extrinsics) website.
-:::
-
-## Steps for Polkadot JS
-
-Follow the steps shown below the screenshot:
-
-
-
-
-
-
-
-### Step 1: Connect to the subtensor network on Polkadot.js
-
-Open your web browser and navigate to the Polkadot.js Apps website (https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fentrypoint-finney.opentensor.ai%3A443#/).
-
-### Step 2: Navigate to the Extrinsics page
-
-From the top navigation menu, proceed to **Developer** > **Extrinsics** to open the Extrinsics page. If you do not see this option, then make sure you successfully imported your source coldkey into the Polkadot JS extension, and connected this source coldkey account to the Polkadot.js Apps website.
-
-### Step 3: Select your source coldkey account
-
-Locate the drop-down section labeled **using the selected account** and select your connected account. This account should be your source coldkey account.
-
-### Step 4: Select the `subtensorModule`
-
-Locate the drop-down section labeled **submit the following extrinsic** and select `subtensorModule`.
-
-### Step 5: Choose the `scheduleSwapColdkey` function
-
-After selecting the `subtensorModule`, a second drop-down menu will appear on the right side of it. From this drop-down select the `scheduleSwapColdkey` option.
-
-### Step 6: Provide the destination coldkey
-
-Provide your destination coldkey in the `newColdkey: AccountId32` field.
-
-### Step 7: Submit the transaction
-
-Check again that you have provided the correct source and destination coldkeys.
-
-Scroll down to the bottom of the page and click on the **Submit Transaction** button. Polkadot.js will prompt you to sign the transaction using the selected account. After you sign the transaction, the signed transaction will be broadcast to the Subtensor.
-
-## Verify
-
-Your scheduled coldkey swap will execute on the mainnet 36000 blocks after you successfully scheduled the coldkey swap using the above method. Check your destination coldkey after approximately 5 days to verify.
diff --git a/docs/miners/miners-btcli-guide.md b/docs/miners/miners-btcli-guide.md
index 322d98aa2..ffb8371fd 100644
--- a/docs/miners/miners-btcli-guide.md
+++ b/docs/miners/miners-btcli-guide.md
@@ -69,4 +69,4 @@ Miners will need coldkeys to manage their TAO and alpha currency, as well as hot
If you suspect your coldkey may have been leaked, you can request to swap it out of your wallet, using an extrinsic blockchain transaction. This operation has a 5 day waiting period, during which your coldkey will be locked. The cost of this coldkey swap transaction is 0.1 TAO.
-See [Rotate/Swap your Coldkey](../keys/schedule-coldkey-swap)
+See [Rotate/Swap your Coldkey](../keys/coldkey-swap)
diff --git a/docs/staking-and-delegation/stakers-btcli-guide.md b/docs/staking-and-delegation/stakers-btcli-guide.md
index a006cb4bf..e9cf720c7 100644
--- a/docs/staking-and-delegation/stakers-btcli-guide.md
+++ b/docs/staking-and-delegation/stakers-btcli-guide.md
@@ -63,4 +63,4 @@ See:
If you suspect your coldkey may have been leaked, you can request to swap it out of your wallet, using an extrinsic blockchain transaction. This operation has a 5 day waiting period, during which your coldkey will be locked. The cost of this coldkey swap transaction is 0.1 TAO.
-See [Rotate/Swap your Coldkey](../keys/schedule-coldkey-swap)
+See [Rotate/Swap your Coldkey](../keys/coldkey-swap)
diff --git a/docs/subnets/subnet-creators-btcli-guide.md b/docs/subnets/subnet-creators-btcli-guide.md
index cab7f0bc6..e235e7dd0 100644
--- a/docs/subnets/subnet-creators-btcli-guide.md
+++ b/docs/subnets/subnet-creators-btcli-guide.md
@@ -35,4 +35,4 @@ Configure your subnet's hyperparameters with `btcli sudo set`. Requires the cold
If you suspect your coldkey may have been leaked, you can request to swap it out of your wallet, using an extrinsic blockchain transaction. This operation has a 5 day waiting period, during which your coldkey will be locked. The cost of this coldkey swap transaction is 0.1 TAO.
-See [Rotate/Swap your Coldkey](../keys/schedule-coldkey-swap)
+See [Rotate/Swap your Coldkey](../keys/coldkey-swap)
diff --git a/docs/subnets/subnet-hyperparameters.md b/docs/subnets/subnet-hyperparameters.md
index 770d193e3..8b79d3400 100644
--- a/docs/subnets/subnet-hyperparameters.md
+++ b/docs/subnets/subnet-hyperparameters.md
@@ -671,15 +671,15 @@ Toggles the consensus mechanism used by the subnet between Yuma Consensus v2 and
The following variables are global and/or can only be configured with `root` permissions, which are held by a triumvirate of Opentensor Foundation employees. They are listed here for reference.
-### ColdkeySwapScheduleDuration
+### ColdkeySwapAnnouncementDelay
**Type**: u12
-**Default**:
+**Default**: `36000`
**`btcli` setter**: no
-**Setter extrinsic**: `sudo_set_coldkey_swap_schedule_duration`
+**Setter extrinsic**: `sudo_set_coldkey_swap_announcement_delay`
**Permissions required to set**: Root
@@ -687,7 +687,7 @@ The following variables are global and/or can only be configured with `root` per
The duration in blocks of the waiting period before a coldkey swap.
-See [Rotate/Swap your Coldkey](../keys/schedule-coldkey-swap)
+See [Rotate/Swap your Coldkey](../keys/coldkey-swap)
diff --git a/docs/subtensor-nodes/subtensor-storage-query-examples.md b/docs/subtensor-nodes/subtensor-storage-query-examples.md
index 8d66af7e7..9e4378e55 100644
--- a/docs/subtensor-nodes/subtensor-storage-query-examples.md
+++ b/docs/subtensor-nodes/subtensor-storage-query-examples.md
@@ -461,23 +461,10 @@ import { SdkVersion } from "../sdk/_sdk-version.mdx";
result = substrate.query('SubtensorModule', 'CKBurn')
print(result.value)
```
-## 28. ColdkeySwapRescheduleDuration
-- **Description**: Storage for ColdkeySwapRescheduleDuration.
-- **Query Type**: `u32`
-- **Parameters**: None
-- **Default Value**: `0`
-- **Python Example**:
- ```python
- from async_substrate_interface import SubstrateInterface
- substrate = SubstrateInterface(url="wss://test.finney.opentensor.ai:443")
-
- result = substrate.query('SubtensorModule', 'ColdkeySwapRescheduleDuration')
- print(result.value)
- ```
-## 29. ColdkeySwapScheduled
+## 29. ColdkeySwapAnnouncements
-- **Description**: Storage for ColdkeySwapScheduled.
+- **Description**: Storage for ColdkeySwapAnnouncements.
- **Query Type**: `u16 -> AccountId`
- **Parameters**:
- `coldkey`: `AccountId`
@@ -489,12 +476,12 @@ import { SdkVersion } from "../sdk/_sdk-version.mdx";
from bittensor_wallet import Keypair
coldkey = Keypair.create_from_uri('//Bob').ss58_address
- result = substrate.query('SubtensorModule', 'ColdkeySwapScheduled', [coldkey])
+ result = substrate.query('SubtensorModule', 'ColdkeySwapAnnouncements', [coldkey])
print(result.value)
```
-## 30. ColdkeySwapScheduleDuration
+## 30. ColdkeySwapAnnouncementDelay
-- **Description**: The block duration for which a coldkey swap schedule must wait before execution.
+- **Description**: The number of blocks that must pass after a coldkey swap is announced before it can be executed.
- **Query Type**: `u32`
- **Parameters**: None
- **Default Value**: `36000`
@@ -503,7 +490,7 @@ import { SdkVersion } from "../sdk/_sdk-version.mdx";
from async_substrate_interface import SubstrateInterface
substrate = SubstrateInterface(url="wss://test.finney.opentensor.ai:443")
- result = substrate.query('SubtensorModule', 'ColdkeySwapScheduleDuration')
+ result = substrate.query('SubtensorModule', 'ColdkeySwapAnnouncementDelay')
print(result.value)
```
## 31. CommitRevealWeightsEnabled
@@ -1451,7 +1438,7 @@ import { SdkVersion } from "../sdk/_sdk-version.mdx";
- **Description**: Network rate limit.
- **Query Type**: `u64`
- **Parameters**: None
-- **Default Value**: `7200`
+- **Default Value**: `14400`
- **Python Example**:
```python
from async_substrate_interface import SubstrateInterface
diff --git a/docs/validators/validators-btcli-guide.md b/docs/validators/validators-btcli-guide.md
index c100c9207..4f032964c 100644
--- a/docs/validators/validators-btcli-guide.md
+++ b/docs/validators/validators-btcli-guide.md
@@ -54,4 +54,4 @@ To set weights, a validator must meet several requirements. See [Requirements fo
If you suspect your coldkey may have been leaked, you can request to swap it out of your wallet, using an extrinsic blockchain transaction. This operation has a 5 day waiting period, during which your coldkey will be locked. The cost of this coldkey swap transaction is 0.1 TAO.
-See [Rotate/Swap your Coldkey](../keys/schedule-coldkey-swap)
+See [Rotate/Swap your Coldkey](../keys/coldkey-swap)
diff --git a/docusaurus.config.js b/docusaurus.config.js
index 75e167cc3..8d8505d36 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -73,15 +73,15 @@ const config = {
"@docusaurus/plugin-client-redirects",
{
redirects: [
- {
- "to": "/keys/proxies/working-with-proxies",
- "from": "/keys/proxies/create-proxy"
+ {
+ to: "/keys/proxies/working-with-proxies",
+ from: "/keys/proxies/create-proxy",
},
- {
- "to": "/subnets/understanding-multiple-mech-subnets",
- "from": "/subnets/understanding-sub-subnets"
+ {
+ to: "/subnets/understanding-multiple-mech-subnets",
+ from: "/subnets/understanding-sub-subnets",
},
- {
+ {
to: "/liquidity-positions/",
from: "/liquidity-provider",
},
@@ -101,10 +101,6 @@ const config = {
from: "/subnets/register-validate-mine",
to: "/validators",
},
- {
- to: "/keys/schedule-coldkey-swap",
- from: "/subnets/schedule-coldkey-swap",
- },
{
to: "/sdk/bt-api-ref",
from: "/reference/bittensor-api-ref",
@@ -125,6 +121,10 @@ const config = {
from: "/questions-and-answers",
to: "/resources/questions-and-answers",
},
+ {
+ to: "/keys/coldkey-swap",
+ from: "/keys/schedule-coldkey-swap",
+ },
{
from: "/emissions",
to: "/learn/emissions",
diff --git a/sidebars.js b/sidebars.js
index f1fe7ce45..b71565c9b 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -97,7 +97,7 @@ const sidebars = {
],
},
"keys/multisig",
- "keys/schedule-coldkey-swap",
+ "keys/coldkey-swap",
],
},
@@ -213,7 +213,7 @@ const sidebars = {
"sdk/env-vars",
"sdk/bt-api-ref",
"sdk/subtensor-api",
- "sdk/mev-protection",
+ "sdk/mev-protection",
"getting-started/install-wallet-sdk",
"sdk/call",
"sdk/migration-guide",