← All guides

How to add metadata to a Solana token

By @solknifexyz · Reviewed

A freshly minted Solana token has nothing visible: no name, no symbol, no image. Wallets and explorers will just show its mint address. To give it a human face, you attach metadata. The mechanics differ slightly between classic SPL Token and Token-2022, but the result is the same: name, symbol, and an image URL the entire ecosystem reads from a single source.

What metadata actually is

On Solana, “token metadata” refers to a small structured record attached to a mint that wallets, explorers, and aggregators read to render your token. It contains:

  • Name — the long-form name (e.g. “SolKnife Token”)
  • Symbol — the ticker (e.g. “SOLK”)
  • URI — a public URL to a JSON file with the long-form fields: image URL, description, external website, social links, attributes

Crucially the image, description, and the rest are NOT on chain. They live at a URL the ecosystem fetches; the chain just stores a pointer. Use a stable host (Arweave, IPFS, your own CDN) — the URL is permanent if you set the metadata to immutable.

SPL Token vs Token-2022

Classic SPL Token mints use the Metaplex Token Metadata program: a separate PDA (program-derived account) sits alongside the mint and holds the metadata record. Token-2022 mints can use either Metaplex OR their own built-in metadata extension that stores the same fields directly inside the mint account.

Wallets and explorers handle both transparently. SolKnife's metadata tool builds the right transaction based on which token program the mint uses; you don't pick.

What the JSON should contain

The off-chain JSON file your URI points to follows the Metaplex fungible-token shape. The fields that matter to wallets:

{
  "name": "SolKnife Token",
  "symbol": "SOLK",
  "description": "Optional one-paragraph description.",
  "image": "https://your.cdn/solk-logo.png",
  "external_url": "https://solknife.xyz",
  "extensions": {
    "website": "https://solknife.xyz",
    "twitter": "https://twitter.com/solknifexyz"
  }
}

Wallets read name, symbol, and image. Explorers additionally read description and the social links. The name and symbol in this JSON should match what you set on chain — chains of trust break when they disagree.

What to host the JSON on

  • Arweave — permanent, content-addressed, one-time fee. Industry standard for NFTs; works for tokens too. Use ardrive or a service like Bundlr.
  • IPFS pinned via Pinata or Filebase — content- addressed, requires a pinning service to stay reachable.
  • Your own HTTPS host— simplest if you already run one. Risk: a domain expiry or outage breaks every wallet's render of your token. For a long-lived asset, Arweave is the conservative choice.

Whatever you pick, the URL must return the JSON with Content-Type: application/json over HTTPS, and remain reachable for as long as you want wallets to see your token branded.

The flow, end to end

  1. Upload your image to permanent storage (Arweave is recommended). Note the URL.
  2. Author the metadata JSON above with the image URL embedded. Upload the JSON to the same kind of host. Note the URI.
  3. Open the metadata tool, connect your wallet (must be the current update authority — fresh mints have you as the authority by default).
  4. Paste the mint address. SolKnife reads the current state and shows you whether metadata already exists, what it says, and what would change.
  5. Enter the name, symbol, and the JSON URI. Sign the transaction. The server self-submits. Wallets and explorers begin rendering the new metadata within a block or two.

Updating metadata later

Until you mark the metadata immutable, the wallet that holds the update authority can change name, symbol, URI, and other fields at any time. The same tool handles updates; SolKnife reads the current state and lets you change individual fields.

Marking metadata immutable is one-way and permanent. Do it once the token's branding is final.

What it costs

  • Rent— only the first time, for the metadata PDA. About 0.005 SOL for SPL Token (Metaplex PDA), less for the Token-2022 built-in metadata extension. Updates don't add rent.
  • Network fee — a few thousand lamports per transaction.
  • SolKnife fee — a flat lamport amount per metadata transaction, operator-set; the current value is on the pricing page.

What to do next