Skip to main content
This guide explains how to create vanity addresses on the TON blockchain — contracts or wallets with custom patterns (for example, specific starting or ending characters) that make the address visually distinctive.

Introduction

Vanity addresses are often used for branding, better recognizability, or aesthetic purposes. A contract address on TON is a hash of its initial code and data, so a vanity address is found by brute force: a generator iterates salt values inside a special vanity contract’s initial code until the resulting address matches the desired pattern. The vanity contract is then deployed at that address and immediately replaces its own code and data with those of the target contract.

Vanity Contract Address

To deploy a contract (for example, a jetton master) at a vanity address, first generate the address, then deploy through the vanity contract.

Generate the Address

Clone the generator repository:
Run the generator:
  • Replace {OWNER_ADDRESS} with the wallet address from which the deployment will be made. Only the owner can deploy through the generated vanity contract.
  • Replace {SUFFIX} with the desired ending of the address. Use --start instead of (or in addition to) --end for a prefix constraint.
Matches are appended to addresses.jsonl — one JSON object per line containing the found address, the contract init (code and fixed prefix length), the generation config, and a timestamp. Copy the matching line; the deployment script parses it with VanityResult.from_json.

Deploy the Contract

The script below deploys a stablecoin jetton master at the generated vanity address. It builds the target contract’s initial state, wraps its code and data in a VanityDeployBody, and sends it to the vanity contract together with the vanity state_init. The vanity contract validates the owner and replaces its own code and data with the payload, becoming the actual jetton master.

Vanity Wallet Address

The mnemonic phrase and wallet ID generated by this tool are only compatible with WalletV3R2.
To create a vanity wallet address using GPU acceleration, follow these steps.

Check Requirements

NVIDIA GPU (driver version 555.* or later).

Download Binary

Download the gpu-generator-linux binary from the latest release.

Run the Generator

To start the generator with interactive input:
To run the generator with predefined constraints directly from the command line:
Follow the on-screen instructions to monitor progress and view results. After a successful match, the tool displays the mnemonic phrase and the wallet ID for use with a WalletV3R2 wallet. Constraints Syntax
  • Allowed characters: A-Z, a-z, 0-9, _, -
  • Start constraint (after UQ prefix, third character): start[A][P][P][L][E] or start[*][T][O][N]
  • End constraint: end[T][O][N] or end[Tt][Oo][Nn]
  • Combined constraints: start[*][T][O][N] & end[T][O][N]
  • Multiple variants (OR): start[*][T][O][N] & end[T][O][N] | start[D][D][D] | end[0][0][0]
Performance Reference

Use the Generated Wallet

Import the wallet with the generated mnemonic and wallet ID. The wallet ID is passed as subwallet_id in a WalletV3Config:

See Also

Vanity Deployment Example

Full runnable vanity contract deployment script on GitHub.