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.

For most developers and use cases, generic Solidity is the recommend smart contract language choice.

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.

      • -