> For the complete documentation index, see [llms.txt](https://hinkal-team.gitbook.io/hinkal/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hinkal-team.gitbook.io/hinkal/hinkal-mcp/balances-and-flows.md).

# Balances & Flows

Hinkal moves tokens between two balances the user holds on each chain: the **public** balance in their own wallet, and a **private (shielded)** balance inside Hinkal. All amounts are human decimal units (e.g. `1.5`), never wei.

| Flow                                | Tool                | Execution                               |
| ----------------------------------- | ------------------- | --------------------------------------- |
| Public → Private                    | `deposit`           | server signs & broadcasts               |
| Public → Private (for another user) | `deposit_for_other` | same as `deposit`                       |
| Private → Public                    | `withdraw`          | relayer, server-side                    |
| Private → Private                   | `private_transfer`  | relayer, server-side                    |
| Public → Public (no on-chain link)  | `private_send`      | server-side; payouts run asynchronously |

Every fund-moving tool is signed and broadcast **server-side** by Hinkal — nothing for you to sign. Deposits return `{ txHash, explorerUrl, executed: true }`. Withdrawals, transfers, and sends execute through a Hinkal relayer and return a transaction hash; `private_send` payouts complete asynchronously (poll with `check_private_send_status`).&#x20;
