Before this week, I assumed creating NFTs on Solana meant using Metaplex. That was the mental model I had carried for a while.
It turns out you can mint a complete NFT, with metadata, collection membership, and on-chain verification, using Solana's Token Extensions. That completely changed how I think about NFTs on Solana.
The Mental Model
One of the biggest lessons I learned this week is that an NFT on Solana isn't magic.
At its core, it's simply:
- A token mint with a total supply of 1
- 0 decimals, making it indivisible
- Metadata attached through the Metadata Extension
- Optionally grouped into a collection using the Group and Member extensions
Once I understood that, everything else started making sense. Instead of seeing NFTs as a special asset type, I started seeing them as standard tokens with a few carefully chosen extensions.
That shift alone made the entire architecture much easier to understand.
What I Built
Over the past few days, I built my first NFT entirely with Token Extensions.
The journey included:
- Creating a mint with supply 1
- Attaching on-chain metadata
- Adding the NFT to a collection using the Group and Member extensions
- Auditing every byte stored on-chain
- Updating the metadata on Devnet to understand how mutable NFTs work
Seeing everything reflected on Solana Explorer after each step made the process feel much more real than simply reading documentation.
One of the commands that stood out during the process was:
spl-token initialize-metadata \
<MINT_ADDRESS> \
"My First NFT" \
"MNFT" \
https://example.com/metadata.json
Watching the metadata become part of the mint itself was one of those "now I get it" moments.
What Surprised Me
Coming from a Web2 background, I expected NFTs to involve a lot of custom infrastructure.
Instead, I discovered that much of the functionality comes directly from Token Extensions.
I also expected metadata to be something hidden behind another protocol. Instead, I learned that it can live directly on the mint account.
Another surprise was how transparent everything is.
Every instruction, every account, every byte of metadata can be inspected on-chain. I even wrote an audit script to verify exactly what had been stored.
That level of visibility makes debugging far less mysterious than I initially expected.
What I'd Build Next
Now that I understand how Token Extensions fit together, there are a few things I'm excited to explore next:
- Building an NFT minting application with a simple frontend
- Experimenting with immutable metadata
- Creating collection management tools
- Exploring programmable NFTs and compressed NFTs
This week gave me a much stronger mental model of how NFTs actually work on Solana, and that's far more valuable than simply knowing the commands.
The biggest takeaway wasn't learning how to mint an NFT.
It was understanding what an NFT really is.
For any Web2 developer curious about Solana, I'd encourage you to spend time learning Token Extensions before reaching for higher-level frameworks. Understanding the foundation makes everything else much easier.
This post is part of my #100DaysOfSolana journey. If you're learning Solana too, I'd love to connect and hear what you're building.
Top comments (0)