Skip to content

Latest commit

 

History

History
922 lines (652 loc) · 78 KB

README.md

File metadata and controls

922 lines (652 loc) · 78 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.

Support Project Supported by GitCoin Supported by LEGO Research Base Mail

Translations

Roadmap

Roadmap

Navigation

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

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

Smart Contract

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:

  • eth-cli - CLI tools.
  • REPL - Solidity REPL.
  • Remix - Online realtime compiler and runtime.
  • gencall-cli - An interractive smart contract encoder and sender from your ABI file
  • Optimize Solidity Function Name - Optimize function names to reduce costs
  • solc-typed-ast compiler - TypeScript package providing a normalized typed Solidity AST along with the utilities necessary to generate the AST (from Solc) and traverse/manipulate it.

dApps

  • Get familiar with tools that you will be using:

Package Managers

IDE's

Practice

ZK-SNARKs

General info

  • ZoKrates - A toolbox for zkSNARKS on Ethereum
  • The AZTEC Protocol - Confidential transactions on the Ethereum network, implementation is live on the Ethereum main-net
  • Nightfall - Make any ERC-20 / ERC-721 token private - open source tools & microservices
  • Proxy Re-encryption (PRE)
  • NuCypher Network - A proxy re-encryption network to empower data privacy in decentralized systems
  • pyUmbral - Threshold proxy re-encryption cryptographic library
  • Fully Homomorphic Encryption (FHE)
  • NuFHE - GPU accelerated FHE library

ZK-STARKs

Frameworks

Truffle Suit

ZeppelinOS

Labs.Superblock

Note: Superblocks is depreciated

Infura (A Gateway to Ethereum)

Other Frameworks

  • Frameworks List - Ethereum Frameworks Listing.
  • Hardhat - Flexible, extensible and fast Ethereum development environment.
  • 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)
  • Dapp - Framework for DApp development, successor to DApple
  • 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).
  • Epirus - Java framework for building smart contracts.
  • Ether Jar Java integration library for Ethereum blockchain
  • Starport - A CLI tool for building sovereign IBC-enabled blockchains.

Interacting with Smart Contract

Python Ethereum Eco System

Distributed Storage Systems

Test Blockchain Networks

  • 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 resembles 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

Test Ether Faucets

Front End

UI Components

Further Readings

Inspired by:

Security & Safety:

DeFI

Ethereum Name Service

Non-Fungible Token (NFT):

Stable-Coins:

General information:

Side-Chains

EIP - 1559

Ethereum 2.0

MEV - Maximal Extractable Value / Miner Extractable Value:

Discucssion

Hack Incident Reporting

  • Rekt News - Anonymous platform for whistleblowers and DeFi detectives to present their information to the community.
  • Blockchain Threat Intelligence - Newsletter covering the latest security news, tools, events, vulnerabilities, and threats in the cryptocurrency landscape. Also supports this repo.
  • Blockchain Graveyard - A list of all massive security breaches or thefts involving blockchains.

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.

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
  • Aragon - DAO protocol. Contains aragonOS smart contract framework with focus on upgradeability and governance
  • 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

  • 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

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-web3.js - Javascript Web3 wrapper with automatic retries, access to Alchemy's enhanced APIs, and robust websocket connections.
  • 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
  • Subproviders - Several useful subproviders to use in conjunction with Web3-provider-engine (including a LedgerSubprovider for adding Ledger hardware wallet support to your dApp)
  • ethvtx - ethereum-ready & framework-agnostic redux store configuration. docs
  • 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.
  • 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
  • OpenEthereum - Rust client, formerly called Parity. On path to deprecation in favor of Erigon.
  • Aleth - C++ client
  • 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"
  • Mustekala - Ethereum Light Client project of Metamask
  • Exthereum - Elixir client
  • EWF Parity - Energy Web Foundation client for the Tobalaba test network
  • Quorum - A permissioned implementation of Ethereum supporting data privacy by JP Morgan
  • Awesome Quorum - A curated list of awesome softwares, libraries, tools and more to build on ConsenSys Quorum.
  • Mana - Ethereum full node implementation written in Elixir.
  • 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

  • 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
  • 3Box Storage - An api for user controlled, distrubuted storage. Built on top of IPFS and Orbitdb.
  • Aleph.im - an offchain incentivized peer-to-peer cloud project (database, file storage, computing and DID) compatible with ETH and IPFS.
  • 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
  • Parity Demo-PoA Tutorial - Step-by-Step tutorial for building a PoA test chain with 2 nodes with Parity authority round consensus
  • 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.
  • Arkane Connect - JavaScript client that provides an API for interacting with Arkane Network, a wallet provider for building user-friendly dapps.
  • 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

  • Truffle Teams - Zero-Config continuous integration for truffle projects
  • 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.
  • 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.

Transaction Visualization, Scoring & Tracking:

Support Project:

Support is very important to me, with it I can spend less time at work and do what I love - educating DeFi & Crypto users 💖

If you want to support my work, you can send me a donation to the address:

0xB25C5E8fA1E53eEb9bE3421C59F6A66B786ED77A — ERC20 & ETH (officercia.eth)

17Ydx9m7vrhnx4XjZPuGPMqrhw3sDviNTU - BTC

(👍 ͡❛ ͜ʖ ͡❛)👍