# Modular Permissions

<figure><img src="/files/njmVG71iGMUTRXW24Gtu" alt=""><figcaption></figcaption></figure>

## Get things done

Blessnet is a chain for **doing** things, with an emphasis on doing things cheaply, conveniently and confidently. Abstracting your interactions away from Value Bearing Chains plays a big part in this. Blessnet Modular Permissions further enhances this architecture.

Delegating certain permissions from one address to another address is not a new concept. The purpose is to narrowly scope what another address can do on behalf of your ‘main’ address. This allows you to interact using this other, less valuable address, but only in the ways you define.

In all current implementations of this you need to have this second address before you begin. For example, you have your main vault address and a hot wallet in a browser extension. Delegating from your vault to your hot wallet is straightforward, but you still have to have your hot wallet ready to go.

Blessnet reimagines this process as something as intuitive as using a game controller. In Blessnet your main address is the console, and you can create multiple controllers for that console, each with a set of permissions.

For example, let’s say we have our vault address, which we will call vault.eth. This address, vault.eth, is now our Modular Permissions console. We then create a controller and assign this permission to vote on behalf of vault.eth.

The implementation of this controller is a smart wallet, with a new private key and a new public address. At the same time Blessnet will prompt you for a transaction that confirms the delegation of voting permissions from your console (vault.eth) to your new controller.

You can now use your new controller to take part in votes on Blessnet on behalf of vault.eth. You never need use vault.eth for these votes, keeping it and the assets it holds safe. And as the controller is a smart wallet, you can submit your transaction directly from the app. If for some reason your controller is compromised you can simply detach it from your console, and if needed create a new controller.

The diagram below summarises this example.

<figure><img src="/files/PAdDp6rttGxyho5YiM8g" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bless.net/blessnet-apps/modular-permissions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
