# SDK Overview

The Autonomi SDKs center on `antd`, a local gateway daemon that exposes REST and gRPC APIs, plus language SDKs and local developer tooling around that daemon.

## Architecture

```
Your application
    |
    |  cURL / SDK / gRPC client
    v
+-----------------------------+
|            antd             |
|   REST :8082   gRPC :50051  |
+-----------------------------+
              |
              v
           ant-core
              |
              v
       Autonomi Network
```

The repo includes these developer-facing pieces:

| Component                                                                        | What it does                                             |
| -------------------------------------------------------------------------------- | -------------------------------------------------------- |
| `antd/`                                                                          | Runs the local REST and gRPC gateway daemon              |
| `antd-js/`, `antd-py/`, `antd-go/`, `antd-rust/`, and other language directories | Provide language-specific clients for the daemon         |
| `ant-dev/`                                                                       | Starts a local development environment and example flows |
| `antd-mcp/`                                                                      | Exposes the daemon surface to MCP-compatible AI tools    |

## Connection model

The daemon defaults are:

* REST: `http://localhost:8082`
* gRPC: `localhost:50051`

On startup, `antd` writes a `daemon.port` file with the resolved REST and gRPC ports. The default locations are:

| Platform | `daemon.port` location                                                       |
| -------- | ---------------------------------------------------------------------------- |
| Windows  | `%APPDATA%\ant\sdk\daemon.port`                                              |
| Linux    | `~/.local/share/ant/sdk/daemon.port` or `$XDG_DATA_HOME/ant/sdk/daemon.port` |
| macOS    | `~/Library/Application Support/ant/sdk/daemon.port`                          |

Some SDKs expose a helper that reads this file instead of hardcoding `8082`. Check the language-specific page when you need to know whether discovery is automatic or exposed through an explicit helper.

## Shared Surfaces

The `antd` REST surface groups into these areas:

| Group                | Routes                                                                                                       |
| -------------------- | ------------------------------------------------------------------------------------------------------------ |
| Health               | `/health`                                                                                                    |
| Data                 | `/v1/data/public`, `/v1/data/private`, `/v1/data/cost`                                                       |
| Chunks               | `/v1/chunks`, `/v1/chunks/prepare`, `/v1/chunks/finalize`                                                    |
| Files                | `/v1/files/upload/public`, `/v1/files/download/public`, `/v1/files/cost`                                     |
| Wallet               | `/v1/wallet/address`, `/v1/wallet/balance`, `/v1/wallet/approve`                                             |
| External signer flow | `/v1/chunks/prepare`, `/v1/chunks/finalize`, `/v1/data/prepare`, `/v1/upload/prepare`, `/v1/upload/finalize` |

The proto directory contains `health.proto`, `data.proto`, `chunks.proto`, `files.proto`, and `events.proto`.

## Language SDKs

The repo contains language SDK directories for Go, JavaScript/TypeScript, Python, C#, Kotlin, Swift, Ruby, PHP, Dart, Lua, Elixir, Zig, Rust, C++, and Java.

Do not assume perfect parity from this page alone. The SDKs expose the same daemon surface with language-specific constructors and, in some cases, transport differences. For example:

* JavaScript examples use `createClient()` from `antd`
* Python examples use `AntdClient()` from `antd`
* some SDK READMEs document both REST and gRPC, while others are REST-only today

Chunk writes still return `PutResult`-style shapes with `cost` plus an address. REST data writes return an address or `data_map` plus `chunks_stored` and `payment_mode_used`. File uploads return the richer shape with `storage_cost_atto`, `gas_cost_wei`, `chunks_stored`, and the actual `payment_mode_used`.

When you need authoritative pricing separate from the write itself, use the explicit cost endpoints such as `POST /v1/data/cost` and `POST /v1/files/cost`.

Use the binding-specific page when you need package names, constructors, or transport details.

## Upstream sources

* [ant-sdk](https://github.com/WithAutonomi/ant-sdk)

## Related pages

* [Build with the SDKs](/developers/sdk/install.md)
* [Start the Local Daemon](/developers/sdk/install/start-the-local-daemon.md)
* [Store Data on the Network](/developers/sdk/install/store-data-on-the-network.md)
* [Use the Autonomi MCP Server](/developers/mcp/use-the-autonomi-mcp-server.md)
* [MCP Server Reference](/developers/mcp/mcp-server-reference.md)
* [REST API](/developers/sdk/install/reference/rest-api.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.autonomi.com/developers/sdk/install/reference/overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
