Learn

TON Sites, explained

How to put a website on a .ton name, the addresses it opens at, and what the words on this site mean.

Host a TON Site

A static site on TON Storage

No server needed
  1. Put the site in a folder with an index.html and create a bag from it with tonutils-storage or the official storage daemon. Copy the Bag ID it prints.
  2. Keep the bag shared: leave the storage node running, or pay a storage provider to hold it. A bag nobody shares does not open.
  3. On dns.ton.org, paste the Bag ID into your name's Site field and tick Hosting on TON Storage — not the separate Storage row, which the gateway does not read. It opens at your-name.ton.website.

Your own server

Any web app · public IP (or the proxy's tunnel mode) · UDP open on the port it writes to config.json
  1. Run the site on the server at http://127.0.0.1:80 — any web server or app.
  2. Run tonutils-reverse-proxy next to it and sign the DNS change it shows in your wallet: ./tonutils-reverse-proxy-linux-amd64 --domain your-name.ton
  3. Open your-name.ton.website. Keep the proxy running; without --domain the site still opens by its ADNL address at <address>.adnl.website.

To link a name later, or another name to the same server, set its Site field on dns.ton.org to the ADNL address the proxy prints. Running it as a service, the tunnel mode, the request headers the proxy adds: see the proxy's README and the TON documentation.

The three addresses

ton.website
The main address. alice.ton opens at alice.ton.website, a subdomain like blog.alice.ton at blog.alice.ton.website, and a Telegram username alice.t.me at alice-tg.ton.website.
ton.run
A shorter alias with the same mapping: alice.ton.run.
adnl.website
Opens a server by its ADNL address, with no .ton name at all: <address>.adnl.website. Useful for a site that has no name yet.

Glossary

TON Site
A website served over the TON network instead of the public internet. A .ton name points at it through a site DNS record.
ADNL
The TON network's addressing and transport layer. An ADNL address identifies the server a TON Site runs on — one server can host many names.
TON Storage
TON's file-sharing network. A site can be a static bundle stored there instead of a running server.
Bag ID
The identifier of a TON Storage bundle. A site record can hold a Bag ID instead of an ADNL address; such a site opens only while some peer is sharing the bag.
site record
The DNS record that makes a .ton name open as a website. It is the only record the gateway reads to open a site.
next_resolver
A DNS record that delegates a name's subdomains (e.g. nft.minter.ton) to another contract.
two-level subdomain
A name like blog.alice.ton, resolved through its parent's next_resolver.
RLDP
The protocol TON Sites use to carry HTTP over ADNL.
shared host
A server that holds 20 or more names in this directory — usually parked or for-sale pages. They go up and down together and are listed after independent sites.

General on-chain terms — wallet, jetton, NFT, DNS item — are in the tonscan.info glossary.

FAQ

Why won't a site open?

The gateway only relays: if the site's own server is offline, or no peer is sharing its TON Storage bag, there is nothing to relay. The error page says what it saw. The directory re-checks every listed site each week, so a site that stays down drops out.

Why is the first load slow?

The first request to a site has to find it on the TON network and open a connection — measured at 5–12 seconds for a cold render. After that the page is cached at the edge and loads like any other website.

How do I get my site into the directory?

Nothing to submit: the weekly scan reads TON DNS names from the chain and lists the ones that answer with a real page. To pick your topic, add <meta name="ton2web:category" content="blog"> to your page (values: defi, wallet, game, nft, shop, media, tool, docs, social, blog, personal).

What does hosting cost?

The software is free. A server costs what a small VPS costs; a static site on TON Storage needs no server, only someone sharing the bag. A .ton name is bought at auction on dns.ton.org, paid in GRAM.

Where do I see who owns a name, or when it expires?

On tonscan.info, the on-chain explorer. Every site page here links to it.