# Awesome Web3

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

Please check the [contribution guidelines](/awesome/web3/awesome-web3/contributing.md) 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](/awesome/web3/awesome-web3/contributing.md) first.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tenten.co/awesome/web3/awesome-web3.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
