---
title: "Address balances endpoint"
description: "Balance lookup — present as a route, not available in this release."
---

> Documentation Index
> Fetch the complete documentation index at: https://tee.hypetrade.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Address balances endpoint

## `GET /v1/addresses/{publicKey}/balances`

**Auth: workspace token. Scope: `read`.**

### Not available in this release

This route returns a stable **`501`** with code `not_implemented`. wative-core
2.4.4 implements no balance-refresh path, and a capability guard answers before
the handler can run.

```json
{
  "error": {
"code": "not_implemented",
"message": "Balance lookup is not available in this release.",
"status": 501,
"requestId": "…"
  }
}
```

> **Why it exists at all**
>
> The route is published so integrations can bind to its final shape now and get
> a predictable, documented refusal rather than a 404 that might mean anything.
> Treat `501` here as "not yet", not "wrong URL".

### Getting balances today

Read balances from your own RPC endpoint, using the addresses returned by
[`GET /v1/accounts/{slug}/wallets`](/api/accounts/). Each address carries the
`network` and `chainId` you need to pick the right endpoint.

## Errors

The `501` is the route's answer, but it is not the first one. Authentication
and scope are checked before the capability is, so a client still needs to
handle both:

| Status | Code | When |
|---|---|---|
| 401 | `session_expired` | Missing, invalid, or expired token — checked first |
| 403 | `scope_denied` | The token lacks `read` |
| 501 | `not_implemented` | Everything else, always |

No `404` is possible: the handler never runs, so an address that does not exist
returns the same `501` as one that does.

## Related

- [Accounts endpoints](/api/accounts/) — where addresses come from
- [Networks and RPC](/concepts/networks-and-rpc/) — your own endpoints

Source: https://tee.hypetrade.xyz/api/addresses/index.mdx
