> For the complete documentation index, see [llms.txt](https://docs.kton.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kton.io/protocol-internals/13-live-onchain-state.md).

# Live On-chain State and Addresses

Everything in KTON is public and verifiable on the TON blockchain. This chapter lists the two addresses you need, shows the live on-chain parameters as of a recent snapshot, and walks through how to query those values yourself so you never have to take our word for them.

> **As-of note:** The figures below are a snapshot from **2026-06-17**. On-chain state changes every round (roughly every 36 hours) as profit is folded into the pool, deposits and withdrawals settle, and the exchange rate appreciates. Treat the numbers as a worked example, not constants. The addresses and op-codes are stable; the balances, supply, exchange rate, and round index are not. Always re-query for current values.

## Addresses

These are the only two addresses a KTON user or integrator needs. Both point to the **public KTON pool**, which is the pool that ordinary users stake into.

| What                                               | Address                                            |
| -------------------------------------------------- | -------------------------------------------------- |
| **Public KTON pool** (deposit Gram here, get KTON) | `EQA9HwEZD_tONfVz6lJS0PVKR5viEiEGyj9AuQewGQVnXPg0` |
| **KTON jetton master** (the KTON token minter)     | `EQBuIhXNNkWf9AW9miNGNTSO_uFZ23ejfIWrieXge5f733mw` |

A few things worth knowing about these two contracts:

* The **pool** custodies your Gram, mints and burns KTON, lends pooled Gram to validator-controllers, and runs the per-round profit accounting. When you deposit, you send Gram to the pool; when you unstake, your KTON burn lands on the pool's withdraw handler.
* The **jetton master** issues KTON. It is a standard TEP-74 jetton with **9 decimals**, and its admin is the public pool itself. This is why no separate party can mint KTON out of thin air: only the pool, following its own staking logic, can.
* Your personal KTON balance lives in your own **jetton wallet**, a contract derived from your address and the jetton master. You do not need to memorize it; any TON wallet or explorer resolves it for you.

You can paste either address into a TON explorer (for example Tonviewer or Tonscan) to inspect the contract, its balance, and its methods directly.

## Live Parameters (snapshot: 2026-06-17)

The pool exposes its full internal state through a single get-method, `get_pool_full_data_raw`. The table below decodes the most useful fields from that method for the public pool. The "raw" column is the integer stored on-chain; the "meaning" column is the human-readable interpretation.

| Parameter                     | Raw value                | Meaning                                                                |
| ----------------------------- | ------------------------ | ---------------------------------------------------------------------- |
| `total_balance`               | 1,563,339.60             | Total Gram backing the pool.                                           |
| `pool_jetton_supply`          | 1,510,452.85             | Total KTON in circulation.                                             |
| **Exchange rate**             | `total_balance / supply` | **≈ 1.035014 Gram per KTON.** Appreciates over time.                   |
| `governance_fee`              | 2,684,355                | **16.00%** commission on each round's profit (see note below).         |
| `interest_rate`               | 10,800                   | Per-round validator-loan interest cap, ≈ 0.06437% per round.           |
| `instant_withdrawal_fee`      | 16,777,215               | ≈ 100%. The instant path is effectively disabled; use the queued exit. |
| min / max loan per validator  | 1.00 / 2,000,000         | Bounds on a single validator's draw, in Gram.                          |
| `disbalance_tolerance`        | 255                      | How far one validator's loan may exceed an even split.                 |
| state / `halted?`             | NORMAL / false           | Pool is operating normally, not paused.                                |
| `deposits_open?` / optimistic | true / true              | Deposits are accepting; optimistic mode is on.                         |
| current round index           | 537                      | The pool's settlement round counter at snapshot time.                  |

### How the raw values turn into percentages

Several of these fields are stored as a share of a fixed denominator called **SHARE\_BASIS = 16,777,216** (which is 2^24). To convert a raw share into a percentage, divide by SHARE\_BASIS and multiply by 100:

* **Governance fee:** 2,684,355 / 16,777,216 ≈ 0.1600 = **16.00%**.
* **Instant-withdrawal fee:** 16,777,215 / 16,777,216 ≈ 0.99999994 ≈ **100%** (which is why the instant path is a trap and the real exit is the queued withdrawal).
* **Interest rate cap:** 10,800 / 16,777,216 ≈ 0.0006437 = **0.06437% per round** (the maximum interest a loan accrues in one round).

### What these numbers mean for you

* **The exchange rate is above 1.** Each KTON currently redeems for about 1.035 Gram. That figure climbs as the pool earns validator-loan interest and auto-compounds it into `total_balance` while the KTON supply stays fixed. Your wallet balance of KTON never changes; its redemption value does. There is no rebasing.
* **The 16% governance fee is a commission on rewards, not principal.** It is taken out of each round's profit before the rate is updated, so the displayed APY in the app is already net of it. It never touches your deposited Gram.
* **APY is not fixed.** There is no target or guaranteed rate. Yield comes entirely from validator-loan interest and depends on validator performance. The app annualizes the realized per-round growth (it uses roughly 241 rounds per year) to show a live, variable APY.
* **Other amounts you may encounter** are flat budgets, not percentages of your stake, and are not fees KTON keeps: a **\~1 Gram deposit processing budget** (mostly refunded; you only pay the gas actually consumed), a **0.5 Gram minimum withdrawal request value** (a minimum message value, not a deduction), and a **1 Gram finalize fee** taken from round profit and socialized across holders. There is no protocol-enforced minimum stake beyond the rule that your deposit must be greater than zero after that processing budget is set aside; keeping about 1 Gram in your wallet beyond your stake amount is a practical buffer, not a hard minimum.

## Reproduce It Yourself

You do not need a node or any special tooling to verify the values above. Any public TON API that exposes contract get-methods will run `get_pool_full_data_raw` against the pool address and return the raw stack. Two common ways:

### Option A: TonAPI (HTTP)

TonAPI exposes get-methods over a simple HTTP endpoint. Call the `run_get_method` route on the **public pool address** with the method name `get_pool_full_data_raw` and no arguments:

```
GET https://tonapi.io/v2/blockchain/accounts/EQA9HwEZD_tONfVz6lJS0PVKR5viEiEGyj9AuQewGQVnXPg0/methods/get_pool_full_data_raw
```

A successful call returns `"exit_code": 0` and a `stack` array of integers. These are the raw fields, in contract order, that feed the table above (total\_balance, pool\_jetton\_supply, the fee and interest shares, the loan bounds, the state flags, and the round index). Divide the share fields by SHARE\_BASIS as shown earlier to recover the percentages, and divide `total_balance` by `pool_jetton_supply` to recover the exchange rate.

### Option B: Toncenter (HTTP)

Toncenter offers an equivalent `runGetMethod` endpoint. Send a POST with the pool address and the method name:

```
POST https://toncenter.com/api/v2/runGetMethod
Content-Type: application/json

{
  "address": "EQA9HwEZD_tONfVz6lJS0PVKR5viEiEGyj9AuQewGQVnXPg0",
  "method": "get_pool_full_data_raw",
  "stack": []
}
```

The response includes the same numeric stack. (Toncenter rate-limits anonymous requests; for repeated polling, request an API key.)

### Sanity checks when you read the stack

* **Exchange rate** should be slightly above 1 (currently \~1.035). If you compute `total_balance / pool_jetton_supply` and get a number below 1 or wildly different, you are reading the wrong field or the wrong address.
* **Governance fee** should decode to 16.00% on the public pool. If your division yields something near 100%, you have queried a different contract; the address in this chapter is the correct public pool.
* **state / halted** should read NORMAL / false during normal operation. A halted pool pauses deposits and loans (but never blocks withdrawals).

Because the contract source is open and the live state is queryable by anyone, none of the numbers in this chapter require trust. Re-run the query, do the arithmetic, and you will see the current state for yourself.

Next: **Community and Resources**


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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.kton.io/protocol-internals/13-live-onchain-state.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.
