# Proxy Accounts

To explain what proxy accounts are, you can think of having two types of wallets: *Cold Wallet* holds all your money, and the other, *Hot Wallet*, has just enough funds for everyday needs and is more active. When you set up your *Hot Wallet* as a proxy, the *Cold Wallet* allows the *Hot Wallet* to handle some tasks for it, like paying fees or making certain decisions, without giving direct access to the main funds.

Proxy accounts supersede controller accounts that were used in Staking.&#x20;

Proxy accounts are available starting with the Aleph Node 13.0 release.

Proxies can be created using azero.dev wallet, and other wallets like Nova Wallet.&#x20;

Proxies *cannot* be created from the Aleph Zero Dashboard wallet.

## When to use Proxy accounts

Proxy accounts are particularly useful for those who want to separate their long-term holdings (often kept in a hardware or cold wallet, with the seed phase stored securely somewhere offline), from the day-to-day operational activities like transactions, voting, or staking. Users with significant assets might prefer this setup to minimize the risk of unauthorized access to their main funds, delegating transactional responsibilities to a separate account with limited access.\
\
However, there is one major drawback to consider - complexity. Managing multiple accounts adds overhead in keeping track of your keys, and understanding the responsibilities and limitations of each account long term. Additionally, if the proxy account is compromised, there might be a risk to the funds it manages, depending on the level of permissions it was granted.

An additional, though rare, use case for Proxy accounts is to delegate some responsibility for managing your assets to other people. An example of this could be a Validator that has a dedicated person managing their nodes and validator setup, having "Staking" access to validator funds.&#x20;

## Creating proxy

To create a proxy account, let's assume a situation in which `Proxied` account is a cold wallet, and `Proxy` is a hot wallet. We are going to add a proxy for `Proxied` account. `Proxied` account has all the funds, whereas `Proxy` account has just enough tokens for transaction fees.

<figure><img src="https://1927958252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjxGnEsASyxizmuYQHzry%2Fuploads%2F0CdOQEfLWngSeUFAFh75%2Fimage.png?alt=media&#x26;token=ad9f5b3e-6fe1-4829-8d56-0fbb45ef2624" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1927958252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjxGnEsASyxizmuYQHzry%2Fuploads%2Fr61skeefr1fMgCIOtfnB%2Fimage.png?alt=media&#x26;token=d5d110ea-a558-4cc0-8efa-d8e1d7b78af8" alt=""><figcaption></figcaption></figure>

* Open `Accounts/Accounts` page in azero.dev wallet
* in `Proxied` account, click three dots right to the account name, and choose `Add proxy`

<figure><img src="https://1927958252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjxGnEsASyxizmuYQHzry%2Fuploads%2FmkJwphG5TFtc8mNhnnVn%2Fimage.png?alt=media&#x26;token=58d5ac9d-cc78-4bf2-a38d-b1514d1411da" alt=""><figcaption></figcaption></figure>

* Click `Add proxy` and select `Proxy` account

<figure><img src="https://1927958252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjxGnEsASyxizmuYQHzry%2Fuploads%2FzuvDV0OVCuuZjNF5qIJ3%2Fimage.png?alt=media&#x26;token=75023c62-a88a-4dc0-8857-75b3baf099fa" alt=""><figcaption></figcaption></figure>

`Type` can be any of&#x20;

* `Any`  - proxy can call any transaction that is available on the Aleph Zero chain,
* `Non Transfer`  - like `Any` but excluding token transfers, e.g. `vesting.vestedTransfer` call
* `Staking` - all transactions related to Staking or Nomination Pools

Note `reserved balance` shows the amount of AZERO tokens that will be reserved from `Proxied`  's free balance. In the above example, it is less than 1 AZERO.

* Sign and submit the transaction. This one needs to be signed by`Proxied`, ie the cold wallet
* You can see the blue icon next to `Proxied` account name. If you hover over it, you can click `Manage proxies` to add/remove proxies for `Proxied` account

<figure><img src="https://1927958252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjxGnEsASyxizmuYQHzry%2Fuploads%2FmfXNFMyr0rMPD0svOChE%2Fimage.png?alt=media&#x26;token=2ea2e1f1-b372-438c-8082-f5202187ff24" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1927958252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjxGnEsASyxizmuYQHzry%2Fuploads%2FGMN7l2urVviM6jsUEgoT%2Fimage.png?alt=media&#x26;token=27153eaf-4bdb-402e-8fff-3b660ab31002" alt=""><figcaption></figcaption></figure>

## Removing all proxy accounts

* Go to `Accounts/Accounts` page in azero.dev, find proxied account, and hover over the blue icon -> `Manage proxies`&#x20;

<figure><img src="https://1927958252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjxGnEsASyxizmuYQHzry%2Fuploads%2FWeVCLauSC8qZKFcconQu%2Fimage.png?alt=media&#x26;token=158b8b0c-a578-445a-a9c3-4b90005e5a22" alt=""><figcaption></figcaption></figure>

* Click `Clear all`
* Unselect `use a proxy for this call`

<figure><img src="https://1927958252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjxGnEsASyxizmuYQHzry%2Fuploads%2Fk16VBIWafmB5TwvODb3I%2Fimage.png?alt=media&#x26;token=ea989198-d934-4279-8de5-21c972e92b35" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1927958252-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjxGnEsASyxizmuYQHzry%2Fuploads%2FevZAUDRDghI5r0hlrQ8g%2Fimage.png?alt=media&#x26;token=7a6bd0e4-c837-4b8c-a914-15e3b4a3e3de" alt=""><figcaption></figcaption></figure>

* a sign and submit the transaction. This one needs to be signed by a proxied account, ie cold wallet.
