Work through numbered lessons to learn Solidity from scratch and write your first working smart contract.
Study real Solidity examples for ERC20 tokens, NFTs, Dutch auctions, and Merkle trees by reading code alongside written articles.
Practice smart contract patterns by running each lesson's code directly in a browser-based editor.
WTF Solidity is a beginner tutorial for learning Solidity, the programming language used to write smart contracts on the Ethereum blockchain. The author explains that they started it while relearning Solidity themselves to lock in the details, and they aimed it squarely at newcomers. More experienced programmers are gently pointed toward other material. New lessons are added one to three times a week. The tutorial began in Chinese and now also has English, Spanish, and Brazilian Portuguese versions, with an official site at wtf.academy. The README opens with a roadmap tied to the project's star count on GitHub. As the repo passed certain milestones, the author committed to new things: a community chat at 64 stars, advanced content at 256, the official website at 512, and a course certificate system at 1024. A couple of goals, such as recorded video lessons and a community NFT, are still open. Most of the document is a numbered table of contents. Each entry links to both the code and a written article for that lesson. The early lessons cover the basics: a three line Hello Web3 contract, value types, functions, return values, data storage, arrays, structs, mappings, constants, inheritance, interfaces, and errors. Later sections move into more advanced topics like function overloading, libraries, sending and receiving ETH, calling other contracts, and delegatecall. A final applications section builds real examples such as ERC20 tokens, token faucets, airdrops, ERC721 NFTs, Dutch auctions, Merkle trees, digital signatures, an NFT exchange, randomness, ERC1155 tokens, and WETH. Because every lesson links to both runnable code and a written explanation, a reader can study the idea and then try it directly.
← amazingang on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.