Smart contracts coding and Developer resources – Jalel Tounsi
Here’s a list of guides, resources, and tools for developers building on Ethereum.
If you’re new to developing with Ethereum, you’re in the right place. These guides written by the Ethereum community will introduce you to the basics of the Ethereum stack and introduce core concepts that might be different from other app development you’re familiar with.
Need a more basic primer first? Check out ethereum.org/learn.
- Getting up to speed on Ethereum Aug 7, 2017 — Matt Condon
- Ethereum In-Depth, Part 1 May 11, 2018 — Facu Spagnuolo
- Ethereum In-Depth, Part 2 July 24, 2018 — Facu Spagnuolo
- Ethereum Development Walkthrough, Parts 1–5 Jan 14, 2018 — dev_zl
- Ethereum 101, Parts 1–7 Feb 13, 2019 — Wil Barnes
- Full Stack Hello World Voting Ethereum Dapp Tutorial Jan 18, 2017 — Mahesh Murthy
- Mastering Ethereum — A comprehensive textbook available for free online Dec 1, 2018 — Andreas Antonopoulos & Gavin Wood
- Ethereum Developer Portal — Everything you need to get started building on Ethereum Updated often — ConsenSys
- Deconstructing a Solidity Contract Aug 13, 2018 — Alejandro Santander & Leo Arias
- Full Stack Dapp Tutorial Series Updated Often — Joshua Cassidy
Any program that runs on the Ethereum Virtual Machine (EVM) is commonly referred to as a “smart contract”. The most popular languages for writing smart contracts on Ethereum are Solidity and Vyper, though there are others under development.
* Solidity is the most popular language on Ethereum, inspired by C++, Python, and Javascript
* Vyper is a security-focused language for Ethereum, based on Python.
Looking for other options?
Ethereum has a large and growing number of tools to help developers build, test, and deploy their applications. Below are the most popular tools to get you started. If you want to dive deeper, check out this comprehensive list.
* Truffle is a development environment, testing framework, build pipeline, and other tools.
* Embark is a development environment, testing framework, and other tools integrated with Ethereum, IPFS, and Whisper.
Waffle is a framework for advanced smart contract development and testing (based on ethers.js).
Etherlime is an Ethers.js based framework for dapp development (Solidity & Vyper), deployment, debugging, testing and more.
Buidler is a task runner for Ethereum smart contract developers
ZeppelinOS A development framework for building upgradeable smart contracts, and securely managing smart contract applications.
Looking for other options?
Visual Studio Code Professional cross-platform IDE with official Ethereum support.
Remix Web-based IDE with built-in static analysis, and a test blockchain virtual machine.
Superblocks Web-based IDE with built-in browser blockchain virtual machine, MetaMask integration, transaction logger, and other features.
EthFiddle Web-based IDE that lets you write, compile, and debut your smart contract.
Looking for other options?
Web3.js Ethereum Javascript API
Ethers.js Complete Ethereum wallet implementation and utilities in JavaScript and TypeScript
light.js A high-level reactive JS library optimized for light clients.
Web3-wrapper Typescript alternative to Web3.js
Looking for other options?
Infura The Ethereum API as a service
IPFS InterPlanetary File System is a decentralized storage and file referencing system for Ethereum.
Swarm distributed storage platform and content distribution service for the Ethereum web3 stack.
OrbitDB a decentralized peer to peer database on top of IPFS.
Slither Solidity static analysis framework is written in Python 3
MythX Security analysis API for Ethereum smart contracts
Manticore A command-line interface that uses a symbolic execution tool on smart contracts and binaries.
Securify is a Security scanner for Ethereum smart contracts
More on formal verification
Looking for other options?
Solidity-Coverage Alternative solidity code coverage tool.
hevm Implementation of the EVM made specifically for unit testing and debugging smart contracts.
Whiteblock Genesis An end-to-end development sandbox and testing platform for blockchain.
Looking for other options?
Block explorers are services that let you browse the Ethereum blockchain (and its testnets), by finding information about specific transactions, blocks, contracts, and other on-chain activity.
The Ethereum community maintains multiple testnets. These are used by developers to test their applications under different conditions before deploying to the Ethereum mainnet.
Ropsten Proof of Work blockchain, test-ether can be mined
Rinkeby Proof of Authority blockchain, maintained by the Geth development team
Goerli Cross-client Proof of Authority blockchain, built and maintained by the Goerli community
The Ethereum network is made up of many nodes who run compatible client software. The majority of these nodes run Geth or Parity, each of which can be configured in different ways according to your needs.
Geth Ethereum clients written in Go
Parity Ethereum client written in Rust
Pantheon Ethereum client written in Java
Ethnode Run an Ethereum node (Geth or Parity) for local development.
Ethereum Node Resources
Looking for other options?
DappSys Safe, simple, flexible building-blocks for smart-contracts.
OpenZeppelin is a Library for secure smart contract development.
aragonOS Patterns for upgradeability & permission control.
Looking for other options?
Ethereum Stackexchange
Solidity Gitter Chatroom
All Ethereum Gitter Chatrooms
Cryptozombies Learn to code games on ethereum.
Chainshot is a Web based dapp coding tutorials.
Blockgeeks Online courses on blockchain technology
DappUniversity Learn to build decentralized applications on the Ethereum blockchain
Ethernaut Solidity based wargame where each level is a contract to be hacked
Challenge of UX in Ethereum June 25, 2018 — Anna Rose
Designing for blockchain: what’s different and what’s at stake March 22, 2018 — Sarah Baker Mills
The Ethereum community has adopted many standards that are helpful to developers. Typically these are introduced as Ethereum Improvement Proposals (EIPs), which are discussed by community members through a standard process.
Certain EIPs relate to application-level standards (e.g. a standard smart-contract format), which are introduced as Ethereum Requests for Comment (ERC). Many ERCs are critical standards used widely across the Ethereum ecosystem.
Published at Sun, 29 Dec 2019 15:00:19 +0000
{flickr|100|campaign}
