# Advanced Intent Solver

{% hint style="success" %}
TL;DR: With session keys, you can declare certain types of intents or actions to a solver to let it perform action for you, while still able to control what this bot can do. This enables infinite possibilities.
{% endhint %}

Recently, the spotlight is firmly fixed on *Intent* in the Ethereum community. [Paradigm ](https://www.paradigm.xyz/2023/06/intents)has masterfully distilled *Intent* into an easily grasped concept:&#x20;

> An intent is signed a set of declarative constraints which allow a user to outsource transaction creation to a third party without relinquishing full control to the transacting party.

Previously, executing transactions was a manual ordeal, involving meticulous steps—asset bridging, quotes comparison, friction-filled paths, etc. — just to seek optimal efficiency.

Enter *Intents*—a game-changer. Users now only need to declare their desires.&#x20;

"Purchase ETH with USDT if ETH dips below $1,500" becomes a reality. No longer must users labor over details; they simply place their order, and *Intents* orchestrate the magic and do all the calculations.

Intents are extremely helpful in both traditional finance and crypto fields. An intent is a goal that you declare, and an intent solver is an external party that tries to fulfill such goals. Currently, all solvers are implemented at a custodial level, meaning that you have to trust the software, such as a bot, and give them full control of your funds in order for them to execute.

\
In Versa, we have implemented plugins to let you delegate certain kinds of action, under a certain kind of restriction, during a certain range of time, to a certain party at a self-custodial level. We call this a [**session**](https://versawallet.gitbook.io/versa-docs/technical/session-key-powered-intents)**.**&#x20;

Using sessions, you can outsource the complexities of manually performing interactions/trades simply by declaring your goals to an external party, or what we call a program. With session, you can now have intent solvers doing any kind of thing for you: auto-invest in a token, pay your employees recurrently, or have a trading account to let the bot trade for you.

**We strongly encourage you to check out our session key design. We think a combination of solvers and session keys can unlock a vast range of users, and we are happy to be in touch if you are looking to build a plugin!**

{% content-ref url="advanced-intent-solver/auto-investing" %}
[auto-investing](https://versawallet.gitbook.io/versa-docs/functions-and-plugins/advanced-intent-solver/auto-investing)
{% endcontent-ref %}

{% content-ref url="advanced-intent-solver/automatic-recurring-transfer" %}
[automatic-recurring-transfer](https://versawallet.gitbook.io/versa-docs/functions-and-plugins/advanced-intent-solver/automatic-recurring-transfer)
{% endcontent-ref %}

{% content-ref url="advanced-intent-solver/delegated-trading-sub-accounts" %}
[delegated-trading-sub-accounts](https://versawallet.gitbook.io/versa-docs/functions-and-plugins/advanced-intent-solver/delegated-trading-sub-accounts)
{% endcontent-ref %}


---

# 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://versawallet.gitbook.io/versa-docs/functions-and-plugins/advanced-intent-solver.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.
