solc-select
Manage multiple Solidity compiler versions.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- 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.
License · maintenance · safety
(agpl) — 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.
last release 2025-12-04 (253 days) · last repo commit 2026-06-04 · 815 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 284,150 downloads/mo, #8,066 on PyPI
Alternatives
Verify before relying
pip install solc-select
solc-select use 0.8.19 --always-install
solc --version- 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
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 on it.
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
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.
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.
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
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 | Not declared agpl |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagespycryptodomepackagingrequests |
| 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 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: GNU Affero General Public License v3Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: Build ToolsTopic :: Software Development :: Compilers |
Evidence: solc_select-1.2.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “solidity compiler version manager”
- solc-selectManages installation and switching between multiple Solidity compiler…
- py-solc-xManages installation and version control of the Solidity compiler…
- crytic-compileCrytic-compile abstracts smart contract compilation across multiple…
Give your agent the search over MCP, or paste the wish link into any chat.
More Build Tools packages
Provides reusable utilities for Python packaging interoperability, including version handling, specifiers, markers, requirements, tags, and metadata parsing according to standards like PEP 440 and PEP 425.
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
pip is the standard installer for Python packages, enabling you to download and install packages from the Python Package Index and other indexes into your Python environment.
Hatchling is a standards-compliant Python build backend that handles packaging, metadata, and distribution of Python projects when configured in a project's pyproject.toml file.
Generates Python gRPC service stubs and message classes from Protocol Buffer definitions, enabling developers to build gRPC clients and servers.
pre-commit is a framework for installing and running git hooks written in any language before commits are made, automating code quality and validation checks across multi-language projects.
Install it if your team needs consistent, automated validation at commit time.
See also py-solc-x · crytic-compile · compliance-trestle · slither-analyzer · pccm · Nuitka · chromedriver-py · whichcraft · certifi-linux · intel-cmplr-lib-rt