Skip to content

How to delete or kill a pure proxy

Thibaut Sardan edited this page Sep 16, 2024 · 1 revision

⚠️ Deleting a pure proxy is irreversible. You cannot retrieve access to the pure proxy once it has been killed.

If you are 100% certain about what you are doing and fully understand the consequences of deleting a pure proxy, read on. Otherwise, feel free to ask for more information by opening an issue in this repo.

Pure proxies are non-deterministic. If you create a pure proxy with an account and later kill this pure, subsequently calling proxy.createPure will not result in the creation and control of the same pure. Therefore, it is strongly advised to not kill pure proxies. If you still want to do it, please make sure that:

  • the pure doesn't hold any more asset (DOT, or any other asset)
  • you do not have any identity set. Remove it before killing the pure
  • you do not hold any NFT.

Once the pure proxy is killed, you will not be able to perform any action with it.

How to kill a pure proxy

Only the pure proxy itself is allowed to make the call proxy.killPure to delete itself. In Multix, you can call any arbitrary extrinsic with a pure proxy, including proxy.killPure, to delete the link between a pure proxy and every one of its controllers. Here is an explanation of the parameters of this function:

Use a block explorer to find the following information:
1. The account you created the pure proxy from. It could be the multisig behind the pure, or another account. 2. and 3. The block height it was created at and the extrinsic index in the block. On most block explorers, you will see the extrinsic ID listed as something along the lines of "xxxxxxx-y". xxxxxxx is the block height (block number), and y is the extrinsic index. In the image below, the block number is 19717955, and the extrinsic index is 2.
4. The type of proxy
5. The index (it is 0 if it was created with Multix)
Selection_1236

Now you call with the pure proxy, the "Manual extrinsic": proxy.killPure, and the following parameters:

  • Spawner: the account that originally created the pure, found in 1.
  • Proxy type found in 4.
  • Index found in 5.
  • Block number found in 2.
  • Extrinsic index found in 3.