Which Language To Use
Smart contract development languages supported on Quai Network.
Overview
Quai Network runs a modified Ethereum Virtual Machine environment that provides internal and cross-chain smart contract execution across zone chains in the network. Each chain’s EVM is capable of executing smart contracts written in Solidity, SolidityX, and other languages that compile to EVM bytecode.
Generic Solidity smart contracts can be deployed to any single chain in the network and will function as expected. However, to take full advantage of Quai’s cross-chain functionality, developers must use SolidityX based smart contracts.
The Quai Network EVM supports Solidity versions up to 0.8.19. Using a newer version of Solidity may result in errors when deploying smart contracts.
Choosing Which Language To Use
There are a few main differences between Solidity and SolidityX that developers should consider when choosing which language to use for smart contract development on Quai Network.
Solidity
Generic Solidity is recommended for most use cases and developers new to Quai Network. It provides the most compatibility with existing Solidity and requires less initial configuration.
Single Chain
Individual zone chain deployments without cross-chain functionality
Simple Setup
Familiar configuration, deployment, and testing processes
Compatible Versions
Supports any previously existing Solidity compiler version up to 0.8.19
External Compatibility
Compatible with existing contract libraries like OpenZeppelin and Solady
SolidityX
SolidityX is recommended for more advanced developers looking to experiment with cross-chain functionality within Quai Network.
Cross-chain Deployment
Enables cross-chain contract deployments and sister contract linking
Advanced Setup
Requires the SolidityX compiler and additional configuration (can be more involved to set up)
Forward Compatibility
Will always be forward compatible with dynamic scaling events
Library Compatibility
Not compatible with pre-existing Solidity contract libraries.
-
-
- -
-
Was this page helpful?