Skip to content

Latest commit

 

History

History
1076 lines (903 loc) · 99.8 KB

README.md

File metadata and controls

1076 lines (903 loc) · 99.8 KB

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.
  • Geth - Go client
  • Erigon - a mostly Go implementation of Ethereum client built on the efficiency frontier
  • Akula - Rust implementation
  • Nethermind - .NET Core client
  • Infura - A managed service providing Ethereum client standards-compliant APIs
  • Trinity - Python client using py-evm
  • Ethereumjs - JS client using ethereumjs-vm
  • Seth - Seth is an Ethereum client tool—like a "MetaMask for the command line"
  • Quorum - A permissioned implementation of Ethereum supporting data privacy by JP Morgan
  • Awesome Quorum - A curated list of awesome software, libraries, tools and more to build on ConsenSys Quorum.
  • Chainstack - A managed service providing shared and dedicated Geth nodes
  • QuikNode - Blockchain developer cloud with API access and node-as-a-service.
  • Watchdata - Provide simple and reliable API access to Ethereum blockchain

Storage

  • DB3 Network - Decentralized Firebase Firestore Alternative.
  • IPFS - Decentralised storage and file referencing
  • Mahuta - IPFS Storage service with added search capability, formerly IPFS-Store
  • OrbitDB - Decentralised database on top of IPFS
  • JS IPFS API - A client library for the IPFS HTTP API, implemented in JavaScript
  • TEMPORAL - Easy to use API into IPFS and other distributed/decentralised storage protocols
  • PINATA - The Easiest Way to Use IPFS
  • Swarm - Distributed storage platform and content distribution service, a native base layer service of the Ethereum web3 stack
  • Infura - A managed IPFS API Gateway and pinning service
  • Aleph.im - an offchain incentivized peer-to-peer cloud project (database, file storage, computing and DID) compatible with ETH and IPFS.
  • dAppling Network - Uses IPFS for quick and easy decentralized web hosting.
  • Fleek - similar to netlify but uses ipfs for hosting websites.

Bootstrap/Out-of-Box tools

  • Truffle boxes - Packaged components for the Ethereum ecosystem
  • Create Eth App - Create Ethereum-powered frontend apps with one command
  • Besu Private Network - Run a private network of Besu nodes in a Docker container
  • Testchains - Pre-configured .NET devchains for fast response (PoA)
  • Blazor/Blockchain Explorer - Wasm blockchain explorer (functional sample)
  • 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
  • Kaleido - Use Kaleido for spinning up a consortium blockchain network. Great for PoCs and testing
  • Cheshire - A local sandbox implementation of the CryptoKitties API and smart contracts, available as a Truffle Box
  • aragonCLI - aragonCLI is used to create and develop Aragon apps and organizations.
  • ColonyJS - JavaScript client that provides an API for interacting with the Colony Network smart contracts.
  • ArcJS - Library that facilitates javascript application access to the DAOstack Arc ethereum smart contracts.
  • Onboard.js - Blocknative Onboard is the quick and easy way to add multi-wallet support to your project. With built-in modules for more than 20 unique hardware and software wallets, Onboard saves you time and headaches.
  • web3-react - React framework for building single-page Ethereum dApps

Ethereum ABI (Application Binary Interface) tools

  • ABI decoder - library for decoding data params and events from Ethereum transactions
  • ABI-gen - Generate Typescript contract wrappers from contract ABI's.
  • Ethereum ABI UI - Auto-generate UI form field definitions and associated validators from an Ethereum contract ABI
  • headlong - type-safe Contract ABI and Recursive Length Prefix library in Java
  • EasyDapper - Generate dapps from Truffle artifacts, deploy contracts on public/private networks, offers live customizable public page to interact with contracts.
  • One Click dApp - Instantly create a dApp at a unique URL using the ABI.
  • Truffle Pig - a development tool that provides a simple HTTP API to find and read from Truffle-generated contract files, for use during local development. Serves fresh contract ABIs over http.
  • Ethereum Contract Service - A MESG Service to interact with any Ethereum contract based on its address and ABI.
  • Nethereum-CodeGenerator - A web based generator which creates a Nethereum based C# Interface and Service based on Solidity Smart Contracts.

Testing Tools

  • Solidity code coverage - Solidity code coverage tool
  • Solidity coverage - Alternative code coverage for Solidity smart-contracts
  • Solidity function profiler - Solidity contract function profiler
  • Sol-profiler - Alternative and updated Solidity smart contract profiler
  • Espresso - Speedy, parallelised, hot-reloading solidity test framework
  • Eth tester - Tool suite for testing Ethereum applications
  • Cliquebait - Simplifies integration and accepting testing of smart contract applications with docker instances that closely resembles a real blockchain network
  • Hevm - The hevm project is an implementation of the Ethereum virtual machine (EVM) made specifically for unit testing and debugging smart contracts
  • Ethereum graph debugger - Solidity graphical debugger
  • Tenderly CLI - Speed up your development with human readable stack traces
  • Solhint - Solidity linter that provides security, style guide and best practice rules for smart contract validation
  • Ethlint - Linter to identify and fix style & security issues in Solidity, formerly Solium
  • Decode - npm package which parses tx's submitted to a local testrpc node to make them more readable and easier to understand
  • truffle-assertions - An npm package with additional assertions and utilities used in testing Solidity smart contracts with truffle. Most importantly, it adds the ability to assert whether specific events have (not) been emitted.
  • Psol - Solidity lexical preprocessor with mustache.js-style syntax, macros, conditional compilation and automatic remote dependency inclusion.
  • solpp - Solidity preprocessor and flattener with a comprehensive directive and expression language, high precision math, and many useful helper functions.
  • Decode and Publish – Decode and publish raw ethereum tx. Similar to https://live.blockcypher.com/btc-testnet/decodetx/
  • Doppelgänger - a library for mocking smart contract dependencies during unit testing.
  • glide.r - a tool for performing smart contract queries (audit/bug-bounty).
  • rocketh - A simple lib to test ethereum smart contract that allow to use whatever web3 lib and test runner you choose.
  • pytest-cobra - PyTest plugin for testing smart contracts for Ethereum blockchain.
  • ERCx - Testing tool with a Web interface to test conformance and properties of ERC-20 tokens. Based on Foundry forge.

Transaction Visualization, Scoring & Tracking:

What's next?

Work...?

Support Me:

The best thing is to support me directly by donating to my address on Ethereum Main-net or any of the compatible networks or to any address from the list below:

Thank you! Stay safe!