Skip to content

DeFi Developer roadmap is a curated Web3.0 Developer handbook which includes a list of the best tools for DApps, development resources and lifehacks.

License

Notifications You must be signed in to change notification settings

0xKMG/DeFi-Developer-Road-Map

 
 

Repository files navigation

DeFi Developer Road Map

Here we collect and discuss the best DeFi & Blockchain researches and tools - contributions are welcome.

Feel free to submit a pull request, with anything from small fixes to translations, docs or tools you'd like to add.

  • Disclaimer: All information (tools, links, articles, text, images, etc.) is provided for educational purposes only! All information is also based on data from public sources. You are solely responsible for your actions, not the author ❗️

Support Project

Translations:

Roadmap

Roadmap

Navigation

Alternative navigation ❗️

Translations
Topic Instant Link
Basics Explore
dApps Explore
Frameworks Explore
zk-snarks Explore
Further Readings Explore
Security Explore
DeFi Explore
ENS Explore
NFT Explore
Stable Coins Explore
General Info Explore
Side Chains Explore
MEV Explore
Tools Collection Explore
ETH 2.0 Explore
Front End Explore
Project Manag. Explore

| Special Notes:

Basics:

Ethereum

  • Learn the basics of Ethereum
  • Ethereum Virtual Machine (EVM): turing complete
  • Learn about Wallets, Accounts (EOA), Private/Public Keys
  • Learn about transactions, Gas, Metamask
  • Ethereum clients/Nodes, Geth
  • Infura infrastructure

EVM

Check out

Useful Information

Directions

Smart Contract

Resources to learn Solidity

Smart Contract Standards

  • ERCs - Ethereum Improvement Proposals

Tokens

Others

  • ERC-165 - Creates a standard method to publish and detect what interfaces a smart contract implements.
  • ERC-725 - A standard interface for a simple proxy account.
  • ERC-173 - A standard interface for ownership of contracts.

General Development Skills

Try this tools:

dApps

  • Get familiar with tools that you will be using:

Package Managers

IDE's

Practice

ZK-SNARKs

General info

ZK-STARKs

Frameworks

Truffle Suite

Akula

  • Akula - an implementation of Ethereum protocol ("client") written in Rust, based on Erigon architecture.

ZeppelinOS

Labs.Superblock

Note: Superblocks is depreciated

Infura (A Gateway to Ethereum)

NodeReal(A high-performance node service)

Other Frameworks

  • Frameworks List - Ethereum Frameworks Listing.
  • Hardhat - Flexible, extensible and fast Ethereum development environment.
  • Ape - The smart contract development tool for Pythonistas, Data Scientists, and Security Professionals.
  • Brownie - Brownie is a Python framework for deploying, testing and interacting with Ethereum smart contracts.
  • Embark - Framework for DApp development
  • Waffle - Framework for advanced smart contract development and testing, small, flexible, fast (based on ethers.js)
  • Etherlime - ethers.js based framework for Dapp deployment
  • Parasol - [Depreciated] Agile smart contract development environment with testing, INFURA deployment, automatic contract documentation and more. It features a flexible and unopinionated design with unlimited customizability
  • 0xcert - JavaScript framework for building decentralized applications
  • OpenZeppelin SDK - OpenZeppelin SDK: A suite of tools to help you develop, compile, upgrade, deploy and interact with smart contracts.
  • sbt-ethereum - A tab-completey, text-based console for smart-contract interaction and development, including wallet and ABI management, ENS support, and advanced Scala integration.
  • Cobra - A fast, flexible and simple development environment framework for Ethereum smart contract, testing and deployment on Ethereum virtual machine(EVM).
  • Ether Jar Java integration library for Ethereum blockchain
  • Starport - A CLI tool for building sovereign IBC-enabled blockchains.
  • Sign in with Ethereum | SIWE- Workflow to authenticate Ethereum accounts using message signing in order to establish a cookie-based web session that manages user metadata.
  • Foundry - A smart contract development toolchain for project compilation, dependency management, testing, deployments, on-chain interactions...
  • Solmate - These contracts have been audited but they were not developed with users in mind. They mainly seek to optimize gas and optimizations for smart contract development
  • Supercool - Relayer infra for meta-transaction and account-abstraction superpowers: automate smart contract interactions, create gasless transactions, and more.

Interacting with Smart Contract

Python Ethereum Eco System

Distributed Storage Systems

Test Blockchain Networks

  • Paradigm Faucet - claim testnet ETH here
  • Ethnode - Run an Ethereum node (Geth or Parity) for development, as easy as npm i -g ethnode && ethnode.
  • Ganache - App for test Ethereum blockchain with visual UI and logs
  • Kaleido - Use Kaleido for spinning up a consortium blockchain network. Great for PoCs and testing
  • Besu Private Network - Run a private network of Besu nodes in a Docker container
  • Orion - Component for performing private transactions by PegaSys
  • Artemis - Java implementation of the Ethereum 2.0 Beacon Chain by PegaSys
  • Cliquebait - Simplifies integration and accepting testing of smart contract applications with docker instances that closely resemble a real blockchain network
  • Local Raiden - Run a local Raiden network in docker containers for demo and testing purposes
  • Private networks deployment scripts - Out-of-the-box deployment scripts for private PoA networks
  • Local Ethereum Network - Out-of-the-box deployment scripts for private PoW networks
  • Ethereum on Azure - Deployment and governance of consortium Ethereum PoA networks
  • Ethereum on Google Cloud - Build Ethereum network based on Proof of Work
  • Infura - Ethereum API access to Ethereum networks (Mainnet, Ropsten, Rinkeby, Goerli, Kovan)
  • CloudFlare Distributed Web Gateway - Provides access to the Ethereum network through the Cloudflare instead of running your own node
  • Chainstack - Shared and dedicated Ethereum nodes as a service (Mainnet, Ropsten, Rinkeby)
  • Alchemy - Blockchain Developer Platform, Ethereum API, and Node Service (Mainnet, Ropsten, Rinkeby, Goerli, Kovan)
  • ZMOK - JSON-RPC Ethereum API (Mainnet, Rinkeby, Front-running Mainnet)
  • Watchdata - Provide simple and reliable API access to Ethereum blockchain
  • GetBlock - Blockchain RPC access to Ethereum blockchain and 50 + others

Test Ether Faucets

Front End

UI Components

Project management

  • Dework | Web3 Trello with token payments, credentials, bounties...
  • Wonderverse | Jira alternative with an intuitive task management system that allows DAOs to pay contributors and collaborate in their projects.

Important (security)

Further Readings

Inspired by:

Security & Safety:

Web2 cybersecurity
Web3 cybersecurity
  • Ethernaut by OpenZeppelin - A collection of Web3 wargamees inspired by OverTheWire in the context of the Ethereum Virtual Machine (EVM). Each level is a smart contract that needs to be hacked.
  • Damn Vulnerable Defi - An offensive security playground to learn red team cybersecurity in the context of DeFi and smart contracts. Examples include tasks where the users needs to stop the system from working, take out funds from a contract...
  • Damn Vulnerable DeFi | Foundry - Same as Damn Vulnerable DeFi but in the context of the foundry development framework.
Web3 CTF (Capture The Flag)
  • Capture the Ether - Traditional game consisting of a series of categorized challenges where the user earns points after every successful challenge. The goal is to make the isComplete() function return true.
  • Paradigm CTF

DeFI

Ethereum Name Service

Non-Fungible Token (NFT):

Stable-Coins:

General information:

Special Author's compilations:

Side-Chains

EIP - 1559

Ethereum 2.0

MEV - Maximal Extractable Value / Miner Extractable Value:

Discussion

Hacks in Web3

Tools Collection

Ethereum Tools

Libraries

  • dapp-bin - Ethereum repo providing implementations for many common data structures and utilities in Solidity, Serpent and LLL.
  • Solidity Collections - Collections of code snippets and utility libraries.
  • OpenZeppelin - Framework to build secure smart contracts.

Ideas

Popular Smart Contract Libraries

  • Zeppelin - Contains tested reusable smart contracts like SafeMath and OpenZeppelin SDK library for smart contract upgradeability
  • cryptofin-solidity - A collection of Solidity libraries for building secure and gas-efficient smart contracts on Ethereum.
  • Modular Libraries - A group of packages built for use on blockchains utilising the Ethereum Virtual Machine
  • DateTime Library - A gas-efficient Solidity date and time library
  • ARC - an operating system for DAOs and the base layer of the DAO stack.
  • 0x - DEX protocol
  • Token Libraries with Proofs - Contains correctness proofs of token contracts wrt. given specifications and high-level properties
  • Provable API - Provides contracts for using the Provable service, allowing for off-chain actions, data-fetching, and computation
  • ABDK Libraries for Solidity - Fixed-point (64.64 bit) and IEEE-754 compliant quad precision (128 bit) floating-point math libraries for Solidity

Patterns for Smart Contracts

Upgradeability

Developer Tools

  • Check out our blog!
  • CryptoFin Solidity Auditing Checklist - A checklist of common findings, and issues to watch out for when auditing a contract for a mainnet launch.
  • MythX - Security verification platform and tools ecosystem for Ethereum developers
  • Mythril - Open-source EVM bytecode security analysis tool
  • Oyente - Alternative static smart contract security analysis
  • Securify - Security scanner for Ethereum smart contracts
  • SmartCheck - Static smart contract security analyzer
  • Ethersplay - EVM disassembler
  • Evmdis - Alternative EVM disassembler
  • Hydra - Framework for cryptoeconomic contract security, decentralised security bounties
  • Solgraph - Visualise Solidity control flow for smart contract security analysis
  • Manticore - Symbolic execution tool on Smart Contracts and Binaries
  • Slither - A Solidity static analysis framework
  • Adelaide - The SECBIT static analysis extension to Solidity compiler
  • solc-verify - A modular verifier for Solidity smart contracts
  • Solidity security blog - Comprehensive list of known attack vectors and common anti-patterns
  • Awesome Buggy ERC20 Tokens - A Collection of Vulnerabilities in ERC20 Smart Contracts With Tokens Affected
  • Free Smart Contract Security Audit - Free smart contract security audits from Callisto Network
  • Piet - A visual Solidity architecture analyzer
  • Contract Library - Decompiler and vulnerability scanner for deployed contracts

Frontend Ethereum APIs

  • Web3.js - Javascript Web3
  • Eth.js - Javascript Web3 alternative
  • Ethers.js - Javascript Web3 alternative, useful utilities and wallet features
  • light.js A high-level reactive JS library optimized for light clients.
  • Web3Wrapper - Typescript Web3 alternative
  • Ethereumjs - A collection of utility functions for Ethereum like ethereumjs-util and ethereumjs-tx
  • Alchemy
  • flex-contract and flex-ether - Modern, zero-configuration, high-level libraries for interacting with smart contracts and making transactions.
  • ez-ens - Simple, zero-configuration Ethereum Name Service address resolver.
  • web3x - A TypeScript port of web3.js. Benefits includes tiny builds and full type safety, including when interacting with contracts.
  • Nethereum - Cross-platform Ethereum development framework
  • dfuse - A TypeScript library to use dfuse Ethereum API
  • Drizzle - Redux library to connect a frontend to a blockchain
  • Tasit SDK - A JavaScript SDK for making native mobile Ethereum dapps using React Native
  • useMetamask - a custom React Hook to manage Metamask in Ethereum ĐApp projects
  • WalletConnect - Open protocol for connecting Wallets to Dapps
  • Strictly Typed - Javascript alternatives
  • elm-ethereum
  • purescript-web3
  • ChainAbstractionLayer - Communicate with different blockchains (including Ethereum) using a single interface.
  • Delphereum - a Delphi interface to the Ethereum blockchain that allows for development of native dApps for Windows, macOS, iOS, and Android.
  • Torus - Open-sourced SDK to build dapps with a seamless onboarding UX
  • Fortmatic - A simple to use SDK to build web3 dApps without extensions or downloads.
  • Portis - A non-custodial wallet with an SDK that enables easy interaction with DApps without installing anything.
  • create-eth-app - Create Ethereum-powered front-end apps with one command.
  • Scaffold-ETH - Beginner friendly forkable github for getting started building smart contracts.
  • Jolly Roger - dApp framework using ethereum, builder, svelte and thegraph
  • Notify.js - Deliver real-time notifications to your users. With built-in support for Speed-Ups and Cancels, Blocknative Notify.js helps users transact with confidence. Notify.js is easy to integrate and quick to customize.

Backend Ethereum APIs

  • Web3.py - Python Web3
  • Web3.php - PHP Web3
  • Ethereum-php - PHP Web3
  • Web3j - Java Web3
  • Nethereum - .Net Web3
  • Ethereum.rb - Ruby Web3
  • rust-web3 - Rust Web3
  • ethers-rs - Ethers-rs
  • Web3.hs - Haskell Web3
  • KEthereum - Kotlin Web3
  • Eventeum - A bridge between Ethereum smart contract events and backend microservices, written in Java by Kauri
  • Ethereumex - Elixir JSON-RPC client for the Ethereum blockchain
  • Ethereum-jsonrpc-gateway - A gateway that allows you to run multiple Ethereum nodes for redundancy and load-balancing purposes. Can be ran as an alternative to (or on top of) Infura. Written in Golang.
  • EthContract - A set of helper methods to help query ETH smart contracts in Elixir
  • Ethereum Contract Service - A MESG Service to interact with any Ethereum contract based on its address and ABI.
  • Ethereum Service - A MESG Service to interact with events from Ethereum and interact with it.
  • Marmo - Python, JS, and Java SDK for simplifying interactions with Ethereum. Uses relayers to offload transaction costs to relayers.
  • Ethereum Logging Framework - provides advanced logging capabilities for Ethereum applications and networks including a query language, query processor, and logging code generation

Ethereum Clients

  • Besu - an open-source Ethereum client developed under the Apache 2.0 license and written in Java. The project is hosted by Hyperledger.