Skip to main content

EVM Compatibility & Solidity Development

Introduction

Stability provides a familiar environment for Web3 developers, supporting industry-standard tools like Ethers.js, Viem, Hardhat, and Foundry. You can deploy existing logic with minimal friction. As Stability is gasless, developers will find that some standard operations and Solidity functionalities will not work as expected on Stability.

Important: EVM Compatibility Requirements

Stability is EVM Compatible with Solidity up to 0.8.24

Key Requirements:

  • Solidity Version: Must compile at version 0.8.24 or lower
  • EVM Compiler Version: Must be Shanghai or lower

Currently, Stability has not implemented the Cancun update. Developers must ensure their contracts comply with these version requirements when developing on Stability.

Examples

Gas Cost and Priority Fee Must Not Be Explicitly Set

On Stability, gas costs and priority fees are not applicable in the same way they are on traditional EVM-based blockchains due to the absence of a native token. gasPrice and maxPriorityFeePerGas must not be explicitly set to a non-zero number. No definition, or explicit definition to 0, is required.

Here is an example of how this can be achieved using ethers.js:

const tx = {
...
maxFeePerGas: 0n
maxPriorityFeePerGas: 0n
};

Review

While developing on Stability offers a familiar experience to working with other EVM-compatible blockchains, the absence of a native token introduces specific considerations that developers must account for. This unique characteristic of Stability necessitates a cautious approach to smart contract and backend development, ensuring that applications are designed with these limitations in mind.