{"id":3483,"url":"https://github.com/bkrem/awesome-solidity","name":"awesome-solidity","description":"⟠ A curated list of awesome Solidity resources, libraries, tools and more","projects_count":214,"last_synced_at":"2026-08-09T03:00:28.292Z","repository":{"id":37404423,"uuid":"62893187","full_name":"bkrem/awesome-solidity","owner":"bkrem","description":"⟠ A curated list of awesome Solidity resources, libraries, tools and more","archived":false,"fork":false,"pushed_at":"2026-04-20T10:49:23.000Z","size":233,"stargazers_count":7035,"open_issues_count":25,"forks_count":998,"subscribers_count":163,"default_branch":"gh-pages","last_synced_at":"2026-07-20T19:04:33.063Z","etag":null,"topics":["awesome","awesome-list","contract-solidity","dapps","ethereum","linter-solidity","lists","resources","solidity","solidity-compiler","solidity-contracts","solidity-coverage","solidity-dapps","solidity-language","solidity-parser","solidity-security","solidity-web","web3","web3-dapp","web3-solidity"],"latest_commit_sha":null,"homepage":"https://bkrem.github.io/awesome-solidity","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bkrem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2016-07-08T14:07:27.000Z","updated_at":"2026-07-18T12:48:03.000Z","dependencies_parsed_at":"2026-05-29T04:00:23.652Z","dependency_job_id":null,"html_url":"https://github.com/bkrem/awesome-solidity","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bkrem/awesome-solidity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkrem%2Fawesome-solidity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkrem%2Fawesome-solidity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkrem%2Fawesome-solidity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkrem%2Fawesome-solidity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bkrem","download_url":"https://codeload.github.com/bkrem/awesome-solidity/tar.gz/refs/heads/gh-pages","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkrem%2Fawesome-solidity/sbom","scorecard":{"id":241728,"data":{"date":"2025-08-11","repo":{"name":"github.com/bkrem/awesome-solidity","commit":"7bd84031493d647dd896ddf0042da53ebb78db6a"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":6,"reason":"Found 20/30 approved changesets -- score normalized to 6","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:9: update your workflow using https://app.stepsecurity.io/secureworkflow/bkrem/awesome-solidity/build.yml/gh-pages?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/bkrem/awesome-solidity/build.yml/gh-pages?enable=pin","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'gh-pages'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 20 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T06:47:13.395Z","repository_id":37404423,"created_at":"2025-08-17T06:47:13.395Z","updated_at":"2025-08-17T06:47:13.395Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36433362,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-09T02:00:06.528Z","response_time":130,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2024-01-05T23:59:07.782Z","updated_at":"2026-08-09T03:00:28.295Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["License","Resources","Libraries","Tools","Editor Plugins","Languages"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003eAwesome Solidity\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/sindresorhus/awesome\"\u003e\n      \u003cimg alt=\"awesome list badge\" src=\"https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"#buildstatus\"\u003e\n      \u003cimg alt=\"build status badge\" src=\"https://github.com/bkrem/awesome-solidity/workflows/URLs/badge.svg\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/bkrem/awesome-solidity/graphs/contributors\"\u003e\n      \u003cimg alt=\"GitHub contributors\" src=\"https://img.shields.io/github/contributors/bkrem/awesome-solidity\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"http://makeapullrequest.com\"\u003e\n      \u003cimg alt=\"pull requests welcome badge\" src=\"https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat\"\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\n  \u003cp align=\"center\"\u003eA curated list of awesome \u003ca href=\"https://en.wikipedia.org/wiki/Solidity\"\u003eSolidity\u003c/a\u003e resources, libraries, tools and more.\u003c/p\u003e\n  \u003cp align=\"center\"\u003ePlease check the \u003ca href=\"CONTRIBUTING.md\"\u003econtribution guidelines\u003c/a\u003e for information on formatting and writing pull requests.\u003c/p\u003e\n\n\u003c/div\u003e\n\n### Contents\n\n- [Resources](#resources)\n  - [Official](#official)\n  - [Tutorials](#tutorials)\n  - [Articles](#articles)\n  - [Security](#security)\n    - [Audits](#audits)\n  - [Examples](#examples)\n    - [Educational](#educational)\n    - [Deployed on Ethereum Mainnet](#deployed-on-ethereum-mainnet)\n  - [Templates](#templates)\n  - [Books](#books)\n  - [Practice](#practice)\n  - [Jobs](#jobs)\n- [Libraries](#libraries)\n- [Tools](#tools)\n  - [General](#general)\n  - [Utility](#utility)\n  - [Audit](#audit)\n  - [DevOps](#devops)\n- [Languages](#languages)\n  - [JavaScript](#javascript)\n  - [TypeScript](#typescript)\n  - [Rust](#rust)\n  - [OCaml](#ocaml)\n- [Editor Plugins](#editor-plugins)\n  - [Eclipse](#eclipse)\n  - [Emacs](#emacs)\n  - [IntelliJ](#intellij)\n  - [Sublime](#sublime)\n  - [Vim](#vim)\n  - [Visual Studio Code](#visual-studio-code)\n- [License](#license)\n\n## Resources\n\n#### Official\n\n- [Cheatsheet](https://docs.soliditylang.org/en/latest/cheatsheet.html) - Cheat sheet from the official docs.\n- [Docs](https://docs.soliditylang.org/en/latest/) - Official documentation.\n- [Ethereum Stack Exchange](https://ethereum.stackexchange.com/) - Ethereum's Stack Exchange board.\n- [ethereum/solc-bin](https://github.com/ethereum/solc-bin) - Current and historical builds of the compiler.\n- [ethereum/solidity](https://github.com/ethereum/solidity/) - Source code.\n- [ethereum/solidity-examples](https://github.com/ethereum/solidity-examples) - Loose collection of example code.\n\n#### Tutorials\n\n- [buildspace.so](https://buildspace.so/) - Hands-on Web3 course for beginners. Free, with an NFT on completion.\n- [cryptodevhub.io](https://cryptodevhub.io/) - Community-driven effort to unite people interested in blockchain and crypto technologies.\n- [CryptoZombies](https://cryptozombies.io) - Interactive code school that teaches you to write smart contracts through building your own crypto-collectibles game.\n- [Discover Ethereum \u0026 Solidity (ludu.co)](https://www.ludu.co/course/ethereum) - Complete course that walks through building a decentralized Twitter clone using best practices.\n- [ExtropyIO/defi-bot](https://github.com/ExtropyIO/defi-bot) - Tutorial for building DeFi arbitrage bots.\n- [LearnXInY](https://learnxinyminutes.com/docs/solidity/) - Learn the language in 15 minutes (for experienced developers).\n- [manojpramesh/solidity-cheatsheet](https://github.com/manojpramesh/solidity-cheatsheet) - Cheat sheet and best practices.\n- [nishuzumi/Web3-Enterprise-level-engineering](https://github.com/nishuzumi/Web3-Enterprise-level-engineering) - Web3 Enterprise Engineering Writing Specification Tutorial [Chinese Language - 中文版].\n- [Questbook](https://www.questbook.app/) - University DAO offering free crypto-dev courses by leading developers.\n- [Solidity and Vyper cheat sheet](https://reference.auditless.com/cheatsheet) - Review both languages side by side.\n- [topmonks/solidity_quick_ref](https://topmonks.github.io/solidity_quick_ref/) - Syntax overview.\n- [useweb3.xyz/tutorials](https://www.useweb3.xyz/tutorials) - Curated list of free community tutorials built around specific projects, tasks, and challenges.\n- [willitscale/learning-solidity](https://github.com/willitscale/learning-solidity) - Complete guide to getting started, creating your own crypto, ICOs, and deployment.\n- [WTF Ethers](https://github.com/WTFAcademy/WTF-Ethers) - Open-source, community-reviewed Ethers.js tutorial in Chinese covering intro and advanced topics [Chinese Language - 中文版].\n- [WTF Solidity](https://github.com/AmazingAng/WTF-Solidity) - Open-source, community-reviewed tutorial in Chinese and English covering intro, advanced, and application topics.\n\n#### Articles\n\n- [Best Practices for Smart Contract Development (yos.io, Yos Riady, 2019)](https://yos.io/2019/11/10/smart-contract-development-best-practices/) - Developer handbook for smart contract developers.\n- [How to create an ERC20 Token and a Solidity Vendor Contract (medium.com, Emanuele Ricci, 2021)](https://stermi.medium.com/how-to-create-an-erc20-token-and-a-solidity-vendor-contract-to-sell-buy-your-own-token-8882808dd905) - Create your own ERC20 token and a vendor contract to handle the sell and buy process.\n- [soliditydeveloper.com/blog](https://soliditydeveloper.com/blog) - Concepts, guides, design patterns, and more.\n- [The Complete Guide to Full Stack Ethereum Development (dev.to, Nader Dabit, 2021)](https://dev.to/dabit3/the-complete-guide-to-full-stack-ethereum-development-3j13) - Build full-stack dApps with React, Ethers.js, contracts, and Hardhat.\n\n#### Security\n\n- [Capture the Ether](https://capturetheether.com/) - Game for hacking Ethereum smart contracts and learning security.\n- [Crypto-Virus/cream-finance-exploit-example](https://github.com/Crypto-Virus/cream-finance-exploit-example) - Example implementation of the Cream Finance flashloan exploit.\n- [crytic/awesome-ethereum-security](https://github.com/crytic/awesome-ethereum-security) - Curated list of Ethereum security references, guidance, tools, and more.\n- [crytic/building-secure-contracts](https://github.com/crytic/building-secure-contracts) - Guidelines and training material for writing secure smart contracts.\n- [crytic/not-so-smart-contracts](https://github.com/crytic/not-so-smart-contracts) - Examples of common vulnerabilities, including code from real smart contracts.\n- [d-xo/weird-erc20](https://github.com/d-xo/weird-erc20) - Minimal example implementations of ERC20 tokens with surprising/unexpected behaviour.\n- [Ethereum Smart Contract Security Best Practices (Consensys)](https://consensys.github.io/smart-contract-best-practices/) - General security philosophy, known attacks, and sample code.\n- [OriginProtocol/security](https://github.com/OriginProtocol/security) - Materials related to security: docs, checklists, processes.\n- [Rari-Capital/security-checklist](https://github.com/Rari-Capital/security-checklist) - Opinionated security and code quality checklist for smart contracts.\n- [SecDim](https://secdim.com) - Online edutainment platform with real-world smart contract security content and AppSec games.\n- [securing/SCSVS](https://github.com/securing/SCSVS) - Smart Contract Security Verification Standard.\n- [sigp/solidity-security-blog](https://github.com/sigp/solidity-security-blog) - Comprehensive list of known attack vectors and common anti-patterns.\n- [SunWeb3Sec/DeFiHackLabs](https://github.com/SunWeb3Sec/DeFiHackLabs) - Reproduce DeFi hack incidents using Foundry.\n\n##### Audits\n\n- [Arbitrary Execution](https://github.com/arbitraryexecution/publications/tree/main/assessments) - Public security audits by the Arbitrary Execution Team.\n- [Code4rena](https://code4rena.com/) - Auditors compete to identify and eliminate high-severity bugs before production.\n- [Consensys Diligence](https://consensys.net/diligence/audits/) - Public security audits by the Consensys Diligence Team.\n- [Hacken](https://hacken.io/audits/) - Public security audits by the Hacken Team.\n- [Immunefi](https://immunefi.com/) - Bug bounty platform focused on blockchain and smart contract security.\n- [MixBytes](https://github.com/mixbytes/audits_public) - Public security audits by the MixBytes Team.\n- [OpenZeppelin](https://blog.openzeppelin.com/security-audits/) - Public security audits by the OpenZeppelin Security Team.\n- [SpearbitDAO](https://github.com/spearbit/portfolio) - Public security audits by the SpearbitDAO Team.\n- [Trail of Bits](https://github.com/trailofbits/publications/tree/master/reviews) - Public security audits by the Trail of Bits Team.\n\n#### Examples\n\n##### Educational\n\n- [alephao/solidity-benchmarks](https://github.com/alephao/solidity-benchmarks) - Benchmarks of popular implementations of ERC standards.\n- [cyrusadkisson/solidity-baby-steps](https://github.com/cyrusadkisson/solidity-baby-steps) - Comprehensive collection of contract examples.\n- [flashbots/simple-arbitrage](https://github.com/flashbots/simple-arbitrage) - Example arbitrage bot using Flashbots.\n- [fravoll/solidity-patterns](https://github.com/fravoll/solidity-patterns) - Collection of patterns and best practices for smart contract development.\n- [kauri.io](https://kauri.io/) - Archive of kauri community's content created with the goal to foster the spread of Ethereum development knowledge far and wide.\n- [libevm/subway](https://github.com/libevm/subway) - Practical example of how to perform sandwich attacks on Ethereum.\n- [lsaether/bonding-curves](https://github.com/lsaether/bonding-curves) - Smart contracts for bonding curves (aka curve bonded tokens).\n- [m1guelpf/lil-web3](https://github.com/m1guelpf/lil-web3) - Simple, intentionally-limited versions of web3 protocols \u0026 apps.\n- [miguelmota/solidity-idiosyncrasies](https://github.com/miguelmota/solidity-idiosyncrasies) - Common gotchas, pitfalls, limitations, and idiosyncrasies.\n- [pedrobergamini/flashloaner-contract](https://github.com/pedrobergamini/flashloaner-contract) - Smart contracts that operate arbitrages between Sushiswap and Uniswap.\n- [raineorshine/solidity-by-example](https://github.com/raineorshine/solidity-by-example) - Collection of short yet fully functional contracts that demonstrate language features.\n- [Solidity By Example](https://solidity-by-example.org/) - Introduction to the language with simple examples.\n- [useWeb3 - Learn web3 development](https://www.useweb3.xyz/) - Curated overview of the best and latest Ethereum and Web3 development resources.\n- [WTF Academy - Web3 Open Academy](https://wtf.academy/) - DApp for learning smart contract development with quizzes and certificates [Chinese Language - 中文版].\n\n##### Deployed on Ethereum Mainnet\n\n- [Abracadabra-money/magic-internet-money](https://github.com/Abracadabra-money/magic-internet-money) - Magic Internet Money (MIM) contracts.\n- [andrecronje/rarity](https://github.com/andrecronje/rarity) - D20srd reference implementation.\n- [axieinfinity/ronin-smart-contracts](https://github.com/axieinfinity/ronin-smart-contracts) - Axie Infinity Ronin contracts.\n- [bancorprotocol/contract-solidity](https://github.com/bancorprotocol/contracts-solidity) - Bancor Protocol contracts.\n- [compound-finance/compound-protocol](https://github.com/compound-finance/compound-protocol) - Compound Protocol contracts.\n- [dharma-eng/dharma-smart-wallet](https://github.com/dharma-eng/dharma-smart-wallet) - Smart wallet for earning interest on stablecoins while retaining custody of funds, with an added security backstop provided by Dharma Labs.\n- [ensdomains/ens-contracts](https://github.com/ensdomains/ens-contracts) - Ethereum Name Service (ENS) contracts.\n- [graphprotocol/contracts](https://github.com/graphprotocol/contracts) - Graph Protocol Contracts.\n- [OlympusDAO/olympus-contracts](https://github.com/OlympusDAO/olympus-contracts) - OlympusDAO contracts.\n- [smartcontractkit/LinkToken](https://github.com/smartcontractkit/LinkToken) - LINK token contracts for the Chainlink Network.\n- [sushiswap/kashi-lending](https://github.com/sushiswap/kashi-lending) - Kashi Lending platform contracts.\n- [sushiswap/sushiswap](https://github.com/sushiswap/sushiswap) - Sushiswap smart contracts.\n- [trusttoken/smart-contracts](https://github.com/trusttoken/smart-contracts) - TrustToken smart contracts.\n- [Uniswap/uniswap-v3-core](https://github.com/Uniswap/uniswap-v3-core) - Core smart contracts of Uniswap v3.\n- [wyvernprotocol/wyvern-v3](https://github.com/wyvernprotocol/wyvern-v3) - Core smart contracts for Wyvern v3, a decentralized digital asset exchange protocol.\n\n#### Templates\n\n- [austintgriffith/scaffold-eth](https://github.com/austintgriffith/scaffold-eth) - GitHub template providing an Ethereum dev stack focused on fast product iterations.\n- [ethereum-boilerplate/ethereum-boilerplate](https://github.com/ethereum-boilerplate/ethereum-boilerplate) - React components and hooks to build dApps fast without running your own backend.\n- [gakonst/dapptools-template](https://github.com/gakonst/dapptools-template) - Forkable template to get you started with Dapp Tools.\n- [NodeFactoryIo/solidity-node-docker-starter](https://github.com/NodeFactoryIo/solidity-node-docker-starter) - GitHub template with Docker containers for building dApps with Truffle and Node.js as a backend server.\n- [paulrberg/solidity-template](https://github.com/paulrberg/solidity-template) - GitHub template for writing contracts with Hardhat, TypeChain, Ethers, Waffle, Solhint, Solcover, and a Prettier plugin.\n- [rhlsthrm/typescript-solidity-dev-starter-kit](https://github.com/rhlsthrm/typescript-solidity-dev-starter-kit) - Starter kit for developing, testing, and deploying smart contracts with a full TypeScript environment.\n- [tomhirst/solidity-nextjs-starter](https://github.com/tomhirst/solidity-nextjs-starter) - Full-stack dApp starter built with Next.js (React).\n- [transmissions11/foundry-template](https://github.com/transmissions11/foundry-template) - Streamlined template for getting started with Foundry and Solmate.\n- [wighawag/template-ethereum-contracts](https://github.com/wighawag/template-ethereum-contracts) - Template to develop smart contracts.\n- [ZumZoom/solidity-template](https://github.com/ZumZoom/solidity-template) - Hardhat template with preconfigured GitHub Actions and Coveralls support.\n\n#### Books\n\n- [Blockchain in Action](https://www.manning.com/books/blockchain-in-action) - Book that teaches the essential principles of blockchain and how to create your own decentralized apps.\n- [Mastering Ethereum](https://github.com/ethereumbook/ethereumbook) - Mastering Ethereum is a book for developers, offering a guide to the operation and use of the Ethereum, Ethereum Classic, RootStock (RSK) and other compatible EVM-based open blockchains.\n\n#### Practice\n\n- [ChainShot](https://www.chainshot.com/) - Hands-on learning with challenging coding tutorials.\n- [OpenZeppelin/damn-vulnerable-defi](https://github.com/OpenZeppelin/damn-vulnerable-defi) - Set of challenges to hack DeFi implementations on Ethereum.\n- [OpenZeppelin/ethernaut](https://github.com/OpenZeppelin/ethernaut) - Web3 wargame played in the Ethereum Virtual Machine. Each level is a smart contract that needs to be 'hacked'.\n- [Solidity-Challenges](https://github.com/passandscore/solidity-challenges) - Offers a wide range of challenges, from language-specific tasks to exploit-focused scenarios. Contributors are welcome to add new challenges.\n\n#### Jobs\n\n- [aworker.io](https://aworker.io/) - Job board for blockchain and cryptocurrency jobs.\n- [cryptocurrencyjobs.co](https://cryptocurrencyjobs.co/) - Job board for blockchain and cryptocurrency jobs.\n- [cryptojobslist.com](https://cryptojobslist.com/) - Job board for blockchain and cryptocurrency jobs.\n- [web3.career](https://web3.career) - Job board for blockchain and cryptocurrency jobs.\n\n## Libraries\n\n- [0age/AttributeRegistry](https://github.com/0age/AttributeRegistry) - ERC-1616 Attribute Registry standard interface, tests, and implementation.\n- [0age/HomeWork](https://github.com/0age/HomeWork) - Autonomous utility for finding, sharing, and reusing home addresses for contracts.\n- [0age/Spawner](https://github.com/0age/Spawner) - Spawn EIP 1167 minimal proxies with an included initialization step during contract creation.\n- [0xcert/ethereum-erc721](https://github.com/0xcert/ethereum-erc721) - Non-fungible token implementation for Ethereum-based blockchains.\n- [alexvansande/ENSTools](https://github.com/alexvansande/ENSTools) - Set of contracts that extends ENS functionality to other smart contracts.\n- [Arachnid/solidity-stringutils](https://github.com/Arachnid/solidity-stringutils) - Basic string utilities.\n- [dapp-bin](https://github.com/ethereum/dapp-bin) - Ethereum repo providing common data structures and utilities in multiple smart contract languages.\n- [dapphub/dappsys](https://github.com/dapphub/dappsys) - Contract system framework for flexible multi-contract dapps.\n- [dmihal/hardhat-interface-generator](https://github.com/dmihal/hardhat-interface-generator) - Hardhat plugin to automatically generate interfaces from code.\n- [EthWorks/Waffle](https://github.com/EthWorks/Waffle) - Library for writing and testing smart contracts.\n- [hifi-finance/prb-math](https://github.com/hifi-finance/prb-math) - Smart contract library for advanced fixed-point math.\n- [ItsNickBarry/hardhat-abi-exporter](https://github.com/ItsNickBarry/hardhat-abi-exporter) - Export contract ABIs on compilation via Hardhat.\n- [Keydonix/uniswap-oracle](https://github.com/Keydonix/uniswap-oracle) - General purpose price feed oracle built on Uniswap v2 that uses merkle proofs under the hood.\n- [makerdao/multicall](https://github.com/makerdao/multicall) - Aggregate multiple constant function call results into one.\n- [maple-labs/erc-20](https://github.com/maple-labs/erc-20) - Maple implementation of the ERC-20 standard.\n- [mattdf/RingCrypto](https://github.com/mattdf/RingCrypto) - Ring signature related implementations for Ethereum.\n- [mds1/solidity-trigonometry](https://github.com/mds1/solidity-trigonometry) - Library with basic trigonometry functions.\n- [Modular Libraries](https://github.com/modular-network/ethereum-libraries) - Deployed utility libraries to use in your smart contracts.\n- [mzhu25/sol2string](https://github.com/mzhu25/sol2string) - `LibUintToString` library for efficiently converting `uint256` values to strings.\n- [NTA-Capital/SolMATe](https://github.com/NTA-Capital/SolMATe) - Libraries for floating-point matrix manipulation, linear algebra operations, and vector math.\n- [OpenZeppelin/openzeppelin-contracts](https://github.com/OpenZeppelin/openzeppelin-contracts) - Library for secure smart contract development.\n- [OpenZeppelin/openzeppelin-contracts-upgradeable](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable) - Upgradeable variant of OpenZeppelin Contracts, meant for use in upgradeable contracts.\n- [optionality/clone-factory](https://github.com/optionality/clone-factory) - Simple clone contract factory. Install a master copy of a contract, then easily (cheaply) create clones with separate state.\n- [partylikeits1983/num_complex_solidity](https://github.com/partylikeits1983/num_complex_solidity) - Smart contract library for handling complex numbers.\n- [pcaversaccio/xdeployer](https://github.com/pcaversaccio/xdeployer) - Hardhat plugin to deploy your smart contracts across multiple EVM chains with the same deterministic address.\n- [rugpullindex/indexed-sparse-merkle-tree](https://github.com/rugpullindex/indexed-sparse-merkle-tree) - Dapptools-ready and gas-optimized implementation of a sparse merkle tree.\n- [Smart Contracts Skeleton](https://github.com/Shimmi/smart-contracts-skeleton) - Preconfigured skeleton repository for getting started with smart contract development.\n- [solana-labs/solana-solidity.js](https://github.com/solana-labs/solana-solidity.js) - Compile, deploy, and use contracts on Solana.\n- [Solidity Standard Library](https://github.com/alianse777/solidity-standard-library) - Standard library with array, random, math, and string helpers.\n- [solidstate-network/solidstate-solidity](https://github.com/solidstate-network/solidstate-solidity) - Upgradeable-first smart contract development library.\n- [studydefi/money-legos](https://github.com/studydefi/money-legos) - NPM package providing mainnet addresses, ABIs, and interfaces for popular DeFi protocols.\n- [ThirdWeb/Contracts](https://github.com/thirdweb-dev/contracts) - Pre-built contracts for Token, NFT, Governance and Marketplace from ThirdWeb.\n- [transmissions11/solmate](https://github.com/transmissions11/solmate) - Modern, opinionated, and gas-optimized building blocks for smart contract development.\n- [truffle-assertions](https://github.com/rkalis/truffle-assertions) - Adds assertions and utilities for testing smart contracts with Truffle.\n- [Unicode Ethereum Project](https://github.com/devstein/unicode-eth) - Libraries and contracts for Unicode data, algorithms, and utilities.\n- [Uniswap/merkle-distributor](https://github.com/Uniswap/merkle-distributor) - Smart contract that distributes a balance of tokens according to a merkle root.\n- [Uniswap/uniswap-v2-periphery](https://github.com/Uniswap/uniswap-v2-periphery) - Peripheral smart contracts for interacting with Uniswap V2.\n- [Uniswap/uniswap-v3-periphery](https://github.com/Uniswap/uniswap-v3-periphery) - Peripheral smart contracts for interacting with Uniswap V3.\n- [wbobeirne/eth-balance-checker](https://github.com/wbobeirne/eth-balance-checker) - Smart contract and library pair that allows you to check for multiple ERC20 and Ether balances across multiple addresses in a single RPC call.\n\n## Tools\n\n#### General\n\n- [Anish-Agnihotri/MultiFaucet](https://github.com/Anish-Agnihotri/MultiFaucet) - MultiFaucet drips ETH, tokens, and NFTs across many testnet networks, at once.\n- [create-truffle-dapp](https://github.com/clemlak/create-truffle-dapp) - CLI to create and deploy Truffle projects with no configuration.\n- [dapp-scratch](https://github.com/okwme/dapp-scratch) - CLI for generating JavaScript modules from contracts for decentralized apps.\n- [dapphub/dapptools](https://github.com/dapphub/dapptools) - Command-line-friendly tools for blockchain development.\n- [dethcrypto/ethereum-code-viewer](https://github.com/dethcrypto/ethereum-code-viewer) - View the source of deployed Ethereum contracts in VS Code.\n- [eagr/sol-repl](https://github.com/eagr/sol-repl) - Lightweight, feature-rich REPL for instant feedback.\n- [eth-brownie/brownie](https://github.com/eth-brownie/brownie) - Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine.\n- [EthereumStudio](https://github.com/ObsidianLabs/EthereumStudio) - Standalone desktop IDE.\n- [EthFiddle](https://ethfiddle.com/recent_fiddles) - Find, share and embed contracts.\n- [foundry-rs/foundry](https://github.com/foundry-rs/foundry) - Blazing fast, portable and modular toolkit for Ethereum application development written in Rust.\n- [Hardhat](https://hardhat.org/) - Development environment to compile, deploy, test, and debug your Ethereum software.\n- [instant-dapp-ide](https://github.com/dominicwilliams/instant-dapp-ide) - Complete dApp development environment as a Docker image you can run from the command line.\n- [Laika](https://getlaika.app) - Make requests to smart contracts without the hassle of writing a single line of code.\n- [naddison36/sol2uml](https://github.com/naddison36/sol2uml) - Unified Modeling Language (UML) class diagram generator for smart contracts.\n- [OpenZeppelin](https://openzeppelin.com/) - Framework to build secure smart contracts.\n- [raineorshine/solidity-repl](https://github.com/raineorshine/solidity-repl) - REPL CLI.\n- [Remix](https://remix.ethereum.org/) - Online real-time compiler and runtime.\n- [SIF](https://github.com/chao-peng/SIF) - Code generation from the AST, analyze and instrument source code.\n- [Smart Contract Sanctuary](https://github.com/tintinweb/smart-contract-sanctuary) - Home for Ethereum smart contracts, with verified contracts from Etherscan.\n- [sol-merger](https://github.com/RyuuGan/sol-merger) - Merge all imports into a single file for contracts.\n- [solgraph](https://github.com/raineorshine/solgraph) - Visualize control flows for smart contract security analysis.\n- [solidity-docgen](https://github.com/OpenZeppelin/solidity-docgen) - Documentation generator for smart contract projects.\n- [Sourcify](https://sourcify.dev/) - Decentralized and open-sourced smart contract verification service.\n- [Tenderly](https://tenderly.co) - Easily monitor your smart contracts with error tracking, alerting, performance metrics, and detailed contract analytics.\n- [tintinweb/solidity-shell](https://github.com/tintinweb/solidity-shell) - Interactive shell with lightweight session recording.\n- [Truffle](https://github.com/trufflesuite/truffle) - Development environment, testing framework, and asset pipeline for Ethereum.\n- [weiroll/weiroll](https://github.com/weiroll/weiroll) - Simple and efficient operation-chaining/scripting language for the EVM.\n\n#### Utility\n\n- [Aniket-Engg/sol-profiler](https://github.com/Aniket-Engg/sol-profiler) - CLI tool to list and store smart contract method attributes.\n- [Aniket-Engg/sol-verifier](https://github.com/Aniket-Engg/sol-verifier) - Verify smart contracts on Etherscan.\n- [cleanunicorn/abi2signature](https://github.com/cleanunicorn/abi2signature) - Use the ABI of a smart contract to find out the function signatures.\n- [crytic/solc-select](https://github.com/crytic/solc-select) - CLI to quickly switch between compiler versions.\n- [DiverseSolutions/Diverse-Eth-Calculator](https://github.com/DiverseSolutions/Diverse-Eth-Calculator) - Website with Ethereum unit conversion \u0026 utility components.\n- [duaraghav8/Ethlint](https://github.com/duaraghav8/Ethlint) - Linter to identify and fix style \u0026 security issues in smart contracts.\n- [ItsNickBarry/hardhat-contract-sizer](https://github.com/ItsNickBarry/hardhat-contract-sizer) - Output contract sizes with Hardhat.\n- [prettier-solidity/prettier-plugin-solidity](https://github.com/prettier-solidity/prettier-plugin-solidity) - Prettier plugin for automatically formatting your code.\n- [protofire/solhint](https://github.com/protofire/solhint) - Linter that provides security, style guide, and best practice rules for smart contract validation.\n- [rkalis/truffle-plugin-verify](https://github.com/rkalis/truffle-plugin-verify) - Truffle plugin to verify smart contracts on Etherscan and Sourcify from the Truffle command line.\n- [sambacha/prettier-config-solidity](https://github.com/sambacha/prettier-config-solidity) - Prettier config optimized to reduce AST churn and conform to the language spec.\n- [sc-forks/solidity-coverage](https://github.com/sc-forks/solidity-coverage) - Code coverage tool.\n- [Tenderly/tenderly-cli](https://github.com/Tenderly/tenderly-cli) - Speed up your development with error stack traces.\n- [tintinweb/solgrep](https://github.com/tintinweb/solgrep) - Scriptable semantic grep utility.\n\n#### Audit\n\n- [a16z/metamorphic-contract-detector](https://github.com/a16z/metamorphic-contract-detector) - Check whether a given contract exhibits red flags that could indicate the potential for metamorphism instead of immutability.\n- [Aderyn](https://github.com/Cyfrin/aderyn) - Rust-based open-source static analyzer for finding vulnerabilities in smart contracts.\n- [Echidna](https://github.com/crytic/echidna) - Define properties for your smart contract then use fuzzing to catch security bugs.\n- [eth-sri/securify2](https://github.com/eth-sri/securify2) - Tool for analyzing smart contracts for vulnerabilities and insecure coding.\n- [ethereum/sourcify](https://github.com/ethereum/sourcify) - Re-compiler for verifying that bytecode corresponds to specific source code.\n- [Manticore](https://github.com/trailofbits/manticore) - Detects many common bug types and can prove correctness properties with symbolic execution.\n- [Mythril](https://github.com/ConsenSys/mythril) - Security analysis tool for smart contracts.\n- [MythX](https://mythx.io/) - Detect security vulnerabilities in Ethereum smart contracts throughout the development lifecycle.\n- [Slither](https://github.com/crytic/slither) - Static analyzer with support for many common bug types, including visualization tools for security-relevant information.\n\n#### DevOps\n\n- [Embark](https://github.com/embark-framework/embark) - Framework that allows you to easily develop and deploy DApps.\n- [Moesif](https://www.moesif.com/docs/platform/ethereum-web3/) - Service that provides Ethereum smart contract analytics and anomaly detection for DApps and DAPIs.\n\n## Languages\n\n#### JavaScript\n\n- [deno-web3/solc](https://github.com/deno-web3/solc) - Compiler bindings for Deno.\n- [solc-js](https://github.com/ethereum/solc-js) - JavaScript bindings for the compiler.\n- [solidity-parser](https://github.com/federicobond/solidity-parser-antlr) - Parser built in JavaScript.\n- [sulk](https://github.com/lukehedger/sulk) - Configurable contract compilation.\n\n#### TypeScript\n\n- [Soltsice](https://github.com/Soltsice/Soltsice) - Generates strongly-typed TypeScript classes for contracts from Truffle artifacts with a single command.\n- [TypeChain](https://github.com/ethereum-ts/TypeChain) - TypeScript bindings for Ethereum smart contracts.\n\n#### Rust\n\n- [hyperledger-labs/solang](https://github.com/hyperledger-labs/solang) - Compiler targeting WASM and BPF, written in Rust.\n- [rust-ethereum/ethabi](https://github.com/rust-ethereum/ethabi) - Encode and decode smart contract invocations.\n\n#### OCaml\n\n- [ocaml-solidity](https://ocamlpro.github.io/ocaml-solidity/) - OCaml library providing a parser, a typechecker and miscellaneous utilities for manipulating contracts.\n\n## Editor Plugins\n\n#### Eclipse\n\n- [uml2solidity](https://github.com/UrsZeidler/uml2solidity) - Model smart contracts with UML.\n\n#### Emacs\n\n- [company-solidity](https://github.com/ssmolkin1/company-solidity) - Autocomplete with company-mode.\n- [emacs-solidity](https://github.com/ethereum/emacs-solidity) - Language mode for Emacs.\n\n#### IntelliJ\n\n- [intellij-solidity](https://github.com/intellij-solidity/intellij-solidity) - Language plugin for IntelliJ.\n\n#### Sublime\n\n- [SublimeEthereum](https://github.com/davidhq/SublimeEthereum) - Syntax package for Sublime Text.\n\n#### Vim\n\n- [solidity.vim](https://github.com/dmdque/solidity.vim) - Vim compiler plugin.\n- [vim-solidity](https://github.com/tomlion/vim-solidity) - Vim syntax file.\n\n#### Visual Studio Code\n\n\u003e 👉 For a comprehensive list, see [results for \"Solidity\" on Visual Studio Marketplace](https://marketplace.visualstudio.com/search?term=solidity\u0026target=VSCode\u0026category=All%20categories\u0026sortBy=Relevance).\n\n- [ConsenSys/vscode-solidity-auditor](https://github.com/ConsenSys/vscode-solidity-auditor) - Language support and visual security auditor for Visual Studio Code.\n- [Ethereum Security Bundle](https://marketplace.visualstudio.com/items?itemName=tintinweb.ethereum-security-bundle) - Meta-extension bundling marketplace plugins for secure Ethereum smart contract development.\n- [sol-profiler-vscode](https://github.com/Aniket-Engg/sol-profiler-vscode) - Visual Studio Code extension for generating and storing smart contract method profiles.\n- [Solidity + Hardhat](https://marketplace.visualstudio.com/items?itemName=NomicFoundation.hardhat-solidity) - Adds IDE support for contract development with formatting, linting, snippets, references, and more.\n- [Solidity Contract Flattener](https://marketplace.visualstudio.com/items?itemName=tintinweb.vscode-solidity-flattener) - Flatten contracts using `truffle-flattener`.\n- [Solidity Visual Developer](https://marketplace.visualstudio.com/items?itemName=tintinweb.solidity-visual-auditor) - Security-centric syntax and semantic highlighting, detailed class outlines, UML diagram generation, and more.\n- [Truffle for VS Code](https://marketplace.visualstudio.com/items?itemName=trufflesuite-csi.truffle-vscode) - Truffle for VS Code simplifies how you create, build, debug and deploy smart contracts on Ethereum and all EVM-compatible blockchains and layer 2 scaling solutions.\n- [vscode-solidity](https://github.com/juanfranblanco/vscode-solidity) - Visual Studio Code language support extension.\n\n---\n\n## License\n\n[![CC0](https://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](https://creativecommons.org/publicdomain/zero/1.0/)\n\nTo the extent possible under law, [Ben Kremer](https://github.com/bkrem) has waived all copyright and related or neighboring rights to this work.\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/bkrem%2Fawesome-solidity/projects"}