# Overview

This section is for engineers building on, integrating with, or operating TONado Cash.

## What's here

| Page                                                      | Purpose                                                               |
| --------------------------------------------------------- | --------------------------------------------------------------------- |
| [Install and build](/for-developers/install-and-build.md) | One-time setup: tools, dependencies, building everything from source. |
| [CLI reference](/for-developers/cli-reference.md)         | The `tonado` CLI: full command listing.                               |
| [Core SDK](/for-developers/sdk-core.md)                   | `@tonado/core`: the shared TypeScript SDK.                            |
| [Running a relayer](/for-developers/running-a-relayer.md) | How to run a relayer locally or in production.                        |
| [Deploying pools](/for-developers/deploying-pools.md)     | The deploy sequence for new pools.                                    |
| [Testing](/for-developers/testing.md)                     | How the test suite is organized.                                      |

## Layout of the repo

```
tonado-cash/
├── apps/
│   ├── contracts/        Tolk smart contracts (Acton project) + circom circuits
│   ├── cli/              The `tonado` CLI binary
│   ├── relayer/          REST relayer service (Express + Postgres + Redis)
│   ├── dapp/             Browser-based deposit/withdraw UI (alpha)
│   └── web/              Marketing site
├── packages/
│   └── core/             @tonado/core — shared TS SDK
├── deploy/
│   ├── testnet/          Testnet deployment notes + manifest
│   ├── mainnet/          Mainnet deployment notes + manifest
│   └── ceremony/         Trusted-setup MPC instructions + final attestation
├── docs/                 This documentation (also synced to GitBook)
├── docker-compose.yml    Local dev stack (postgres + redis + relayer)
└── shell/                Top-level deploy + ceremony shell scripts
```

## Conventions

* **pnpm 10.x workspaces.** Cross-package references use `workspace:*`.
* **TypeScript strict, target ES2022, module CommonJS.**
* **Per-package `tsconfig.json` extends `tsconfig.base.json`.**
* **`pnpm typecheck` is the CI gate** for TS code.
* **Tolk files are formatted with `acton fmt`.** Run `pnpm format:tolk` after editing any `.tolk` file under `apps/contracts/contracts/`. Auto-generated files (`verifier.tolk`, `poseidon_constants.tolk`) are in the formatter's ignore list.

## Safety rails to keep in mind

These apply to anyone modifying core protocol code:

* **Never weaken curve assumptions or the hash function without a fresh ceremony.** Any change to the circuit or to Poseidon parameters invalidates every existing zkey.
* **The relayer's mnemonic is the single highest-value secret in the operator-side system.** It pays for withdrawals and holds the fee account. Treat any change to relayer wallet handling as security-critical.
* **Counterfeit-jetton attacks** are the most common TON DeFi bug. Any jetton-pool change MUST preserve the `sender == config.poolJettonWallet` validation on every `transfer_notification`.
* **`verifier.tolk` and `apps/contracts/wrappers/Verifier.ts` are auto-generated.** Never hand-edit. Regenerate via `pnpm circuits:compile && pnpm --filter @tonado/contracts run export-verifier`.

## Where to file issues

[github.com/tonadocash/monorepo/issues](https://github.com/tonadocash/monorepo/issues). For security-sensitive issues, see [Reporting a vulnerability](/security/disclosure.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.tonadocash.com/for-developers/developers.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.
