# Awesome Web3

A curated list of awesome Web3 resources, libraries, tools and more.

Please check the [contribution guidelines](https://docs.tenten.co/awesome/web3/awesome-web3/contributing) for information on formatting and writing pull requests.

* [Awesome Web3](#awesome-web3)
  * [Awesome List](#awesome-list)
  * [Reference](#reference)
  * [Software Development](#software-development)
    * [Sample Code](#sample-code)
    * [Development Environment](#development-environment)
    * [Protocol](#protocol)
    * [JavaScript](#javascript)
    * [Solidity](#solidity)
    * [Go](#go)
    * [C/C++](#cc)
    * [Rust](#rust)
    * [Shell](#shell)
    * [Python](#python)
    * [VMs](#vms)
    * [Boilerplate](#boilerplate)
    * [Testing](#testing)
    * [Code Quality](#code-quality)
  * [Open Source Project](#open-source-project)
  * [Tutorial](#tutorial)
  * [YouTube Channel](#youtube-channel)
  * [Book](#book)
  * [Podcast](#podcast)
  * [Newsletter](#newsletter)
  * [Platform as a Service](#platform-as-a-service)
  * [Other](#other)
  * [Contribute](#contribute)

## Awesome List

* [Solidity](https://github.com/bkrem/awesome-solidity) - Curated list of awesome Solidity resources, libraries, tools and more.
* [Ethereum](https://github.com/bekatom/awesome-ethereum) - Awesome Ethereum & Dapps Resources.

## Reference

* [BIPs](https://github.com/bitcoin/bips) - Bitcoin Improvement Proposals.
* [EIPs](https://eips.ethereum.org/all) - Ethereum Improvement Proposals.
* [Ethereum Yellow Paper](https://github.com/ethereum/yellowpaper) - Formal definition of the Ethereum protocol.
* [EVM Illustrated](https://github.com/takenobu-hs/ethereum-evm-illustrated/blob/master/ethereum_evm_illustrated.pdf) - Illustrated explanation of how EVM works under the hood.
* [EVM Opcodes](https://www.ethervm.io) - Low level reference for the EVM and a Solidity decompiler which turns bytecode into more readable Solidity-like code.
* [evm.codes](https://www.evm.codes) - An interactive reference to Ethereum Virtual Machine Opcodes ([source code](https://github.com/comitylabs/evm.codes)).
* [Solidity](https://docs.soliditylang.org) - Solidity is an object-oriented, high-level language for implementing smart contracts.

## Software Development

### Sample Code

* [Solidity by Example](https://solidity-by-example.org) - Basic examples on Solidity.

### Development Environment

* [Brownie](https://github.com/eth-brownie/brownie) - Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine.
* [Ethereum Code Viewer](https://github.com/dethcrypto/ethereum-code-viewer) - View source of deployed Ethereum smart contracts in VS Code.
* [EthFiddle](https://ethfiddle.com) - Web-based IDE that lets you write, compile, and debug your smart contract.
* [Hardhat](https://hardhat.org/) - Development environment to compile, deploy, test, and debug your Ethereum software.
* [Remix](https://remix.ethereum.org/) - Online IDE for Solidity development.

### Protocol

* [WalletConnect](https://github.com/WalletConnect) - Open protocol connecting wallets to Dapps.
* [WalletLink](https://github.com/walletlink/walletlink) - Open protocol that lets users connect their mobile wallets to your DApp.
* [IPFS](https://ipfs.io) - Distributed system for storing and accessing files, websites, applications, and data.

### JavaScript

* [avalanchejs](https://github.com/ava-labs/avalanchejs) - JavaScript Library for interfacing with the Avalanche Platform.
* [Avalanche Wallet SDK](https://github.com/ava-labs/avalanche-wallet-sdk) - Typescript library to create and manage wallets on the Avalanche network.
* [BitcoinJS](https://github.com/bitcoinjs/bitcoinjs-lib) - Bitcoin library for node.js and browsers.
* [dapparatus](https://github.com/austintgriffith/dapparatus) - Reusable dApp components in React.
* [ethers.js](https://github.com/ethers-io/ethers.js/) - Complete Ethereum wallet implementation and utilities in JavaScript (and TypeScript).
* [ipfs-mini](https://github.com/silentcicero/ipfs-mini) - Super tiny module for querying an IPFS node, that works in the browser and in Node.
* [js-ipfs](https://github.com/ipfs/js-ipfs) - IPFS implementation in JavaScript.
* [Truffle](https://github.com/trufflesuite/truffle) - Development environment, testing framework and asset pipeline for Ethereum.
* [wagmi](https://github.com/tmm/wagmi) - React hooks library for Ethereum.
* [web3.js](https://github.com/ethereum/web3.js) - Ethereum JavaScript API which connects to the Generic JSON-RPC spec.
* [web3-react](https://github.com/NoahZinsmeister/web3-react) - Simple, maximally extensible, dependency minimized framework for building modern Ethereum dApps.

### Solidity

* [Date and Time tools](https://github.com/pipermerriam/ethereum-datetime) - Contract which implements utilities for working with datetime values in ethereum.
* [OpenZeppelin](https://github.com/OpenZeppelin/openzeppelin-contracts) - The standard for secure blockchain applications.

### Go

* [avalanchego](https://github.com/ava-labs/avalanchego) - Go implementation of an Avalanche node.
* [avalanche-network-runner](https://github.com/ava-labs/avalanche-network-runner) - Tool to run and interact with an Avalanche network locally.
* [ava-sim](https://github.com/ava-labs/ava-sim) - Helper tool to spin up a local instance of an Avalanche network to interact with the standard APIs or to test a custom VM.
* [ethereum-hdwallet](https://github.com/miguelmota/go-ethereum-hdwallet) - Ethereum HD Wallet derivations from seed which implements the go-ethereum's accounts.Wallet interface.
* [coreth](https://github.com/ava-labs/coreth) - Code and wrapper to extract Ethereum blockchain functionalities without network/consensus, for building custom blockchain services.
* [geth](https://geth.ethereum.org) - Official Go implementation of the Ethereum protocol.
* [subnet-cli](https://github.com/ava-labs/subnet-cli) - CLI tool to manage Avalanche Subnets.

### C/C++

* [Trust Wallet Core](https://github.com/trustwallet/wallet-core) - Cross-platform, mobile-focused library implementing low-level cryptographic wallet functionality for a high number of blockchains.

### Rust

* [OpenEthereum](https://github.com/openethereum/openethereum) - The fast, light, and robust client for the Ethereum mainnet.

### Shell

* [avash](https://github.com/ava-labs/avash) - Avalanche shell client provides temporary stateful shell execution environment used to deploy networks locally, manage their processes, and run network tests.

### Python

* [py-evm](https://github.com/ethereum/py-evm) - Ethereum protocol implementation in Python.
* [Vyper](https://github.com/vyperlang/vyper) - Contract-oriented, pythonic programming language that targets EVM.

### VMs

* [evmone](https://github.com/ethereum/evmone) - C++ implementation of the Ethereum Virtual Machine (EVM), faster.
* [SpacesVM](https://github.com/ava-labs/spacesvm) - SpacesVM enables authenticated, hierarchical storage of arbitrary keys/values using any EIP-712 compatible wallet.

### Boilerplate

* [scaffold-eth](https://github.com/scaffold-eth/scaffold-eth) - Ethereum dev stack focused on fast product iterations.
* [create-eth-app](https://github.com/paulrberg/create-eth-app) - Create Ethereum-powered apps with one command, similar to create-react-app.
* [next-web3-boilerplate](https://github.com/SoxZz5/next-web3-boilerplate) - Boilerplate in TypeScript using Next.js, NextAuth.js, siwe, Web3modal, useDapp, next-i18next, reactMUI.

### Testing

* [mock-contract](https://github.com/gnosis/mock-contract) - Simple Solidity contract to mock dependent contracts in truffle tests.
* [openzeppelin-test-helpers](https://github.com/OpenZeppelin/openzeppelin-test-helpers) - Assertion library for Ethereum smart contract testing that you can use with hardhat.
* [solidity-coverage](https://github.com/sc-forks/solidity-coverage) - Code coverage for Solidity smart-contracts.
* [Waffle](https://github.com/EthWorks/Waffle) - Library for writing and testing smart contracts.

### Code Quality

* [Slither](https://github.com/crytic/slither) - Solidity static analysis framework, a suite of vulnerability detectors, prints visual information about contract details etc.
* [solhint](https://github.com/protofire/solhint) - Solidity linter providing Security and Style Guide validations.

## Open Source Project

* [Blockscout](https://github.com/blockscout/blockscout) - Blockchain explorer for Ethereum based network and a tool for inspecting and analyzing EVM based blockchains.
* [MetaMask](https://github.com/MetaMask/metamask-extension) - Browser extension of MetaMask crypto wallet.
* [Rabby](https://github.com/RabbyHub/Rabby) - Browser extension crypto wallet for the DeFi ecosystem that works multi-chain.
* [Rainbow](https://github.com/rainbow-me/rainbow) - Open source Ethereum wallet.
* [Remix](https://github.com/ethereum/remix-project) - Browser-based compiler and IDE that enables users to build Ethereum contracts with Solidity language and to debug transactions.
* [UniSwap](https://github.com/Uniswap) - Decentralized trading protocol on Ethereum.

## Tutorial

* [useWeb3](https://www.useweb3.xyz) - Learning platform for developers to explore and learn about Web3.
* [CryptoZombies](https://cryptozombies.io) - Interactive school that teaches you all things technical about blockchains.
* [Figment Learn](https://learn.figment.io) - Tutorials for various use cases and networks, Avalanche, Solana, Polygon and more.
* [Buildspace](https://buildspace.so/) - Cohort based web3 development courses, learn by building projects.
* The complete guide to full stack Solana development with React, Anchor, Rust, and Phantom. - [link](https://dev.to/dabit3/the-complete-guide-to-full-stack-solana-development-with-react-anchor-rust-and-phantom-3291)
* The complete guide to full stack Ethereum development. - [link](https://dev.to/dabit3/the-complete-guide-to-full-stack-ethereum-development-3j13)
* Building a full stack NFT marketplace on Ethereum with Polygon. - [link](https://dev.to/dabit3/building-scalable-full-stack-apps-on-ethereum-with-polygon-2cfb)
* Uploading files to IPFS from a web application. - [link](https://dev.to/dabit3/uploading-files-to-ipfs-from-a-web-application-50a)
* Create your own NFT collection on Ethereum with Solidity. - [link](https://eda.hashnode.dev/create-your-own-nft-collection-on-ethereum)
* Intro to dApp's: Create your dApp backend with Solidity. - [link](https://eda.hashnode.dev/intro-to-dapps-create-your-dapp-backend-withsolidity)
* Intro to dApp's: Create your dApp frontend with React. - [link](https://eda.hashnode.dev/intro-to-dapps-create-your-dapp-frontend-withreact)
* What is a crypto wallet & how does it work? - [link](https://eda.hashnode.dev/what-is-a-crypto-wallet-and-how-does-it-work)
* Create your cryptocurrency token. - [link](https://eda.hashnode.dev/create-your-own-cryptocurrency-token)
* Solidity and Truffle CI setup. - [link](https://ethereum.org/en/developers/tutorials/solidity-and-truffle-continuous-integration-setup)
* How to use Slither to find smart contract bugs. - [link](https://ethereum.org/en/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs)
* How to mock Solidity smart contracts for testing. - [link](https://ethereum.org/en/developers/tutorials/how-to-mock-solidity-contracts-for-testing)
* Building EVM from scratch. - [link](https://karmacoma.notion.site/Building-an-EVM-from-scratch-part-1-c28ebb4200c94f6fb75948a5feffc686) [source code](https://github.com/karmacoma-eth/yolo-evm/tree/evm-from-scratch-pt1)

## YouTube Channel

* [Chainlink](https://www.youtube.com/c/chainlink/playlists) - Videos about blockchain basics, oracles, Free Code Camp and more.
* [EatTheBlocks](https://www.youtube.com/c/EatTheBlocks/playlists) - Numerous hands-on development tutorial videos on blockchain Solidity smart contracts.
* [Nader Dabit](https://www.youtube.com/c/naderdabit/playlists) - Tutorials and live coding on dApps, NFTs, DeFi and more.
* [Patrick Collins](https://www.youtube.com/c/PatrickCollins/playlists) - Smart contract development with Solidity.

## Book

* [Ethereum development with Go](https://goethereumbook.org/en)
* [Mastering Ethereum](https://github.com/ethereumbook/ethereumbook)

## Podcast

* [Into the Ether](https://podcast.ethhub.io)
* [Mapping Out Eth 2.0](https://www.coindesk.com/podcasts/mapping-out-eth-2-0/) - Development of Ethereum 2.0.
* [BAT Community](https://basicattentiontoken.libsyn.com/website) - BAT, Brave and tech underneath.

## Newsletter

* [Week in Web3](https://linktr.ee/weekinweb3)
* [EthHub Weekly](https://ethhub.substack.com)

## Platform as a Service

* [Alchemy](https://www.alchemy.com)
* [Infura](https://infura.io)
* [Moralis](https://moralis.io)
* [QuickNode](https://www.quicknode.com)
* [Thirdweb](https://thirdweb.com)
* [Meson Network](https://meson.network)

## Other

* [Chainlist](https://chainlist.org) - List of EVM networks, Chain IDs and Network IDs.

## Contribute

Contributions are welcomed! Please read the [contribution guidelines](https://docs.tenten.co/awesome/web3/awesome-web3/contributing) first.
