Soroban Support Matrix
This page is the documentation for feature support status on the Soroban target.
This support matrix documents the Soroban features Solang currently intends to support. It should be read as a statement of documented target behavior, not as a claim of exhaustive coverage. Stronger completeness claims would require broader automated validation, such as fuzzing and differential testing, and that work is still in progress.
The Soroban target as a whole is still pre-alpha and experimental.
Related documentation:
Page |
Purpose |
|---|---|
Upstream stellar/soroban-examples coverage and the corresponding Solang Solidity examples. |
|
Solidity-facing differences and Soroban-specific language behavior. |
|
Storage layout, host-value representation, and differences from common Rust SDK patterns. |
Language Features
Feature area |
Status |
Details and examples |
|---|---|---|
Contract model |
Supported |
Constructors with arguments, public functions, and public getters. External functions return at most one value; Solidity’s multiple-return-value tuples are not supported as external return types. Examples: token.sol, timelock.sol, and storage_types.sol. |
Core types and collections |
Supported |
Primitive types, |
Events and logs |
Supported |
Solidity |
Structs |
Partial support |
Structs work as ABI function parameters and return values, and can be read from and written to contract storage. Fields of any scalar or reference type are supported, including |
Enums and other complex user-defined types |
Partial support |
Enumerations are supported. Examples: custom_types.sol and other_custom_types.sol. Coverage of deeper composite values is still limited and some combinations may not compile. |
Yul and inline assembly |
Unsupported |
Not supported on the Soroban target. |
Hash and cryptographic builtins |
Supported |
|
The exact Solidity support boundary can only be characterized with broader fuzzing and related validation, and that work is still in progress.
If you run into a missing Solidity feature on Soroban, please open an issue.
Soroban Features
Feature area |
Status |
Details and examples |
|---|---|---|
Authorization |
Supported |
|
Cross-contract calls |
Supported |
|
Storage classes and TTL |
Supported |
Storage classes |
Soroban utilities |
Supported |
|
Deploying and upgrading contracts |
Partial support |
Programmatic deployment via the |
Native value transfer and payable-style flows |
Unsupported |
This is not part of the documented Solang support surface on Soroban. |
|
Unsupported |
Not supported on the Soroban target. |
Where a feature has target-specific behavior rather than being simply supported or unsupported, that behavior is documented in the compatibility pages linked above.