Skip to main content

EVM Compatibility

Artela is fully EVM compatible. This means that you can use Artela to deploy and run smart contracts written in Solidity, Vyper, and other EVM compatible languages without any issue.

info

Since we are maintaining our own forked version of EVM (we named it Artela EVM). So the EVM runs on Artela may not has the latest features, integration with the latest EVM will take some time. For compatibility reference, please check out the following sections.

Solidity Compatibility​

The following is a list of Solidity versions that are compatible with Artela EVM.

Artela Chain VersionArtela EVM VersionSolidity VersionVerified
v0.4.1-betav0.4.1-beta<= 0.8.21✅

Additional Op Codes​

Apart from the op codes supported by the legacy version of EVM (you can check them out here), Artela EVM has implemented some extra opcodes as the following:

info

OpCodes at E0 range are for implementing runtime state tracing in Artela EVM.

OpCodeNameDescription
0xE0RSVJNALRecord reference type state variable storage location.
0xE1VSVJNALRecord value type state variable storage location.
0xE2IRVVJNALRecord value type state variable with reference type index storage location.
0xE3IRVRJNALRecord reference type state variable with reference type index storage location.
0xE4IVVVJNALRecord value type state variable with value type index storage location.
0xE5IVVRJNALRecord reference type state variable with value type index storage location.
0xE6VVJNALRecord value type state variable change.
0xE7VRJNALRecord reference type state variable change.

Pre-compile Contracts​

Artela EVM has full support for the pre-compile contracts in Shanghai Fork. For the full list you can check it out here. Artela EVM has also implemented some extra pre-compiles for Aspect, which are:

AddressNameParamsreturnsDescription
0x64contextaspectId: address
key: string
stringRead Aspect context values. Smart contract can use this precompile to read the data passed by Aspect.
0x65userOpSenderuserOpHash: bytes32addressCheck sender Aspect ID of given AA user operation.
0x66contextWriterkey: string
value: string
Write to Aspect context values. Smart contract can pass data to Aspect by using this precompile.

RPC APIs​

Artela has most of the Ethereum RPC methods implemented (some are still working in progress), so you can use Ethereum infrastructures (e.g. Metamask, The Graph) connect to Artela without any issue. For RPC methods compatibility, you can check out the details here.