> For the complete documentation index, see [llms.txt](https://docs.ambient.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ambient.finance/concepts/account-abstraction.md).

# Account Abstraction

All operations in the Ambient dex can be undertaken with *account abstraction*, where a user signs an operation off-chain and a third party relayer executes it on their behalf. Relayers can be made in any arbitrary token from a user's balance. There are multiple reasons why a user would want to do this:

* Avoid the inconvenience of managing transactions
* Pay an exact cost with easier to manage tokens (like USDC) instead of worrying about calculating gas fees.
* Save on execution costs by having the relayer bundle their actions with other similar actions to amortize the gas cost.
* Make a pre-signed transaction and save it for later&#x20;

There are two types of account abstraction, one is *immediate* and the other is *conditional*. Immediate account abstraction occurs when a user signs an intention and sends it to a relayer with the hope of imminent and unconditional execution.

Conditional account abstraction is when a user signs a transaction but prefers for it to be executed only after some condition is met, such as a fixed time delay or a certain market condition such as a stop loss. All intentions in Ambient can be gated with a check to an arbitrary oracle contract with arbitrary calldata. E.g. to implement a stop loss, the intention can be signed with a call to an oracle that checks the Chainlink price has exceeded a given threshold.

Intentions in Ambient use a multi-dimensional nonce system, so unlike Ethereum transactions they can be executed with arbitrary dependence and a user doesn't have to wait for one to finish before the next executes.&#x20;
