Klaytn Docs
Search…
Porting Ethereum Contract
In most cases, you can use Ethereum contracts on Klaytn without any modification. However, be aware of the following two issues.

Solidity Support

  • Baobab network is currently compatible with London Ethereum Virtual Machine (EVM).
  • Cypress network is currently compatible with Constantinople Ethereum Virtual Machine (EVM).
v1.7.0 Protocol Upgrade - incompatible changes including Istanbul hard fork items and Klaytn's own items. It has been enabled from block number #75373312 in case of Baobab network. Cypress mainnet will be subject to the same protocol upgrade in the next version.
v1.7.3 Protocol Upgrade - incompatible changes including Base Fee from the London hard fork. It has been enabled from block number #80295291 in case of Baobab network. Cypress mainnet will be subject to the same protocol upgrade in the next version.
Backward compatibility is not guaranteed with other EVM versions on Klaytn. Thus, it is highly recommended compiling Solidity code with the correct target option according to the protocol upgrade status.
  • Baobab: --evm-version london
  • Cypress: --evm-version constantinople
  • Others(private/service chain): determined according to the protocol upgrade status
An example command is shown below:
1
$ solc --evm-version london contract.sol
Copied!

Decoupled Key Pairs

Klaytn decouples key pairs from addresses. If user updates account, the private key for a specific account is replaced with another one. Most cases this will not affect your business logic. However if your business logic includes ecrecover, you should consider using validateSender. For more details, refer to here.
Last modified 10d ago