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

# Contract Architecture

> Find every application-facing Spot V2 contract surface and its state owner.

Kuru separates custody, market execution, market discovery, and signed-action execution. Read [Spot Trading](/introduction/spot) first if you are unfamiliar with the exchange's trading model.

```mermaid theme={null}
flowchart TD
    Owner[Owner wallet] -->|Deposits and permissions| Core[AccountCore]
    Bot[Trading signer] -->|Signed instruction| Relay[Relay]
    Relay -->|Sponsored transaction| Wallet[Delegated trading-wallet EOA]
    Wallet -->|Authorized action| Book[Market OrderBook]
    Direct[Direct contract caller] --> Book
    Book -->|Reserves and settlement| Core
    Core -->|Custody flow checks| Limiter[WithdrawalLimiter]
    Router[SpotRouter] -->|Verified market discovery| Book
```

AccountCore holds assets and account permissions. Each market has an OrderBook that owns matching and market-local order state. SpotRouter supplies the verified market registry. KuruTradingWallet executes signed actions in a delegated EOA's context.

This reference covers non-admin calls at the pinned contract revision. It omits deployment, token configuration, upgrades, fee administration, pause controls, and governance operations.

| Contract | Application responsibility |
| - | - |
| `AccountCore` | Identity, custody, subaccounts, delegated signers, builders, referrals, balances, reserves |
| `WithdrawalLimiter` | Global withdrawal capacity and per-token price validation |
| `OrderBook` | Orders, cancellation, replacement, swaps, passive liquidity, maker hooks, market views |
| `SpotRouter` | Verified-market and shared-dependency discovery |
| `KuruTradingWallet` | EIP-7702 signed immediate actions and stored triggers, TWAP schedules, and wallet-authored data |

<Warning>
  Send transactions to deployed proxies or the delegated trading-wallet EOA, never to implementation addresses. Confirm addresses on [Mainnet Deployments](/deployments/mainnet) or [Testnet Deployments](/deployments/testnet) for the network you selected.
</Warning>

## Authorization convention

Orderbook and account actions identify the economic account separately from `msg.sender`. The target account is a numeric ID. The caller must be its root owner or a root-wide signer with the required live permission.

## Native asset convention

The zero address represents native MON in AccountCore and market token configuration. Native deposits send exact `msg.value`; ERC-20 deposits use allowance and transferFrom.

Use [FAQ](/contracts/faq) for units, rounding, slots, confirmations, and failure handling.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.