explaingit

amazingang/wtf-solidity

13,977SolidityAudience · developerComplexity · 2/5Setup · easy

TLDR

WTF Solidity is a beginner-friendly tutorial series that teaches the Solidity smart-contract language lesson by lesson, with runnable code and a written explanation for every topic from basics to NFTs.

Mindmap

mindmap
  root((WTF Solidity))
    Basics
      Value types
      Functions
      Mappings
    Advanced
      Inheritance
      Interfaces
      Delegatecall
    Applications
      ERC20 tokens
      ERC721 NFTs
      Dutch auctions
    Languages
      Chinese original
      English version
      Spanish version
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Work through numbered lessons to learn Solidity from scratch and write your first working smart contract.

USE CASE 2

Study real Solidity examples for ERC20 tokens, NFTs, Dutch auctions, and Merkle trees by reading code alongside written articles.

USE CASE 3

Practice smart contract patterns by running each lesson's code directly in a browser-based editor.

Tech stack

SolidityEthereum

Getting it running

Difficulty · easy Time to first run · 30min
No license information mentioned in the explanation.

In plain English

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.

Copy-paste prompts

Prompt 1
Using the WTF Solidity lesson on ERC721 NFTs, show me how to write a contract that mints a limited-edition NFT collection with a max supply of 10,000.
Prompt 2
Explain the delegatecall pattern from the WTF Solidity advanced lessons and give me a concrete example of when to use it instead of a regular call.
Prompt 3
Walk me through the WTF Solidity Dutch auction example and show how to adapt it so the price drops every hour instead of every block.
Prompt 4
I just read the WTF Solidity lesson on digital signatures. Show me how to write a Solidity function that verifies an ECDSA signature on-chain.
Prompt 5
Using the WTF Solidity lesson on ERC20, show me how to write a token faucet contract that sends a fixed amount of tokens to anyone who calls it once per day.
Open on GitHub → Explain another repo

← amazingang on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.