> For the complete documentation index, see [llms.txt](https://docs.native.org/native-dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.native.org/native-dev/build-with-native/native-core/concepts/account-types.md).

# Account Types

Native Core has two kinds of trading account. Every owner is exactly one of them, and each has a different read surface and a different risk gate at order time.

|                      | **Spot account** (balance)                                        | **Credit account**                                               |
| -------------------- | ----------------------------------------------------------------- | ---------------------------------------------------------------- |
| Provisioning         | Created automatically on **first deposit** — the default account. | **Provisioned by the protocol**; not self-service.               |
| Collateral           | Per-asset `available` balance.                                    | A USD credit line.                                               |
| Short positions      | Not supported — trading is limited to held balance.               | Supported — positions are signed (`actual_qty` may be negative). |
| Order-time risk gate | Sufficient `available` balance.                                   | `available_usd_atoms >= 0` against the credit line.              |
| State                | `active` / `frozen`                                               | `active` / `frozen`                                              |

A `frozen` account may only cancel — new orders and modifies are rejected. Most integrations use a **spot account**; without a protocol-granted credit line, an owner is a spot account and the credit-account reads below report no credit position.

## Reading an account

Point every `POST /info` account query at the **owner** address (not the API-wallet address). Which query you use depends on the account:

**Spot account**

* [`userBalances`](/native-dev/build-with-native/native-core/reference/post-info.md#userbalances) — `available` / `locked` per asset
* [`deposits`](/native-dev/build-with-native/native-core/reference/post-info.md#deposits) / [`withdraws`](/native-dev/build-with-native/native-core/reference/post-info.md#withdraws) — funding history
* [`accountStatus`](/native-dev/build-with-native/native-core/reference/post-info.md#accountstatus) — whether the account exists and its freeze state

**Credit account**

* [`spotCreditAccount`](/native-dev/build-with-native/native-core/reference/post-info.md#spotcreditaccount) — credit line and status. The fields are `credit_usd_atoms`, `available_usd_atoms`, `last_known_available_usd_atoms`, `status`, `authorized`, `oracle_status`, and `credit_trading_whitelisted_market_ids` — all USD figures are in `usd_atoms`.
* [`spotCreditPositions`](/native-dev/build-with-native/native-core/reference/post-info.md#spotcreditpositions) — signed long/short positions per asset

The credit account's on-chain name is a *spot-credit account*, which is why its query types are `spotCreditAccount` and `spotCreditPositions`.

## Trading and moving between them

`order`, `cancel`, and `modify` are the **same** actions for both account types — Native Core applies balance gating or credit gating automatically from the signer's account kind. There is no separate order endpoint per account type.

Two public [`POST /trade`](/native-dev/build-with-native/native-core/reference/post-trade.md) actions bridge the two:

* [`settle`](/native-dev/build-with-native/native-core/reference/post-trade.md#settle) — a credit account moves a long position out into a spot account's `available` balance.
* [`repay`](/native-dev/build-with-native/native-core/reference/post-trade.md#repay) — a spot account spends its `available` balance to reduce a credit account's short.

{% content-ref url="/pages/ymw4xOGLPOW1dX7aL3tP" %}
[POST /info](/native-dev/build-with-native/native-core/reference/post-info.md)
{% endcontent-ref %}

{% content-ref url="/pages/2f1iTLbJG8HD9gz4V3yT" %}
[POST /trade](/native-dev/build-with-native/native-core/reference/post-trade.md)
{% endcontent-ref %}
