Interactive roadmap
Blockchain Developer roadmap
This roadmap is for developers wanting to build decentralised software. You will learn how distributed ledgers operate, write secure smart contracts, and build user-facing decentralised applications.
- 1
Blockchain and Cryptography Basics
0 of 4 done
Understand how distributed networks store data securely without central authorities.
Take your time with these core ideas, as every advanced feature relies heavily on cryptography and consensus rules. - 2
Ethereum and the EVM
0 of 4 done
Learn the architecture of the Ethereum network and its virtual runtime.
Focus on how fees and virtual machine rules shape the way you write production code. - 3
Smart Contracts with Solidity
0 of 4 done
Write self-executing programmes that run directly on EVM networks.
Write clean, readable contracts and always double-check your data types to avoid unexpected bugs. - 4
Testing and Tooling
0 of 4 done
Compile, test, and deploy code using modern blockchain developer frameworks.
Automated testing is your safety net, so write tests for every single feature before deployment. - 5
Security and Auditing
0 of 3 done
Identify common vulnerabilities to protect smart contracts from costly exploits.
Always assume malicious actors will test your code, and design your contracts with defense in depth. - 6
Building Decentralised Apps
0 of 4 done
Connect your smart contracts to web frontends so regular users can interact with them.
Keep your user interface simple and provide clear feedback when transactions are pending on-chain.
Learn it all, with a tutor that never sleeps
Every topic links to LevelUp lessons, practice exercises and the 24/7 AI Tutor. Your progress updates as you master lessons.
Every topic explained
Step 1: Blockchain and Cryptography Basics
- Learn how blocks link together in a chain using cryptographic hashes to prevent tampering.Introduction to Ethereum (Ethereum Foundation)
Read more
A blockchain is a shared digital ledger where data is grouped into blocks and chained together using cryptography. Each new block contains a mathematical fingerprint of the previous one, making past records nearly impossible to alter without breaking the chain.
Imagine a group of friends keeping a shared expense notebook where every new page locks in all previous entries permanently. If anyone tries to alter an old bill, the page stamp changes instantly.
This immutable linking matters because it creates a single source of truth across untrusted networks.
- Data is grouped into sequential blocks
- Cryptographic hashes link blocks securely
- Tampering alters hash values immediately
- Creates an unchangeable historical record
- Explore how key pairs generate account addresses and sign transactions securely.
Read more
Public-key cryptography uses a math pair of keys to secure ownership on a blockchain. Your private key acts as your secret signature, while your public key derives your safe-to-share account address.
Think of your public key as your bank account number that anyone can see, and your private key as your secret PIN that only you should ever know.
Knowing how keys work lets you prove ownership and authorise transactions safely without ever revealing your secret credentials.
- Private keys sign transactions securely
- Public keys generate shareable addresses
- Loss of private key means lost funds
- Math prevents reversing public keys
- Understand how independent computers agree on valid transactions using proof of stake.Consensus Mechanisms (Ethereum Foundation)
Read more
Consensus mechanisms are rules that allow independent computers across the world to agree on which transactions are valid. Proof of stake requires validators to lock up native tokens as collateral to participate.
Picture a committee where members stake their own money as a pledge to be honest, losing funds if they try to cheat.
Understanding consensus helps you see how decentralised systems stay secure and operational without needing a central bank.
- Nodes agree on valid transaction orders
- Proof of stake uses token collateral
- Validators are rewarded for honesty
- Malicious actors lose staked assets
- (optional)
- Discover how software wallets manage secrets and interact with blockchain networks.
Read more
Crypto wallets are software interfaces that manage your private keys and let you interact with blockchain applications. They sign data requests so you can send tokens or approve smart contract actions.
Think of a wallet as your digital passport and login manager rolled into one browser extension.
Mastering wallets is essential because they bridge the gap between human intent and blockchain execution.
- Wallets store and protect private keys
- They sign actions for decentralised apps
- Secret recovery phrases restore access
- They display token balances and history
Step 2: Ethereum and the EVM
- Understand how the Ethereum Virtual Machine executes deterministic code across the globe.Ethereum Virtual Machine (Ethereum Foundation)
Read more
The Ethereum Virtual Machine is a global, decentralised computer that executes smart contract bytecode. Every participating node runs this same virtual machine to ensure identical results everywhere.
Imagine a giant, shared spreadsheet engine that runs instructions identically on thousands of machines simultaneously.
Knowing the EVM helps you write reliable code that behaves predictably across the entire decentralised network.
- Executes compiled smart contract bytecode
- Runs identically on every node
- Ensures deterministic application logic
- State changes sync globally
- Learn how computation costs are measured in gas to prevent infinite loops and spam.Gas and Fees (Ethereum Foundation)
Read more
Gas is the unit that measures the computational effort required to execute operations on Ethereum. Users pay a fee in native currency for this gas to prevent infinite loops and network spam.
Think of gas like fuel for a car where complex engines require more petrol than simple ones to travel the same distance.
Optimising gas usage keeps your contracts affordable for everyday users to run.
- Measures computational work required
- Prevents infinite loops and spam
- Paid in native network currency
- Efficient code saves user money
- Study the difference between user-controlled accounts and smart contract accounts.
Read more
Ethereum has two account types: externally owned accounts controlled by human keys, and smart contract accounts controlled by code. Transactions move funds or trigger contract execution between them.
Imagine a person writing a cheque versus an automated vending machine dispensing items when coins are inserted.
Understanding account types helps you design secure multi-user applications.
- EOAs are controlled by private keys
- Contract accounts hold executable code
- Transactions trigger state changes
- Messages pass data between accounts
- (optional)
- Explore rollups and secondary networks designed to handle cheaper and faster transactions.
Read more
Layer 2 networks are secondary frameworks built on top of Ethereum to process transactions faster and cheaper. They bundle many actions together and post proofs back to the main chain.
Think of a busy motorway using an express toll lane to reduce congestion on the main local roads.
Layer 2 solutions are vital for scaling decentralised apps to a mass global audience.
- Rollups process transactions off-chain
- Reduces user fees significantly
- Inherits main chain security
- Settles final proofs on Ethereum
Step 3: Smart Contracts with Solidity
- Learn variables, data types, and simple functions in the most popular smart contract language.Solidity Documentation (Solidity)
Read more
Solidity is the primary programming language used to write smart contracts for the EVM. Its syntax resembles languages like JavaScript, featuring contracts, functions, and standard variable types.
Think of a Solidity contract as a digital vending machine script that defines rules for handling money and inventory.
Learning Solidity syntax is your first direct step towards building functional decentralised applications.
- Uses contract blocks like classes
- Supports standard data types
- Functions handle state modifications
- Visibility keywords control access
- Master data location rules in Solidity to manage contract state and save gas.
Read more
Solidity requires you to specify where data lives, such as permanent storage, temporary memory, or call data parameters. Managing these locations correctly keeps your contract efficient and gas costs low.
Imagine a kitchen where storage is your pantry for long-term ingredients, and memory is your countertop workspace for prep.
Mastering data locations prevents memory corruption bugs and saves users money.
- Storage holds permanent contract state
- Memory is temporary working space
- Calldata holds immutable input arguments
- Incorrect usage increases gas fees
- Use modifiers to restrict function access and emit events for off-chain listeners.
Read more
Modifiers let you check conditions before running a function, such as ensuring only the owner can call it. Events allow contracts to log data that off-chain applications can listen for easily.
Think of a security guard checking ID at a club door before letting guests enter the VIP room.
Using modifiers and events keeps your code DRY and helps front-end apps track on-chain updates.
- Modifiers enforce reusable check conditions
- Events log data to transaction receipts
- Off-chain apps listen to events
- Reduces duplicate validation code
- Examine popular contract standards such as ERC-20 for tokens and ERC-721 for digital collectibles.ERC-20 Token Standard (Ethereum Foundation)
Read more
Token standards define common rules so different smart contracts can work together seamlessly. ERC-20 handles fungible tokens like currencies, while ERC-721 handles non-fungible tokens for unique digital items.
Think of standards like electrical plug shapes that ensure any appliance fits any wall socket.
Knowing these standards allows your tokens to integrate with wallets and trading platforms instantly.
- ERC-20 defines fungible token rules
- ERC-721 manages unique digital collectibles
- Ensures cross-application compatibility
- Standard interfaces prevent integration errors
Step 4: Testing and Tooling
- Compile contracts, run local test nodes, and automate deployments using JavaScript or TypeScript.Hardhat Documentation (Hardhat)
Read more
Hardhat is a popular development environment that helps you compile, test, and deploy smart contracts using JavaScript or TypeScript. It provides a local node for rapid debugging.
Imagine a workshop bench with automated tools that test your machinery parts before you install them in a building.
Using Hardhat makes your development workflow smooth, repeatable, and error-free.
- Compiles Solidity code into bytecode
- Spins up local test networks
- Runs automated test scripts
- Supports custom deployment plugins
- Use Foundry to write fast smart contract tests natively in Solidity without JavaScript.Foundry Book (Foundry)
Read more
Foundry is a blazing fast smart contract development toolkit written in Rust, letting you write tests natively in Solidity. It runs thousands of tests in seconds.
Think of Foundry as a high-performance wind tunnel that tests racing car designs under extreme conditions instantly.
Foundry helps developers catch edge cases quickly using advanced testing techniques like fuzzing.
- Tests written natively in Solidity
- Executes test suites extremely fast
- Supports fuzz testing for edge cases
- Includes scripting for deployments
- Write automated test suites to verify that contract logic behaves as intended under all conditions.
Read more
Unit testing involves writing automated scripts that check individual functions in your smart contract under various expected and unexpected inputs.
Imagine a quality control machine that tests a lightbulb switch one hundred times to ensure it never fails.
Writing thorough unit tests gives you the confidence that your code will work correctly in production.
- Tests individual contract functions
- Verifies correct arithmetic and logic
- Simulates failed permission checks
- Catches regressions early
- (optional)
- Publish contracts to public test networks using free test currency before going live.
Read more
Testnets are public blockchains that mirror main network behaviour but use free tokens with no real financial value. Faucets are web tools that give you free test currency.
Think of a flight simulator where pilots practice emergency landings without risking real passengers or planes.
Testnets let you trial live deployments safely before committing real funds.
- Mirror mainnet behaviour perfectly
- Use free valueless test tokens
- Faucets dispense test currency
- Essential for final integration testing
Step 5: Security and Auditing
- Understand how malicious contracts drain balances by interrupting external calls, and learn how to prevent it.Smart Contract Security (Ethereum Foundation)
Read more
A reentrancy attack happens when a malicious contract calls back into your contract before your first transaction finishes updating state balances, draining funds.
Imagine an ATM that starts dispensing cash before it finishes deducting the amount from your account balance.
Preventing reentrancy is critical to protecting user funds from being stolen by hackers.
- External calls interrupt execution flow
- State updates must happen first
- Mutex locks prevent nested calls
- Can drain contract balances entirely
- Recognise issues like integer errors, front-running, and improper access control.
Read more
Smart contracts often suffer from logic flaws like inaccurate access control, front-running where bots intercept transactions, and improper math assumptions.
Think of leaving a back door unlocked in a secure vault because you forgot to check the bolt.
Recognising these common flaws helps you write robust code that resists common hacker exploits.
- Access control errors let strangers run admin functions
- Front-running bots exploit transaction order
- Integer overflow risks require safe math
- Unchecked return values cause silent failures
- (optional)
- Run static analysers and linters to catch suspicious contract patterns before shipping.
Read more
Automated security tools are static analysers that scan your contract code for known vulnerability patterns and coding standard violations without running them.
Imagine a spellchecker that highlights grammatical errors and typos as you type an essay.
Running these tools catches silly mistakes early in your development cycle.
- Static analysis scans code without execution
- Flags known vulnerability signatures
- Checks coding style and guidelines
- Complements manual code reviews
Step 6: Building Decentralised Apps
- Use client libraries to read blockchain data and send transactions from web applications.Ethers Documentation (Ethers)
Read more
Libraries like Ethers.js and Viem provide JavaScript interfaces to connect web applications with the blockchain, letting you read data and send signed transactions.
Think of these libraries as translators that let a web browser speak the native language of the blockchain.
Mastering these tools enables you to build fully interactive decentralised web applications.
- Connects web apps to blockchains
- Reads state and balance data
- Sends signed transaction requests
- Listens for live contract events
- Prompt users to connect browser extensions like MetaMask to sign actions on your app.
Read more
Wallet connection tools prompt users to connect their browser extensions, allowing your web app to request signatures and transaction approvals securely.
Imagine a website asking for permission to sign in securely using your digital identification badge.
Seamless wallet connection is the gateway for users to interact with your decentralised app.
- Requests user permission to connect
- Retrieves connected account addresses
- Prompts user to sign transactions
- Handles network switching requests
- Use Application Binary Interfaces to translate between human code and on-chain bytecode.
Read more
An Application Binary Interface is a JSON file that tells your web app how to encode and decode data when talking to a smart contract.
Think of an ABI as a phrasebook that translates human function names into binary bytecode instructions.
Working with ABIs ensures your front-end code communicates correctly with on-chain contracts.
- JSON file describing contract functions
- Translates human calls to bytecode
- Required by client libraries
- Generated during compilation
- (optional)
- Store images and metadata on networks like IPFS instead of paying high on-chain gas costs.
Read more
Decentralised storage networks like IPFS store large files such as images and metadata across peer-to-peer nodes instead of expensive on-chain storage.
Think of storing heavy photo albums in a shared community locker, while keeping only the receipt key inside your wallet.
Using IPFS keeps your decentralised application lightweight and cost-effective.
- Stores large files off-chain
- Uses content hashing for verification
- Reduces high gas storage costs
- Integrates easily with token metadata