skillfed

solc-select

Manage multiple Solidity compiler versions.

solc-select v1.2.0 284.1K downloads/30d#8,066 on PyPI815
AGPL 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) Active released

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-select

uv

uv add solc-select

poetry

poetry add solc-select

Installing 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

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

Tags

solidity compiler version managerswitch between solc versionsmanage solidity compilersolc version switcherethereum solidity toolingsolc binary managercompiler version control
solidityethereumversion-manager

More Build Tools packages