> 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.md).

# Native Core API

The Native Core API is the direct integration surface for the on-chain CLOB. Clients submit signed business actions with `POST /trade` and read business state with `POST /info`. It serves market makers, trading bots, AI agents, and anyone integrating directly with Native Core.

Operational, recovery, and node-private interfaces are intentionally not part of this contract.

Native Core runs on **mainnet** (`https://api.native.org`), with a **testnet** (`https://api-test.native.org`) for integration and testing. See [environments](/native-dev/build-with-native/native-core/reference/api-access.md#environments) for base URLs and signing chain ids.

## Start here

New to Native Core? The guides take you from zero to a working integration — start with your first order over REST:

{% content-ref url="/pages/5JC27oaIFKtP8Lynpihz" %}
[Trade over REST](/native-dev/build-with-native/native-core/guides/trade-over-rest.md)
{% endcontent-ref %}

{% content-ref url="/pages/aST9Dbu8H4PwnSHtxHha" %}
[Guides](/native-dev/build-with-native/native-core/guides.md)
{% endcontent-ref %}

Prefer a client library? The official Python SDK wraps both endpoints, signs `/trade` for you, and ships an MCP server for AI agents:

{% content-ref url="/pages/kgvwDdX8D6Nato8t4FFS" %}
[Python SDK](/native-dev/build-with-native/native-core/python-sdk.md)
{% endcontent-ref %}

## Conventions

* `API_URL` examples use `https://api.native.org` (mainnet); for testnet and signing chain ids, see [environments](/native-dev/build-with-native/native-core/reference/api-access.md#environments).
* Hex values are `0x`-prefixed lowercase strings unless noted otherwise.
* Protocol numeric fields in signed actions are decimal strings; integer-valued fields (ids, nonces) also accept an unsigned JSON integer, while decimal price/quantity/amount fields must be strings.
* Business query responses carry `query_height` and `app_hash` when a query view is available — the execution height represented by the published read view.
* `POST /trade` is **synchronous**: it blocks for the execution outcome and returns `submission_status` (`accepted` / `rejected` / `timeout`) with a `tx_hash`. It reports that a write **landed**, not an order's fill state — read the outcome per the [Handle outcomes & timeouts](/native-dev/build-with-native/native-core/guides/handle-timeouts.md) playbook.

## Reference & concepts

The exhaustive contract — every endpoint, field, and error code — and the models it assumes:

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

{% content-ref url="/pages/dDPgRgNqokZSCB6vCaV0" %}
[Concepts](/native-dev/build-with-native/native-core/concepts.md)
{% endcontent-ref %}
