@@ -46,6 +46,62 @@ interface IStaking {
4646 uint256 netuid
4747 ) external ;
4848
49+ /**
50+ * @dev Moves a subtensor stake `amount` associated with the `hotkey` to a different hotkey
51+ * `destination_hotkey`.
52+ *
53+ * This function allows external accounts and contracts to move staked TAO from one hotkey to another,
54+ * which effectively calls `move_stake` on the subtensor pallet with specified origin and destination
55+ * hotkeys as parameters being the hashed address mappings of H160 sender address to Substrate ss58
56+ * address as implemented in Frontier HashedAddressMapping:
57+ * https://github.com/polkadot-evm/frontier/blob/2e219e17a526125da003e64ef22ec037917083fa/frame/evm/src/lib.rs#L739
58+ *
59+ * @param origin_hotkey The origin hotkey public key (32 bytes).
60+ * @param destination_hotkey The destination hotkey public key (32 bytes).
61+ * @param origin_netuid The subnet to move stake from (uint256).
62+ * @param destination_netuid The subnet to move stake to (uint256).
63+ * @param amount The amount to move in rao.
64+ *
65+ * Requirements:
66+ * - `origin_hotkey` and `destination_hotkey` must be valid hotkeys registered on the network, ensuring
67+ * that the stake is correctly attributed.
68+ */
69+ function moveStake (
70+ bytes32 origin_hotkey ,
71+ bytes32 destination_hotkey ,
72+ uint256 origin_netuid ,
73+ uint256 destination_netuid ,
74+ uint256 amount
75+ ) external ;
76+
77+ /**
78+ * @dev Transfer a subtensor stake `amount` associated with the transaction signer to a different coldkey
79+ * `destination_coldkey`.
80+ *
81+ * This function allows external accounts and contracts to transfer staked TAO to another coldkey,
82+ * which effectively calls `transfer_stake` on the subtensor pallet with specified destination
83+ * coldkey as a parameter being the hashed address mapping of H160 sender address to Substrate ss58
84+ * address as implemented in Frontier HashedAddressMapping:
85+ * https://github.com/polkadot-evm/frontier/blob/2e219e17a526125da003e64ef22ec037917083fa/frame/evm/src/lib.rs#L739
86+ *
87+ * @param destination_coldkey The destination coldkey public key (32 bytes).
88+ * @param hotkey The hotkey public key (32 bytes).
89+ * @param origin_netuid The subnet to move stake from (uint256).
90+ * @param destination_netuid The subnet to move stake to (uint256).
91+ * @param amount The amount to move in rao.
92+ *
93+ * Requirements:
94+ * - `origin_hotkey` and `destination_hotkey` must be valid hotkeys registered on the network, ensuring
95+ * that the stake is correctly attributed.
96+ */
97+ function transferStake (
98+ bytes32 destination_coldkey ,
99+ bytes32 hotkey ,
100+ uint256 origin_netuid ,
101+ uint256 destination_netuid ,
102+ uint256 amount
103+ ) external ;
104+
49105 /**
50106 * @dev Returns the amount of RAO staked by the coldkey.
51107 *
0 commit comments