solc-select
Manage multiple Solidity compiler versions.
What it is and what it does
solc-select is a command-line tool that manages multiple Solidity compiler versions on your machine. It downloads official solc binaries from binaries.soliditylang.org and stores them locally, then provides a wrapper command that automatically selects the correct compiler version based on your configuration. The tool consists of two utilities: solc-select for managing versions and a solc wrapper that picks the right binary to execute.
The package is built on three runtime dependencies—pycryptodome, packaging, and requests—and works across Linux, macOS (including ARM64 with native support for recent versions), and Windows. You set a global default version or override it per-invocation using the SOLC_VERSION environment variable, making it easy to work with projects that require different compiler versions without manual binary management.
Use it for:
- Develop Ethereum smart contracts that require specific Solidity versions for compatibility or testing across compiler releases
- Maintain multiple projects with different solc version requirements without manual binary switching or PATH manipulation
- Test smart contract code against historical and current Solidity compiler versions to verify behavior and catch regressions
- Set up CI/CD pipelines that need to compile contracts with exact compiler versions specified per project
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Manages installation and switching between multiple Solidity compiler versions via CLI, downloading official binaries and wrapping the solc command to use the selected version.
Yes. solc-select is actively maintained, has no known vulnerabilities, and solves a genuine friction point for Solidity developers. The AGPLv3 license is standard for this project type and poses no barrier for internal or open-source use. Install it if you work with Solidity and need to manage multiple compiler versions; the low friction and straightforward CLI make it a practical choice.
Install
solc-select on PyPI
pip
pip install solc-selectuv
uv add solc-selectpoetry
poetry add solc-selectInstalling solc-select
Before you install
Low install friction with a pure-Python wheel and three lightweight runtime dependencies (pycryptodome, packaging, requests). Actively maintained with recent commits and no known vulnerabilities.
License in practice
Licensed under AGPLv3, a copyleft license requiring that any modifications or network-served versions must make source code available to users. Suitable for internal tools and open-source projects; review terms if distributing modified versions.
Quickstart
pip install solc-select
solc-select use 0.8.19 --always-install
solc --version
Requires Python 3.8 or later. On macOS with ARM processors, versions before 0.8.5 require Rosetta; versions 0.8.5–0.8.23 run natively; 0.8.24+ use universal binaries. On Windows, requires current solc-select version.
Verify before relying
- Whether SSL certificate verification issues on macOS (mentioned in FAQ) remain unresolved in current versions
- Current status of ISP-level blocking issues reported with GitHub domain access for binary downloads
Package facts
| License | GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this… (full text in the JSON record) (agpl) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — pycryptodome, packaging, requests |
| Maintenance | actively maintained — 253 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 284,150/month — #8,066 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: solc_select-1.2.0-py3-none-any.whl
Keywords: solc, solidity, ethereum, compiler, version manager
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
py-solc-xManages installation and version control of the…
permissive · top 15,000 on PyPI
crytic-compileCrytic-compile abstracts smart contract…
agpl · top 15,000 on PyPI
compliance-trestleCompliance-trestle manages, validates, and…
permissive · top 15,000 on PyPI
slither-analyzerSlither is a static analysis framework for…
agpl · top 15,000 on PyPI
pccmPCCM manages Python-to-C++ code generation and…
permissive · top 15,000 on PyPI
NuitkaNuitka compiles Python code to C and then to…
agpl · top 15,000 on PyPI
chromedriver-pyDownloads and installs the appropriate…
permissive · top 15,000 on PyPI
whichcraftProvides a cross-platform, cross-Python…
permissive · top 15,000 on PyPI
certifi-linuxRedirects certifi's certificate lookup to use…
permissive · top 15,000 on PyPI
intel-cmplr-lib-rtProvides shared runtime libraries for Intel…
unclear · top 15,000 on PyPI