- A new repo collating various resources for learning about smart contracts, tokens, crypto, blockchain etc.
- Inspired by wanting to help those in the Rebels project
- Jump to Contents
Solidity - a programming language created in 2014 by a chap named Gavid Wood. The language is turing complete, high level, and object-oriented and is used for interacting with the Ethereum Virtual Machine (EVM). Developers can utilise the language to implement and interact with smart contracts.
A smart contract is a program that governs behaviour on a blockchain. Smart contracts are executed as code and power the Ethereum ecosystem.
There are many use cases for using smart contracts, below are three common ones. You may well be familiar with NFTs:
- Non-fungible Tokens (NFT)
- Decentralised Finance (DeFi)
- Digital Identity
Understanding this new wave of technology can be overwelming, even to those who are already highly technical in other fields with specialisms. You're not too late to start learning, in fact, you'll be ahead of the curve. To begin with, take a look at the below:
- Familiarise yourself with the basics of blockchain and understand the fundamentals of what it is and how it works. The more you study and understand this part, the better your understanding will be for everything else.
- Read the whitepapers from Bitcoin and Ethereum
- Use free resources such as YouTube to research blockchain, smart contracts, etherium, and bitcoin. Vitalik Buterin (co-founder of Ethereum) presented a talk at DEVCON1 on understanding the Ethereum Blockchain Protocol. I recommend watching it here (38:17).
- Start with the 101's. I recommend taking a look through the contents of 101 Lessons. Possibly focus on ERC20 to begin with and then the ERC721 protocol.
- Take a look at the contens of CryptoZombies. I have separated it into two categories - Beginner and Advanced.
- Read some pre-existing smart contracts using Etherscan. See my section on Analysing Smart Contracts
- 101 Lessons
- Blockchain DApps Development
- buildspace - Web3 Developer Community
- Analysing Smart Contracts
- Learn Solidity
CryptoZombies is an interactive school that teaches you all things technical about blockchains. Learn to make smart contracts in Solidity by making your own crypto-collectibles game. https://cryptozombies.io/
- How to build a game on Ethereum
- Make the initial game multiplayer
- Advanced Solidity concepts
- Introduce a battle and payable functions to the game
- Allow the game to have tradeables
- Build a frontend for the DApp with Web3.js
- Lesson 10 - Deploying DApps with Truffle
- Lesson 11 - Testing Smart Contracts with Truffle
- Lesson 14 - How to Build an Oracle
- Lesson 15 - How to build an Oracle - Part 2
- Lesson 16 - How to Build an Oracle - Part 3
Learn by making stuff! Buildspace courses focus on making stuff, not sitting in front of hours of recorded videos. Once you enrol into one of the projects, you will get access to more hanells in the Discord and you'll be able to speak with others doing the same projects as you - in the same cohort.
Best of all, buildspace is free.
- Join the Discord here - don't be put off by the minimal channels, that will change soon.
- Visit here to register using your email address
- Once registered and verified, you can see the Projects dashboard here. You don't need to complete the profile, but you can do.
- Select a project such as Build a Web3 App with Solidity + Ethereum Smart Contracts
- You will then be able to link your Discord account to your buildspace account
- You will then need to connect your ETH Wallet. I use MetaMask and created a new wallet specificly for this
- Some projects will require you to wait until the live event, some allow you to start early. Enjoy!
- Build a Web3 App with Solidity + Ethereum Smart Contracts
- Mint your own NFT collection and ship a Web3 app to show them off
- Create your own mini turn-based NFT browser game
- Build a Web3 app on Solana with React and Rust
- Ship your own custom NFT collection on Solana w/ Metaplex in a weekend
- Build your own DAO with just Javascript in a weekend
- Build your own domain service on a Polygon L2 in a weekend
A great way of learning about smart contracts, to further strengthen your knowledge in how they work, is to read and study pre-existing smart contracts.
These are some simple steps to get you started:
- https://etherscan.io/
- Enter your search details. For example, I am searching on the token: Matic
- Select the 'Contract' tab from the table view
- From the current view, you can read the basic contract for the token. Each section is a function that you can expand to read:
- Using the decimals and totalSupply sections, I can read that Matic is a token with 18 decimals and a total supply of 10,000,000,000 tokens - click the hyperlinked total to convert to Ether (1).
- For some tokens, you may have fields such as Governance (not in Matic's case). Governance will usually have an address that is hyperlinked, allowing you to click to read a specific section of a tokens governance contract.
- Research different tokens and start understanding the different contracts. You'll learn a lot!
No, you do not need prior developer experience to get started with Solidity. As long as you have the passion and determination to learn, you will achieve it. 1-hour is 4% of your day, and if you do that daily you're already improving and learning something fantastically new.
pragma solidity ^0.8.10;
contract HelloWorld {
string public greet = "Hello World!";
}
pragma defines the compiler version of solidity, it will always be at the top of the file.
Further up I referenced Solidity under the 101 Lessons. It would be good to have a quick look through there, see if you understand anything and then put it to the side to work on later.
I do first recommend that you take a look at Solidity by Example which provides you an introduction to Solidity with simple examples - using compiler v0.8.10. Even better, there are YouTube Videos explaining the examples. So you can read, watch, and learn at the same time!
The creator, Smart Contract Engineer, has three free challenges here: Hello World; Value Types; and Function. If you wish to do the other 57+ challenges then you will need to subscribe for $60 - giving you 1-year access. I believe you will be able to practice without subscribing to a platform like this, I mention it due to some people preferring the extra guardrails.
Remix IDE is an open source web and desktop application. Remix is used for the entire journey of contract development as well as act as a playground for learning and teaching Ethereum and it helps you write Solidity contracts straight from the browser.
If you wish to download Remix for offline use, you can obtain it from GitHub. You can opt to run it with NPM or Docker.