> ## Documentation Index
> Fetch the complete documentation index at: https://docs.useotto.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Your Wallet, Your Responsibility

> Otto AI never holds the keys to your own connected wallet — securing that wallet is yours alone. Some Otto surfaces do operate wallets on your behalf; this page maps which is which.

<Note>
  **Scope.** The Key Points below describe **your own connected wallet** — the MetaMask, hardware, or other Web3 wallet you sign in with. They are not a claim about every surface. Otto also operates wallets on your behalf on some surfaces (the Hyperliquid MPC vault, Otto X on X Layer), where an Otto-managed key can sign. [Custody Models Across Otto](#custody-models-across-otto) below is the authoritative map — read it before assuming a surface is self-custodial.
</Note>

**Key Points — your connected wallet:**

* **You Control Your Keys:** Otto AI **never** has access to the private keys or seed phrase of your connected wallet. You maintain full custody and control of that wallet.
* **Sole Responsibility:** You are solely responsible for safeguarding your:
  * Private Keys
  * Seed Phrases (Recovery Phrases)
  * Wallet Passwords
  * Any other credentials related to your wallet.
* **Secure Practices:** Implement best practices for wallet security:
  * Store your seed phrase securely offline. Never share it.
  * Use strong, unique passwords.
  * Beware of phishing scams and malicious websites.
  * Consider using a hardware wallet for significant amounts.
  * Keep your wallet software and browser updated.

Losing access to your connected wallet means losing access to the funds it controls. Otto cannot recover its keys or assets if it is compromised.

## Custody Models Across Otto

Otto AI surfaces use different ownership and delegated-authority models depending on the product. Knowing which state you're using matters, because sole ownership and runtime authority answer different questions.

| Surface                                                              | Custody model                        | Who holds the keys                                                                                                                                                                          | Can Otto withdraw?                                                                                                                                                                                                       |
| -------------------------------------------------------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Current execution rail** (the existing `/app` trading Safe)        | **Agent-custodial**                  | An Otto-managed agent key signs your trades                                                                                                                                                 | The agent key can sign — this is the rail live execution runs on today                                                                                                                                                   |
| **Otto Safe** (Safe7579 — *rolling out, gated early access*)         | **User-owned; delegated when armed** | **You** are the sole owner. After activation, Otto holds two named runtime keys under two separate threshold-1 sessions — one key each, no key in common.                                   | **While disarmed: no session authority. While armed: yes** — the trading key may move funds or change Safe authority until revocation; the billing key can only collect bounded USDC payments to Otto's billing address. |
| **Otto X** (X Layer agentic sub-wallet)                              | **TEE-custodial**                    | A key generated and held inside OKX's Trusted Execution Environment (TEE); Otto holds an API credential that authorizes signing                                                             | Within the TEE only — Otto (and OKX) cannot export the key, but the sub-wallet signs autonomously. You sweep funds out any time via the escape hatch.                                                                    |
| **Hyperliquid vault** (the MPC account that holds your perps margin) | **Provider-hosted MPC**              | An MPC key created in Otto's [Dynamic](https://www.dynamic.xyz) environment. Otto operates it. The key material is exportable in principle — Otto has not yet shipped a user-facing export. | Yes — Otto's runtime signs your trades and your withdrawals. Withdrawals are pinned server-side to your own Safe and cannot be redirected elsewhere.                                                                     |

**Otto Safe (user-owned) — rolling out.** Otto is converging onto a [Safe smart account your wallet solely owns](/introduction/safe7579-architecture): Otto provides the interface and pays deploy gas, but holds no owner key. Before activation, Otto has no session authority. **ARM OTTO** installs two permissions in one signature, with no key in common: an unrestricted, non-expiring **trading** permission whose only operator is the named trading key, and a bounded **billing** permission whose only operator is a different key. Only the trading key can move funds freely. Their lifetimes differ: the trading permission never expires and ends **only when you revoke it**, while the billing permission ends at **its own expiry or at revocation, whichever comes first**. The model is rolling out in gated early access and is not yet the default. During the migration, live trade execution still runs on Otto's existing agent-custodial rail (above).

**Otto X (TEE-custodial).** The [Otto X](/acp-swarm/otto-x) agentic wallet on X Layer trades self-custody for fully autonomous execution: the sub-wallet's key is sealed inside OKX's TEE so the agent can act without you signing each step. Neither Otto nor OKX staff can export that key, there's no seed phrase, and you can sweep all funds to any address at any time via the `POST /auto-withdraw` escape hatch. Use Otto X when you want hands-off agent execution.

**Hyperliquid vault (provider-hosted MPC).** Hyperliquid needs a plain EOA signature, which a smart-contract Safe cannot produce, so your perps margin sits in a dedicated MPC wallet created through Otto's Dynamic environment. Otto's runtime signs your trades and your withdrawals. Withdrawals are pinned server-side to your own Safe, so a request cannot redirect your money to someone else — but Otto operates the account, and today that is the whole picture. **Treat funds on Hyperliquid as funds Otto can move on your behalf.**

**Export your Hyperliquid vault key** is the planned independence valve, and it is worth understanding precisely what it will and will not do.

* **What it gives you:** your own copy of the vault's private key, letting you drive the Hyperliquid account directly — cancel, close, withdraw anywhere — with any wallet or client.
* **What it does *not* give you: sole control.** Exporting **duplicates** signing authority; it does not revoke Otto's. After an export, both you and Otto can sign for that account. What ends the shared exposure is **moving the funds out** to an address Otto does not operate.

<Warning>
  **This export is not yet available to users.** Otto has not shipped an authenticated export surface, so there is currently no self-serve way to obtain your vault key. Until it ships, exiting Hyperliquid means asking Otto to close and withdraw for you — which depends on Otto's service being up. Do not plan around a valve you cannot pull yet.

  When it does ship, the export will run through Otto and its wallet provider, which makes it something to use **in advance** rather than a rescue during an outage. And once you hold a private key, whoever holds it controls that account — store it like any other seed phrase.
</Warning>

<Note>
  Otto's Trade Execution currently runs on the **agent-custodial** rail. The **user-owned Safe7579** model is the direction Otto is converging onto (rolling out in gated early access), with broad runtime authority only after explicit activation and until revocation. The **TEE-custodial** model is specific to Otto X on X Layer.
</Note>
