# Smart Accounts & Permissions

Sail issues every user a **dedicated smart account**. These accounts are based on **ERC-7702**, the latest Ethereum account abstraction standard. Unlike legacy wallets or pooled contracts, ERC-7702 accounts are programmable from the ground up, allowing seamless automation without workarounds.

The benefits of this model:

* **Self-custody by design.** The user remains the ultimate owner of funds. No pooling, no intermediaries, no rehypothecation.
* **Programmable ownership.** Accounts can execute advanced logic like conditional moves, multi-step transactions, or time-bounded permissions.
* **Native compatibility.** Transactions flow like standard wallet calls, reducing complexity and gas costs compared to older models like ERC-4337.

On top of this account layer, Sail uses **Session Keys**. These are temporary cryptographic keys that delegate specific, bounded permissions to the agent. Instead of giving the agent blanket control, users grant narrow authority — for example:

* Reallocate a given asset within set parameters.
* Claim and deposit rewards.
* Perform actions only on approved protocols.

When the scope expires (time, balance, or conditions), the Session Key is revoked. This model allows agents to operate continuously without requiring the user’s signature every time, while keeping clear boundaries around what they can and cannot do.

The combination of **smart accounts** and **Session Keys** is what makes Sail’s autonomy possible: programmable ownership with flexible but safe delegation.


---

# 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.sail.money/learn/tech-stack/smart-accounts-and-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.
