Consensys
dev-portal-dark

Ethereum Developer Portal & Training

Everything you need to start building on the Ethereum blockchain.

How to Become an Ethereum Developer

This developer portal is a place to get started and find the tools you need to develop and build applications on the Ethereum blockchain. Below you’ll find the most popular knowledge bases, infrastructure tools, programming libraries, and more that will teach you how to build software on Ethereum. We recommend taking a look through the portal and reading about all the developer tools and options before getting started.

Also, make sure you jump into the Consensys Discord server. It’s the perfect place to ask questions, pick up pro tips, and connect directly with the teams behind popular Ethereum products like Infura and MetaMask.

Topics to get you started on Ethereum

Knowledge Bases

The Ethereum ecosystem is a massive and talented open source community and has produced a pantheon of valuable developer resources over the past several years. With a platform like Kauri, the community is now even using the innovation of Ethereum itself to vet, curate, and store high-quality content. From in-person training to technical tutorials to research forums, the knowledge bases below offer a wide range of resources for developers of all levels.

Blockchain and Ethereum Blockchain and Ethereum
Blockchain and Ethereum

What is blockchain? And why does it matter? Your journey starts here.

Enterprise Ethereum Enterprise Ethereum
Enterprise Ethereum

Ethereum for enterprise offers easy-to-use tooling, always-on reliability, and the privacy and permissioning features that leading businesses need.

Ethereum 2.0 Ethereum 2.0
Ethereum 2.0

The Ethereum 2.0 Beacon Chain launched in December 2020. This base contains the most relevant, up-to-date educational resources about the upgrade.

Decentralized Finance Decentralized Finance
Decentralized Finance

As of May 2021, the DeFi ecosystem has reached over $75 billion in collateral. Learn how to build and participate in this new economic system.

Infrastructure

Node infrastructure and instant access APIs make it easy for Ethereum developers to connect their applications to the blockchain. An Ethereum client refers to any node that is able to parse and verify the blockchain, its smart contracts, and everything in between. An Ethereum client also provides interfaces to create transactions and mine blocks which is the key for any Ethereum transaction.

Node Infrastructure

Infura Infura
Infura

A scalable, standards-based, globally distributed cluster and API endpoint for Ethereum, IPFS, and other infrastructures.

Clients

Geth Geth
Geth

A command line interface for running a full Ethereum node implemented in Go.

Hyperledger Besu Hyperledger Besu
Hyperledger Besu

Hyperledger Besu is an open source Ethereum client developed under the Apache 2.0 license and written in Java.

Parity Parity
Parity

An Ethereum client developed by Parity Technologies using the Rust programming language.

IDEs and Editors

IDE stands for Integrated Development Environment. IDEs and Editors are what you need to write and test software. They are software suites that consolidate basic tools that are required to start writing on Ethereum.

Clients

Superblocks Superblocks
Superblocks

A web IDE with a built-in browser blockchain VM, Metamask integration (one-click deployments to Testnet/Mainnet), transaction logger, and live code for your WebApp.

Visual Studio Code Visual Studio Code
Visual Studio Code

Visual Studio Code extension that adds support for Solidity.

Remix Remix
Remix

A suite of tools to interact with the Ethereum blockchain in order to debug transactions.

Atom Atom
Atom

An open source and usable text editor.

Smart Contracts

If you want to develop on Ethereum, you need to know how to write smart contracts. Solidity, Ethereum’s main smart contract language, is easier to learn if you already possess a good understanding of Javascript. You’ve probably used programming libraries before, and the ones below are no different. A smart contract library is the reusable piece of code for a smart contract which is deployed once and shared many times. If you are creating a tool, product, or application on Ethereum, you’ll also want to make sure your smart contract is in working order before deploying to the mainnet. These tools will help you build, test, and ship your code.

Languages

Vyper Vyper
Vyper

A pythonic programming language for implementing smart contracts. Vyper is also currently beta software.

Solidity Solidity
Solidity

An object-oriented, high-level language for implementing smart contracts.

Libraries

Dappsys Dappsys
Dappsys

A collection of building blocks for building smart contract systems written in Solidity.

OpenZeppelin OpenZeppelin
OpenZeppelin

A library that provides implementations of standards like ERC20 and ERC721 as well as Solidity components to build custom contracts.

Testing and Deployment

Waffle Waffle
Waffle

Waffle is a library for writing and testing smart contracts. Waffle is based on ethers.js.

Microsoft Azure Microsoft Azure
Microsoft Azure

Microsoft's Azure blockchain development kit simplifies how you create, connect to, build, and deploy smart contracts on Ethereum ledgers.

Truffle Suite Truffle Suite
Truffle Suite

The most popular smart contract development, testing, and deployment framework. The Truffle suite includes Truffle, Ganache, and Drizzle.

Embark Embark
Embark

A framework that allows you to easily develop and deploy decentralized applications. Embark currently integrates with EVM blockchains (Ethereum), IPFS, Swarm, Whisper, and Orbit.

Security

Ok, so you’ve finally built your dapp or smart contract. But how do you know it was set up correctly and is safe from hackers? The security tools below will help ensure that your code is safe and follows all Ethereum development best practices.

Manticore Manticore
Manticore

A command line interface that uses a symbolic execution tool on smart contracts and binaries.

Oyente Oyente
Oyente

An analysis tool for smart contracts. Oyente utilizes a symbolic execution tool that works directly with EVM byte code without access to the high level representation (e.g Solidity).

MythX MythX
MythX

A security analysis API for Ethereum smart contracts. MythX powers tools that bring security into the smart contract software development life cycle.

Testnets

Public testnets on Ethereum offer a way for developers to test what they build without putting their creations on the main Ethereum network. You can obtain as much ETH as you want on testnets because testnet ETH doesn’t carry any monetary value. Similar to public testnets, local testnets are a place for you to test your software without pushing it public. Unlike public testnets, the local testnet software will only run on your computer/node and other users won’t be able to see it or interact with it. Below are the most used testnets to start testing on and links for requesting testnet ETH.

Public Testnets

Kovan Kovan
Kovan

A proof-of-authority blockchain started by the Parity team. Test ether must be requested.

Görli Görli
Görli

Proof-of-authority cross-client testnet, synching Parity Ethereum, Geth, Nethermind, Pantheon, and EthereumJS. This testnet is a community-based project, completely open-source.

Ropsten Ropsten
Ropsten

A proof-of-work blockchain that most closely resembles Ethereum and allows you to easily mine faux-Ether.

Rinkeby Rinkeby
Rinkeby

A proof-of-authority blockchain started by the Geth team. Test ether must be requested.

Interfaces

If you want to start developing dapps, you’ll need front-end development skills. Below are the most popular front-end interfaces that will help you turn your dapp from an idea to a live Ethereum mainnet application. If you’re interested in doing backend/protocol work on Ethereum, you should have significant experience with Go, Rust, Java, .NET, Ruby, or Python.

Front-End Interfaces

Drizzle Drizzle
Drizzle

A collection of front-end libraries that make writing decentralized application front-ends easier and more predictable. Drizzle provides a Redux library to connect a front-end to a blockchain.

Ethers.js Ethers.js
Ethers.js

Ethereum wallet implementation and utilities in JavaScript.

Web3.js Web3.js
Web3.js

An Ethereum JavaScript API which connects to the Generic JSON RPC specification. A local or remote Ethereum node must be run to use this library.

Backend Interfaces

Web3j Web3j
Web3j

A lightweight Java and Android library for integration with Ethereum clients.

Nethereum Nethereum
Nethereum

A .NET integration library for Ethereum that allows users to interact with Ethereum clients like Geth or Parity using RPC.

Web3.py Web3.py
Web3.py

A Python implementation of Web3.js.

Storage

Ethereum allows you to save variables or data in permanent storage. The storage platforms below are where all of the smart contract data lives. IPFS is the most commonly used storage system on Ethereum. Explore the platforms below to learn more about how storage on Ethereum works.

3Box 3Box
3Box

3Box is a secure and decentralized user data storage system. 3Box allows front-end web developers to keep user data on an open storage network instead of a centralized database server, browser localStorage, or the blockchain.

OrbitDB OrbitDB
OrbitDB

A decentralized peer-to-peer database on top of IPFS.

Swarm Swarm
Swarm

A distributed storage platform and content distribution service for the Ethereum Web3 stack.

IPFS IPFS
IPFS

InterPlanetary File System is a decentralized storage and file referencing system for Ethereum.

Analytics

Blockchains store data in ways most apps find difficult to access. The following data query layer APIs will enable you to obtain the data you need for your project or application.

3Box 3Box
3Box

3Box is a secure and decentralized user data storage system. 3Box allows front-end web developers to keep user data on an open storage network instead of a centralized database server, browser localStorage, or the blockchain.

Alethio Alethio
Alethio

Alethio's API gives you a robust and reliable way to query synthesized, indexed Ethereum data in real-time via a JSON:API compliant REST interface.

EthStats EthStats
EthStats

EthStats is powered by Alethio and provides instant Ethereum blockchain monitoring from block time to gas limit.

Etherscan Etherscan
Etherscan

Etherscan provides Ethereum blockchain APIs as a community service and without warranty.

Opportunities

Now that you know the tools you need, it’s time to get started. The way developers work is changing especially in the blockchain industry. The following places offer freelance developer work or new opportunities to get paid contributing to open source projects. Find out how you can start contributing to projects and get paid for it!

Consensys Grants Consensys Grants
Consensys Grants

Consensys Grants funds projects that meet the needs of a rapidly accelerating Ethereum ecosystem.

Tachyon Tachyon
Tachyon

Tachyon is an accelerator for early-stage blockchain and Web 3.0 startups.

Blockchain Developer Job Kit Blockchain Developer Job Kit
Blockchain Developer Job Kit

Where to find blockchain jobs, skills required, industry knowledge, and more.

Panvala Panvala
Panvala

Panvala is a decentralized foundation that helps fund the work that the whole Ethereum community depends on.

Bounties Network Bounties Network
Bounties Network

The Bounties Network lets you create projects, collaborate, and get paid for doing great work in any domain.

Gitcoin Gitcoin
Gitcoin

Get paid in crypto for freelance jobs, building features, and solving bug bounties. Work with top open source projects and get paid out fast.

Layer 2 Infrastructure & Scalability

Ethereum developers are continuously developing new and exciting ways to scale Ethereum. There are various solutions that developers are using to scale Ethereum, dapps, and protocols. Some of these include payments, state channels, sidechains, off-chain computation, and many more!

Payments & State Channels

Connext Network Connext Network
Connext Network

Connext is an infrastructure layer that scales the Ethereum blockchain utilizing state channels.

µRaiden µRaiden
µRaiden

µRaiden (Micro Raiden) is a payment channel framework for frequent, fast and free ERC20 token based micropayments between two parties. µRaiden is different from the Raiden Network which aims to allow for multihop transfers via a network of bidirectional payment channels.

Liquality Liquality
Liquality

Atomic swaps between BTC, DAI, and ETH with minimal risk and fees, while maintaining control over your private keys.

Sidechains

Skale Network Skale Network
Skale Network

SKALE’s modular protocol is one of the first of its kind to allow developers to easily provision highly configurable blockchains, which provide the benefits of decentralization without compromising on computation, storage, or security.

Loom Network Loom Network
Loom Network

Self-described as EOS built on top of Ethereum –– Loom Network is building an SDK that enables developers to quickly build their own blockchains without having to understand blockchain infrastructure.

POA Network POA Network
POA Network

POA (Proof of Authority) Network offers blockchain products and services to help scale Ethereum smart contracts including POA Bridge, POA Core mainnet, POA Sokol testnet, xDAI, and more.