DEV Community

Cover image for I Built My First Token on Solana — Here's What Actually Surprised Me #100DaysOfSolana.
Siddhant Chavan
Siddhant Chavan

Posted on

I Built My First Token on Solana — Here's What Actually Surprised Me #100DaysOfSolana.

I Built My First Token on Solana — Here's What Actually Surprised Me
This week I went from zero tokens to minting, transferring, charging fees, and locking tokens so they can never move. Here's what stuck with me.

Tokens don't live in your wallet
Coming from Web2, I assumed tokens would just... show up in your account. Nope. On Solana, every wallet needs a separate token account for each token it holds. One mint, one folder. It felt weird at first. Now it makes sense.
You can charge fees without writing a single backend
The Token Extensions Program has a built-in transfer fee. One flag at mint creation time:

spl-token create-token \
--program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
--transfer-fee-basis-points 100

That's a 1% fee on every transfer, enforced by the blockchain. No middleware. No payment processor. No way to bypass it.
You can make a token that literally cannot be transferred

spl-token create-token \
--program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
--enable-non-transferable

I minted 10, tried to send 5, and watched the transaction get rejected. Not by my code — by the program itself. Perfect for credentials, badges, or certificates that should belong to one person forever.

The biggest shift from Web2: these rules are set at creation and are permanent. You can't add a transfer fee to an existing token. You can't make a transferable token non-transferable later. It forces you to think about token design upfront, which is honestly a good constraint.

solana #blockchain #webdev #beginners #100DaysOfSolana

Top comments (0)