Every day there are new blog posts, tutorials, research article and discussions about how to develop smart contracts and decentralized applications. We try to keep the best and most up-to-date ones here, please let us know about new ones we should add or old ones to remove.

After learning the first steps with Solidity, dive deeper into smart contract programming with Vyper, LLL, Bamboo or Inline Assembly.


Blog posts – Beginners

Build your first (d)app on Ethereum  – learn about blockchains, smart contracts, Ethereum, and what you can build with them
The Hitchhiker’s Guide to Smart Contracts in Ethereum  – short guide to smart contracts development
A Gentle Introduction to Ethereum Programming  – learn to build a fully-fledged smart-contract-enabled web application in 3 part series
Ethereum Development Walkthrough  – 5 part development guide to smart contracts, security, tokens and DApps
Build an Ethereum DApp  – 4 part blog series with Solidity smart contracts, testing, NodeJS backend and React / MetaMask Web App
The Ultimate Ethereum Dapp Tutorial  – how to build a full-stack decentralized application step-by-step
How to Build Blockchain App  – learn to create a todo list powered by Ethereum smart contracts
Your First Truffle DApp  – beginners guide to the Truffle framework, part 1 – 4
Creating an Instagram-like DApp  – with IPFS + Vue.js
OpenLaw API Tutorial  – build a complete DApp with the OpenLaw API + Truffle + React.js
Build your Ethereum DApp on Windows with Truffle, Ganache and Metamask  – beginners Guide
Intro to Web3.js  – developer crash course for the main JavaScript library for interacting with Ethereum
EGS Garage with Chaz  – journey through the process of building an Ethereum DApp from idea to deployment
The New Solidity Dev Stack  – buidler + Ethers + Waffle + Typescript
Intro to Ethereum Development  – shortcut or TL;DR about Ethereum smart contract development
Rapid DApp Prototyping  – learn the basics of building DApps quickly
ethPM and Remix  – tutorial for a universal front end

Blog posts – Advanced

Best Practices for Smart Contract Development  – comprehensive developer handbook for advanced buidlers
Programming Decentralized Moneya straightforward guide to building smart contract applications
Deconstructing a Solidity Contract  – by the end of the 6 part series, you should feel comfortable when looking at or debugging EVM bytecode
Building a production-ready Ethereum DApp  – from idea to final product
Designing the architecture for your Ethereum application  – some of the most traditional scenarios
How to create an upgradeable smart contract  – step-by-step tutorial to get up and running with upgradeable smart contracts
A Practical Guide To Building Zero Knowledge dAppspractical guide to help build your first zero knowledge dApp
Creating EVM packages  – create an EVM package (upgradable dependency for your smart contract), which can be used by other developers in their smart contracts
Test smart contracts like a rockstar  – automated testing tutorial
Interacting with Ethereum MainNet using Ganache and QuikNode  – Ethereum mainnet in your local environment
Decentralized Storage  – decentralized data storage compatible with Layer 1 and Layer 2 blockchains like Ethereum
SKALE Decentralized Storage  – cost-effective storage layer within Ethereum capable of handling files up to 100MB
Benchmarking IPFS gateways  – which one is the best for your day-to-day use?
How to host your DApp with IPFS+ENS and access it via EthDNS  – access your decentralized website on non-web3 browsers using ENS link
Implementing a Blockchain Oracle on Ethereum  – learn to create an oracle service that can query JSON APIs and retrieve a single value from the API response
Building your first Ethereum Oracle  – how do blockchains get data?
How to Build a PubNub-Driven Smart Contract App with Ethereumexpand your Ethereum projects to connect millions of clients and devices to your contracts
Building The Best Damn Crypto Experience We Could  – short story about engaging your users
Dai in Smart Contracts  – guide to using Dai in your code
An engineer’s guide to ETH2.0  – what will mean for developers a planned replacement of Ethereum 1.x for 2.0?
An engineer’s guide to ETH2.0  – Vitalik Buterin’s annotations

Learning materials and other

Solidity  – the official learning material
Ethereum Website  – guides, resources, and tools for developers building on Ethereum
Tips for Starting Dapp Development – some advices and resources to start you off
CryptoZombies  – learn to code Ethereum DApps by coding your own game
Development basics  – included patterns, testing and tooling
Tutorials  – for the Truffle framework
Learn Solidity  – complete tutorial with examples
sbt-ethereum  – interactive text-based learning platform
Mastering Ethereum  – a book for developers, offering a guide to the operation and use of EVM-based open blockchains
Ethereum for Web Developers  – a book of Zeppelin’s Santi Palladino
EthereumDev.io – a plethora of tutorials for Ethereum enthusiasts
Ethereumbuilders  – step-by-step Solidity tutorial
Learn Solidity in y minutes  – Solidity tutorial
Ethereum Development Tutorial  – introduction to the development basics of Ethereum
Learn Ethereum concepts  – go to place for developers new to Ethereum
Solidity Koans  – learn Ethereum programming through test driven development
Solidity Cheatsheet  – quick overview of Solidity syntax
Solidity Cheatsheet and Best practices
Solidity idiosyncrasies  – Solidity gotchas, pitfalls, limitations, and idiosyncrasies
Delegate call  – questions & answers site
Ethereum Stack Exchange  – get answers for all your Ethereum questions
Solidity is Twice as Popular as the Next Blockchain Coding Language  – will eWASM change the game?
Eth.build  – Austin Griffith’s series of tutorials with a dev sandbox
Solidity & Vyper Cheat Sheet – a feature by feature reference guide


Learning Solidity  – the companion to the Youtube tutorials
Learn to build DApps in 24 videos tutorial  – the companion to the Youtube tutorials
Intro To Blockchain Programminghow to build a blockchain app with Ethereum, Web3.js & Solidity smart contracts
Ethereum Dapp with React JS, Webpack, Web3 & Truffle  – video tutorial, repo in the comments
Building a DApp and write contracts  – video by Alex Van de Sande and Christian Reitwiessner
Building an Ethereum dapp using Solidity  – video series by Shlomi Zeltsinger


Chainshot building blocks  – project-based courses and challenges (free)
B9Lab  – courses for beginners or developers (free and paid)
Blockgeeks  – courses on Solidity/DApp development (paid)
Zastrin  – text and video courses (free and paid)
Consensys Academy  – in-person and online programs
Truffle University  – training program to turn you, an existing software developer, into a professional paid blockchain engineer
Ludu Course – a tutorial which, by the end, will have you deploying your first dApps
Ethereum courses  – on Udemy (paid)
Ethereum courses  – on Coursera (paid)
Blockchain courses  – on edX
Cryptography I  – by Stanford
Crypto Startup School  – aims to encourage more tech entrepreneurs to start crypto projects


Vyper  – smart contract-oriented, pythonic programming language
Vyper is beta software  – use it with care
Remix IDE – Your first Vyper smart contract  – easy place to start writing smart contracts in Vyper
Build Smart Contracts in Vyper with Truffle  – an overview & demo of the Vyper language
An Introduction to Smart Contracts with Vyper  – introductory open auction example
Tools for working with Vyper  – a few you might find useful
Solidity & Vyper Cheat Sheeta feature by feature reference guide

Other languages

An Introduction to LLL for Ethereum  – low-level Lisp-like language for smart contract development
Bamboo  – a morphing smart contract language
Sandcastle  – Ethereum SQL smart contract language
Solidity Assembly  – for more fine-grained control
Solidity Assembly Workshop  – with tutorial
Tranquility  – idea of creating a new programming language, that learns from Solidity’s mistakes and improves on all fronts
Zinc Rust-like language for zero knowlege proof circuits
Diving into Ethereum’s Virtual Machine (EVM)  – the future of Ewasm


Ethereum Developer Portal  – place to get started and find the tools you need to develop and build applications on Ethereum
Learn to Build on Ethereum With Kauri  – articles, tutorials, documentation and best practices
A Definitive List of Ethereum Developer Tools  – a guide to available tools, components, frameworks, and platforms for developing applications on Ethereum
Awesome Solidity List  – a curated list of awesome Solidity resources, libraries, tools and more
Awesome Vyper  – a curated list of resources for Vyper
EthList  – the crowdsourced Ethereum reading list
Dapps for Beginners  – learning materials relating to development on Ethereum