Documentation

TNS Documentation

Everything you need to integrate TNS into your application.

const TNS_PROGRAM_ID = new PublicKey("TNSxsGQYDPb7ddAtDEJAUhD3q4M232NdhmTXutVXQ12");
What is TNS?

TNS (Token Naming Service) is a decentralized registry for unique token symbols on Solana. Think of it as DNS for token tickers - one symbol maps to exactly one verified token mint.

The Problem

On Solana, anyone can create a token with any symbol. Search "BONK" on any DEX and you'll find hundreds of results. Search "AAPL" and you'll find dozens of fake RWA tokens. Which one is real? Current solutions rely on centralized verification teams and proprietary algorithms. This doesn't scale and creates trust dependencies.

The Solution

A better primitive exists on Solana to enforce symbol uniqueness efficiently. It is called PDAs (Program Derived Addresses).

TNS provides a single source of truth for symbol uniqueness. Each symbol can only be registered once, creating a bijective mapping between symbols and token mints. Lookup is a simple on-chain PDA check - no APIs, no oracles, no trusted third parties. Note: TNS confirms symbol-to-mint uniqueness only. Registration does not constitute an endorsement, audit, or verification of any project's legitimacy or safety.

Key Concepts

Token Account

A PDA derived from the symbol string. Contains the verified mint address, owner, registration timestamp, and expiration date.

Ownership

The wallet that registered the symbol. Owners can update the mint address, transfer ownership, and renew the registration.

Expiration

Symbols expire after the registration period. A 90-day grace period allows renewal before the symbol becomes available again.

Verification

Any program can verify a token by deriving the Token PDA and checking if the stored mint matches. This can be done via CPI in a single instruction.

GitHub

View the source code, report issues, or contribute.

View Contract →
Whitepaper

Read the full technical specification and design rationale.

Read Whitepaper →
Genesis Lists

Explore the data sources and scripts behind symbol curation.

View Genesis Lists →
Support

Get help from the community on Discord.

Join Discord →