Before this week I thought a Solana NFT was a Metaplex thing. It turns out you can mint a full NFT — with metadata, a collection, and live updates — using just the Token Extensions program and the spl-token CLI.
The mental model
If you already understand SPL tokens, an NFT is the same program with tighter rules: 0 decimals (nothing to split), supply capped at 1, and mint authority disabled when you are done so no one can ever inflate it. Uniqueness is enforced by token math, not by a is_nft flag.
The Metadata extension stores name, symbol, and URI directly on the mint account — no separate Metaplex metadata account. The URI points at a JSON file hosted somewhere public; that JSON holds the image URL and attributes. Wallets and Solana Explorer read the on-chain fields, fetch the JSON, render the art.
Collections use the Group and Member extensions: one mint is the collection (group), each NFT mint points back to it (member). Web2 analogy: a collection_id foreign key stamped into the row — except there is no central database to join against.








