For the complete documentation index, see llms.txt. This page is also available as Markdown.

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:

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:

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

Last updated