Hyperledger Solang

Solang is a Solidity compiler for Stellar.

Project Description

Solang is a Solidity compiler for Stellar which lives under LFDT. We aim to have the following impact on Stellar ecosystem.

Long-term impact

  • Enable a production-ready compiler for Stellar.
  • Lower the barrier for Solidity developers to build on Stellar.

Short-term impact

  • Build an open-source contributor community with deep knowledge of both Solidity and the Soroban VM architecture through yearly LFDT mentorships.
  • Provide a practical onboarding path for EVM developers who want to experiment with Soroban.
  • Produce comparative research between Solang and the Soroban Rust SDK, generating insights about where each approach performs best and for which use cases.
  • Gather early feedback on Solang tooling, developer experience, and developer pain points.

Team & Experience

@salaheldinsoliman: A compiler engineer working on Solang to support the Soroban target.

@mohamedbasuony: A software engineer in the university of Göttingen, with an interest in developer tooling.

@abdallah-abdelnaby: A software engineer in the university of Göttingen, with an interest in compiler engineering.

@Imran-S-heikh: A full stack engineer, mainly working on Solang Playground and the Solang language server

Retroactive Impact

Past Deliverables

The target last quarter was to support the following Soroban examples by making Solang able to compile the logically equivalent Solidity:

The proof of completion is basically copying the contract, compiling it via Solang, and calling it as you would with the Stellar CLI or the JS SDK.

Alternatively, they can be tested in the playground https://solang.io/. (Not up to date at the time of writing this, will update this PR once it supports the latest version)

Proposed Impact

  • Onboard an open-source contributor to Solang and Stellar via this mentorship, starting in June 2026.

  • Release a new version of Solang and Playground, announce it, and get more feedback.

Proposed Deliverables

The main goal of trying to include Solang in the PG awards is to bring it to production. Bringing Solang to production involves covering all Solidity features and then auditing the codebase. To know how much Solidity is already covered, and how much work is left, a fuzzer that compares the behavior of Solidity contracts on solc+ethereum vs solang + Stellar is needed. This will give us an idea of what work is left besides supporting the Soroban-examples.

This quarter/PG-proposal is focused on completing the remaining work on the Soroban examples, and starting work on the fuzzer. Future proposals are expected to focus on completing the work the fuzzer outputs, and then auditing the codebase.

Our specific goals for the next quarter are:

Codebase maintenance

  • A current issue of the codebase is the entangled target logic in codegen. As Solang supports multiple compilation targets, some target-specific logic and conditionals are scattered in codegen (Solang’s IR emission stage). Detangling here means that each target should have its own implementation of codegen, rather than injecting target-specific logic.

Developer Experience

  • Make Solang docs up to date: clearly state what is currently supported and what is not.
  • Improve compiler error reporting: As of now, for the currently unsupported Solidity syntax or Soroban-specific features, Solang most often fails with a vague error message. We aim to fix this in this quarter.
  • More useful error reporting in Solang Playground.

Feature Completion

Fuzzer

  • Plan and start working on a fuzzer that compares a corpus of Solidity contracts’ behavior on solc+ethereum vs solang + Stellar. This will give us an idea of what work is left besides supporting the Soroban-examples. At the end of this quarter, the fuzzer should be able to take a corpus of Solidity contracts and report Solang compilation errors.
  • As the project representative, I agree to the Legal Acknowledgements.

Back to top

This site uses Just the Docs, a documentation theme for Jekyll.