Skip to main content
All on-chain state for tonch is split across these contracts. Every address is verifiable on Tonviewer; code hashes match the FunC source in the tonch monorepo.

Singleton factory

The factory is the entry point for every launch. Each launch sends a op::launch message to the factory; the factory deploys the per-launch contracts and registers the launch. get_factory_config returns the configured constants:

Per-launch contracts

Each launch deploys three contracts. The addresses are derived deterministically from the launch parameters; once a launch is registered you can fetch them via GET /api/launches/<curve_address> or by reading TokenLaunched events.

Bonding curve sale

Holds the TON and Jetton reserves for the launch. Receives buys and sells until graduation; runs the migration to DeDust at graduation.

Jetton master (TEP-74)

Standard TEP-74 reference Jetton, vendored unchanged from the TON Foundation reference implementation.

LP locker

Write-only sink for LP Jettons after graduation. No withdrawal opcode.

Jetton wallet

Standard TEP-74 reference Jetton wallet. Deployed automatically by the Jetton master when a holder receives Jettons.

DeDust v2 mainnet

Used by every graduation. Owned and operated by DeDust, not tonch.

Operational addresses

These are not contracts but key wallets in the operational topology:

Source verification

The factory is verified on Tonviewer — its source matches the FunC files in the repository at the deployed code hash. The verification proof is on chain at verifier.ton.org. Per-launch contracts (curve, Jetton master, Jetton wallet, LP locker) inherit verification from their code hashes — once those four hashes are verified once, every future launch deploys identical bytecode and is implicitly verified. The deploy script that produces these addresses is tonlaunch/scripts/deploy/deploy-mainnet.ts.