Late last year I decided to stop just reading about NFTs and actually build something. Everyone had opinions. Very few people I knew had actually written a smart contract. So I figured I'd learn Solidity, mint a small collection, and see what happens.

Here's what actually happened.

The Tech Was Genuinely Interesting

I'll start with the positive stuff because it deserves to be said. Learning Solidity was a great experience. The language itself isn't that hard if you've written any C-like code before. What's fascinating is the mental model. You're writing code that runs on a decentralized virtual machine, where every computation costs real money, and once deployed, it's immutable. That constraint forces you to think differently about every line you write.

I used Hardhat for local development and testing. The tooling has come a long way - the Ethereum ecosystem has matured significantly. You can spin up a local Ethereum node, deploy contracts, write tests in JavaScript, and iterate quickly. It felt surprisingly modern compared to the horror stories I'd heard about early Solidity development.

My collection was simple. 500 generative art pieces, stored on IPFS, minted through a standard ERC-721 contract. I wrote the contract from scratch rather than using a template because I wanted to understand every function. The OpenZeppelin libraries are excellent and well-audited, so I leaned on those for the core token logic.

Gas Fees Are Not a Rounding Error

Here's where reality hits. Deploying my contract to Ethereum mainnet cost me about $300 in gas fees. That was on a relatively calm day. I'd seen estimates go as high as $800 during peak congestion.

Every interaction with the contract costs gas. Minting, transferring, even reading certain state variables if they trigger computation. I tested extensively on Goerli testnet first, which is free, but the mainnet deployment still stung. For a side project experiment, $300 just to put your code on chain is a steep entry fee.

I looked into Layer 2 solutions like Polygon, and honestly, if I did this again, I'd go that route. Gas fees on Polygon are fractions of a cent. The tradeoff is less prestige and liquidity, but for an experiment, that's completely fine.

The Market Is Disconnected from the Tech

So I minted 500 pieces. Sold about 40 in the first week at 0.01 ETH each. Then sales completely flatlined. The pieces that sold went to people speculating on a flip, not people who cared about the art or the code behind it.

I watched collections with zero technical merit sell out because they had the right Discord community or the right influencer tweeting about them. Meanwhile, technically impressive projects with genuine innovation struggled to get attention. The market was driven almost entirely by hype, speculation, and FOMO. That was frustrating to watch.

I don't regret the experiment, but I won't pretend the market rewarded technical quality. It didn't.

What I Actually Took Away

The biggest win was learning Solidity and understanding the EVM at a deeper level. Smart contracts are a genuinely powerful concept, which I explored further in my honest take on smart contracts. The idea of code that executes deterministically, that no single party controls, that anyone can verify. That's compelling computer science regardless of what you think about JPEGs selling for millions.

I also got comfortable with the broader ecosystem. IPFS for decentralized storage. Etherscan for contract verification. MetaMask integration in a frontend. Web3.js and ethers.js for interacting with contracts from JavaScript. These are useful skills even if NFTs themselves cool down.

Hardhat's testing framework taught me a lot about thinking through edge cases in financial code. When your contract handles real money, you test differently. You think about reentrancy attacks, integer overflow, access control. It made me a more security-conscious developer overall.

Would I Do It Again?

The learning, absolutely. Writing and deploying a smart contract should be on every curious developer's list. It stretches your thinking in ways that traditional web development doesn't.

The NFT market stuff? Probably not. The signal-to-noise ratio is terrible. Too much energy goes into marketing and community hype, not enough into actual technical innovation. I'd rather spend my time building something useful on chain than trying to sell digital art to speculators.

If you're curious about Web3, skip the market hype and just go write a smart contract. Deploy it on a testnet. Break it. Fix it. That's where the real value is. I reflected more on this whole period in my 2022 year in review.