The ISC Magic Contract
EVM and ISC are inherently very different platforms. Some EVM-specific actions (e.g., manipulating Ethereum tokens) are disabled, and EVM contracts can access ISC-specific functionality through the _ISC Magic Contract__.
The Magic contract is an EVM contract deployed by default on every ISC chain, in the EVM genesis block, at
The implementation of the Magic contract is baked-in in
evm core contract;
i.e. it is not a pure-Solidity contract.
The Magic contract has several methods, which are categorized into specialized
ISCUtil and so on.
You can access these interfaces from any Solidity contract by importing
the ISC library:
yarn add @iota/iscmagic
You can import it into your contracts like this:
The Magic contract also provides proxy ERC20 contracts to manipulate ISC base tokens and native tokens on L2.