> For the complete documentation index, see [llms.txt](https://docs.atoma.fi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.atoma.fi/getting-started/system-overview.md).

# System Overview

Atoma has three layers: the vault contract on Arbitrum, Atoma's off-chain systems, and the accounts the vault holds on each trading venue.

```mermaid
flowchart TB
    D["Depositor wallet"]

    subgraph ONCHAIN["On-chain (Arbitrum)"]
        V["Vault contract (ERC-4626)<br/>idle USDC, shares, epochs, NAV, fees"]
    end

    subgraph ATOMA["Atoma, off-chain"]
        W["Trading wallet"]
        E["Trading engine"]
        N["NAV service"]
        P["Points ledger"]
    end

    subgraph VENUES["Perpetual venues"]
        A["Venue accounts<br/>Lighter, Lighter Robinhood, trade[XYZ], Extended, NADO, Ondo"]
    end

    D -->|"deposit USDC, receive shares"| V
    V -->|"withdrawal request, then claim USDC"| D
    V -->|"capital to pre-approved address"| W
    W -->|"capital returned"| V
    W <-->|"margin in and out"| A
    E -->|"orders"| A
    A -->|"account equity"| N
    N -->|"hourly NAV update, bounded"| V
    A -->|"venue points"| P
    P -->|"allocation per depositor"| D
```

## What runs where

| Layer          | What it does                                                                                                                                                                                     |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Vault contract | Holds idle USDC, mints and burns shares, queues and settles withdrawal epochs, records NAV, charges fees. Every deposit, request, settlement, claim, fee and NAV update is a transaction.        |
| Trading wallet | Moves capital between the vault contract and the venue accounts. USDC can leave the contract only to addresses approved in advance, and a new address becomes usable after 24 hours.             |
| Trading engine | Reads venue order books and places the orders of each strategy. Runs off-chain, with venue API keys.                                                                                             |
| NAV service    | Reads the equity of every venue account, adds idle USDC in the contract, subtracts settled withdrawals not yet claimed, and publishes the result on-chain every hour within the contract limits. |
| Points ledger  | Records the points each venue credits to the vault, allocates them to depositors by time-weighted shares, and shows them in the app.                                                             |
| Venue accounts | Hold the trading capital and the open positions. Operated by Atoma; there is no third-party custodian.                                                                                           |

## What this means for a depositor

* Shares, NAV history, withdrawal queue and fees can be read from the contract at any time.
* The positions themselves live on the venues, not on-chain, so the vault's value between NAV updates is what Atoma last published.
* Capital in use sits in accounts Atoma operates. See [Protocol Protections](/security/protections.md) and [Risks](/security/risks.md).
