Raw Address
Full TON contract address in the form workchain:hash (e.g. 0:abc...) — the machine representation, without human-readable safeguards.
Aliases: raw form, workchain:hash
Raw Address is the machine representation of an address in TON: a pair workchain:hash, where workchain is an integer (typically 0 for basechain, -1 for masterchain) and hash is the 256-bit hash of the contract’s initial state in hex.
Example: 0:8a1c5c9a92b9c5c0e1...c0. Total length is 64 hex characters after the colon.
Why it exists
Raw is the canonical representation. TVM internals, explorers, and SDKs all index by it. All get-methods and tonutils-go / ton-core take addresses in raw form (or convert to it under the hood).
How it differs from friendly
| Property | Raw (0:abc…) | Friendly (EQ…/UQ…) |
|---|---|---|
| Length | 64 hex + workchain | 48 base64 chars |
| Checksum | none | CRC16 |
| Bounce flag | not encoded | encoded in the leading letter (E vs U) |
| Testnet / mainnet flag | not encoded | encoded |
| Used in | APIs, SDKs, scripts | UI, wallets, talking to users |
A wallet shows the friendly form to the user. Under the hood it converts to raw before building a transaction.
Conversion
Every major SDK exposes Address.parse() and address.toString({ bounceable: …, testOnly: … }). Explorers (TonViewer, TonScan) show both forms on a contract’s page.
Safety
A raw address has no built-in typo protection: one wrong digit and you’re sending to a different, possibly non-existent contract. That’s why UIs almost always use the friendly form with CRC. Raw is the “system” representation; you see it more in contract code than in interfaces.