---
title: "What a wallet holds"
method: POST
path: "/api/v1/deposits/balances"
tags: ["Deposits"]
---

# What a wallet holds

`POST /api/v1/deposits/balances`

## Request

- Base URL: `https://spoofy.social`
- URL: `https://spoofy.social/api/v1/deposits/balances`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `better-auth.session_token`

Before paying from a wallet: what `address` holds of every coin taken here, on every network of its kind that is switched on (or only `network`), its gas coin there, and what a transfer of each coin costs (`fee`, in the gas coin, with room to spare; on Solana also the rent of a receiving token account that is not there yet, and the wallet’s own reserve). A transfer of more than `amount`, or without `fee` in the gas coin, would fail. `chainSymbol` is the contract’s own symbol, the one a wallet lists the coin under (EIP-747). Public chain data read for the address given, from public nodes; nothing is stored. A network whose node did not answer has `ok: false`. Answers are kept 20 s (`fresh: true` reads again after 5 s); 20 asks a minute per account.

## Request body

- object
  - `address` string, required: The wallet: 0x… (EVM) or a Solana address.
  - `network` string: Only this network, e.g. robinhood.
  - `fresh` boolean: Read again (when the last read is over 5 s old).

## Response `200`

The wallet’s coins and gas coin on each network.

- object
  - `address` string
  - `family` 'evm' | 'solana'
  - `networks` object[]
    - `key` string
    - `name` string
    - `ok` boolean: false: its node did not answer just now; nothing is known.
    - `gas` object, nullable
      - `symbol` string
      - `decimals` integer
      - `raw` string: Smallest units.
      - `amount` string
    - `coins` object[]
      - `method` string
      - `symbol` string
      - `chainSymbol` string, nullable
      - `decimals` integer
      - `raw` string: What the wallet holds, in the coin’s smallest units.
      - `amount` string
      - `feeRaw` string: What sending it costs, in the gas coin’s smallest units.
      - `fee` string
    - `at` string, date-time

## Other responses

- `400`: The request is not valid. `error.message` says why.
- `401`: No valid API key or session.
- `413`: The request body is too big (uploads up to 4 MB, everything else up to 64 KB).
- `429`: Slow down: too many requests in a short time. Wait `Retry-After` seconds and carry on.

## Changes

- **2026-10-20** `0619b5c8adae`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/spoofy/apis/spoofy-api/changes/api/v1/deposits/balances/post.md)

---

[API](https://skmtc.dev/spoofy/apis/spoofy-api.md) · [All operations](https://skmtc.dev/spoofy/apis/spoofy-api/llms.txt) · [OpenAPI document](https://skmtc.dev/spoofy/apis/spoofy-api/revisions/0619b5c8adae?raw)
