Skip to main content
T TON Adoption
← Glossary
NODE/03 · Term

Address Format

Ways of writing a TON contract address: raw (0:hash), friendly base64 (EQ.../UQ...), or a ton:// URI. Each form serves a different purpose.

Aliases: ton address forms, address forms

Address Format refers to the multiple ways a TON contract address can be written. Unlike Ethereum, where an address is just 0x plus 40 hex characters, TON has several representations, each with its own role.

Main formats

FormatExampleWhere you see it
Raw0:abc…APIs, SDKs, debugging
Friendly bounceableEQ…Wallets, dApp UI — the default
Friendly non-bounceableUQ…Addresses for fresh wallets
Friendly testnetkQ… / 0Q…Test networks
TON URIton://transfer/EQ…?amount=…Deep links, QR codes

All of them encode the same object — the pair (workchain, hash). They differ in optional flags and the presence of a CRC check.

Which one to use

  • Storing the address in code or DB — raw. Universal, no ambiguity.
  • Showing it to users — friendly, picking bounceable vs non-bounceable based on the target’s deployment status.
  • Building a “send” link — TON URI. Wallets open from deep links with the form pre-filled.
  • Passing between services — typically friendly, but pick a form and stick to it: the same address in EQ and UQ are different strings.

Conversion

Every major SDK converts between forms:

import { Address } from '@ton/core';
const addr = Address.parse('EQAbc…');
addr.toRawString();                       // 0:abc…
addr.toString({ bounceable: false });     // UQ…

Explorers (TonViewer, TonScan) display all forms on a contract page — handy for debugging. The main rule: don’t mix forms inside one system — that’s a classic integration bug.

Related terms