Skip to Content

Pure proxy accounts on Avail

💡

We recommend going through the previous page on proxy accounts before proceeding with this guide.

The previous guide went over assigning existing accounts as proxies for your own account. The following guide will teach you how to set up proxied accounts that are not owned by anybody, but can still be used to sign transactions on using accounts that we own, which act as proxies for these keyless proxied accounts.

The guide will have two parts:

  • Creating a pure proxy for a single account.
  • Creating a multisig committee with the pure proxy.

Create a pure proxy for a single account

The proxy types remain the same for a pure proxy, you can go over them again in our docs here

Go to the Explorer

Head on over to the accounts section of the Avail explorer and connect your main account. In my case, I start out with the highlighted account.


original account with funds

Set up the pure proxy call

  1. Go to the Extrinsics section of the explorer.
  2. Select the proxy pallet.
  3. Select the createPure extrinsic.
  4. Fill in the values of the parameters according to your needs. Use a positive integer for the index field that you haven’t used before.

pure proxy call

Submit the transaction

  1. Click on the ‘Submit Transaction’ button.
  2. Review the transaction details and submit it by clicking on the ‘Sign and Submit’ button.

pure proxy call

Retrieve the pure proxy address

The address of the pure proxy generated by the createPure extrinsic is returned in the event logs of the block that your transaction was included in. We need to retrieve this address from the logs to be able to use the pure proxy.
There are two ways to do this:

  1. You will need the block number or block hash of the block that your transaction was included in.
  2. Go to the network explorer page and search for your block.
  3. Scroll down to look for the event logs related to the proxy.createPure extrinsic.
  4. Copy the address of the pure proxy from the event logs.

pure proxy address

Add the pure proxy to your address book

  1. Go to the accounts page of the explorer.
  2. Click on the ‘Proxied’ button.
  3. Fill the pop-up with the address and give it a name of your choice.
  4. Click on the ‘Add’ button to save the address.

pure proxy address

Verify that the pure proxy was set up correctly

  1. Go to the accounts page of the explorer.
  2. Click on the ‘Proxied’ button.

pure proxy address

  1. Check that the pure proxy address is listed under the ‘Proxied’ section, and that your original account is set up as an any proxy for the pure proxy.

pure proxy address

WHAT DID WE JUST DO?

  1. We started with an account that we own, in my case ‘Original Account’.
  2. We have turned that original account into an any proxy for this new account, in my case ‘Pure Proxy 1’.
  3. ‘Pure Proxy 1’ thus acts as a proxied account and we can use it to sign transactions on-chain, even though we don’t have access to it’s private key.

Set up a multisig committee with the pure proxy

In this section, we will expand over what we learned till now to set up a multisig committee that will be able to securely sign transactions on-chain through a multisig proxy that will be able to sign transactions on behalf of the keyless proxied account we just derived. Here is how it will work:

  1. Any proposal or transaction that needs to be executed by the committee will be signed on-chain by the proxied account.
  2. The proxied account in-turn will be controlled by a multisig account that will act as it’s proxy.
  3. This multisig will have a threshold of 2 out of 3 members.

The structure will look like this:


multisig committee structure

Create a multisig with the signer addresses

  1. If you need instructions to set up a multisig wallet, please go through this page in our docs.
  2. Here is what my multisig looks like, you might need to change the number of signers or the threshold according to your needs.

multisig wallet

TIP
If your multisig needs to have signatory addresses that are not owned by you, add them to your address book before setting up the multisig.

Set up the multisig as a proxy for the pure proxy

👉 Make sure the pure proxy has some funds to pay for the transaction fees before proceeding.

  1. Go to the accounts page of the explorer.
  2. Click on the ‘Manage proxies’ button next to the pure proxy address.

pure proxy address

  1. Click on the ‘Add proxy’ button and select your multisig address from the dropdown menu as the proxy.

pure proxy address

  1. Submit the transaction by clicking on the ‘Submit Transaction’ button.
  2. Once the transaction is successful, you should see that the pure proxy account now has two proxies.

pure proxy address

Remove the original account as a proxy for the pure proxy

⚠️

IMPORTANT

  1. Take care to maintain at least one proxy for the pure proxy account at any given time.
  2. If you remove the last proxy for the pure proxy, you will permanently lose control over the pure proxy, with no way to recover it.
  3. The correct way to rotate proxies for your pure proxy is to first add a new proxy, and then remove the old proxy.
  1. Go back to the ‘manage proxies’ UI for the pure proxy, and click on the ‘X’ button next to the original account.
  2. Submit the transaction by clicking on the ‘Submit Transaction’ button.

pure proxy address

  1. Once the transaction is successful, you should see that the pure proxy account now has only one proxy, the multisig.

pure proxy address

Final notes

Hurray! You have successfully set up a multisig committee with the pure proxy.

  1. In this setup, you will never need to rotate the pure proxy account, since nobody has it’s private key, and thus it can’t be compromised.
  2. You can easily rotate the controlling multisig by adding another multisig as a proxy for the pure proxy, and then removing the old multisig as a proxy.
Last updated on