Compatible Tools
EVM on IOTA Smart Contracts has been integrated in a way that the existing EVM tooling is compatible and can be used directly with an IOTA Smart Contracts chain running EVM as long as you take a couple of things into account.
Tooling Considerations
- Please make sure you use the correct JSON-RPC endpoint URL in your tooling for your chain. If you're running your own chain, you can find the JSON-RPC
endpoint URL in the Wasp dashboard (
[URL]/wasp/dashboard
when usingnode-docker-setup
). - Please ensure you use the correct
Chain ID
configured while starting the JSON-RPC service. If you did not explicitly define this while starting the service, the default Chain ID will be for IOTA EVM, for ShimmerEVM or for the EVM Testnet. - Fees are handled on the IOTA Smart Contracts chain level, not the EVM level. The chain will reject any requests with a different gas price than specified by the chain.
Re-using an existing Chain ID is not recommended and can be a security risk. For production usage, register a unique Chain ID on Chainlist and use that instead of the default. It is not possible to change the EVM chain ID after deployment.
Network RPCs
- IOTA EVM
- IOTA EVM Testnet
- ShimmerEVM
- ShimmerEVM Testnet
Base Token | IOTA Token |
---|---|
Protocol | ISC / EVM |
Chain ID | |
RPC URL |
|
Blast API URLs Blast API provides highly scalable fault-tolerant API endpoints. |
Archive RPC
|
Explorer | https://explorer.evm.iota.org |
Toolkit | https://evm-toolkit.evm.iotaledger.net |
WASP API |
|
Base Token | Testnet Token (no value) |
---|---|
Protocol | ISC / EVM |
Chain ID | |
RPC URL |
|
Blast API URLs Blast API provides highly scalable fault-tolerant API endpoints. |
Archive RPC
|
Explorer | https://explorer.evm.testnet.iotaledger.net |
Toolkit & Faucet | https://evm-toolkit.evm.testnet.iotaledger.net |
WASP API |
|
Base Token | Shimmer Token |
---|---|
Protocol | ISC / EVM |
Chain ID | |
RPC URL |
|
Explorer | https://explorer.evm.shimmer.network/ |
Toolkit | https://evm-toolkit.evm.shimmer.network |
WASP API |
|
Base Token | Testnet Token (no value) |
---|---|
Protocol | ISC / EVM |
Chain ID | |
RPC URL |
|
Explorer | https://explorer.evm.testnet.shimmer.network/ |
Toolkit & Faucet | https://evm-toolkit.evm.testnet.shimmer.network |
WASP API |
|
IOTA EVM Tools
The following tools are only available on IOTA EVM.
Blast API
The Blast API is a decentralized platform that provides reliable and scalable node infrastructure for accessing blockchain data. You can find the Blast API URLs in the Network RPCs
EVM Toolkit
You can use the IOTA EVM Toolkit to withdraw assets from IOTA EVM to IOTA L1. It also includes a wrapper IOTA <-> wIOTA.
Multicall3
If you need to aggregate results from multiple contract reads into a single JSON-RPC request or execute multiple state-changing calls in a single transaction, you can use the Multicall3 contract.
IOTA EVM and ShimmerEVM Tools
The following tools are available on both IOTA EVM end ShimmerEVM.
MultiSig Wallets
If you require and additional level of security, you can use the Safe{} Wallet as a Multisig solution on IOTA EVM.
Oracles
If your project requires Oracles to provide data from the outside world, you find both Pyth and Supra have integrated IOTA EVM.
- IOTA EVM
- ShimmerEVM
Contract Type | Contract Address |
---|---|
Pyth contract | https://explorer.evm.iota.org/address/0x8D254a21b3C86D32F7179855531CE99164721933 |
Supra Pull Contract | https://explorer.evm.iota.org/address/0x2FA6DbFe4291136Cf272E1A3294362b6651e8517 |
Supra Storage Contract | https://explorer.evm.iota.org/address/0xD02cc7a670047b6b012556A88e275c685d25e0c9 |
Supra Push Contract | https://explorer.evm.iota.org/address/0xD02cc7a670047b6b012556A88e275c685d25e0c9 |
Contract Type | Contract Address |
---|---|
Pyth contract | https://explorer.evm.shimmer.network/address/0x290f23E4a034Db5237edCb5aA2D94Acb4DD19fD2 |
Supra Pull Contract | https://explorer.evm.shimmer.network/address/0xe41444462709484272F54371F3f53bBF900Ec49E |
Supra Storage Contract | https://explorer.evm.shimmer.network/address/0x3E5E89d14576cE9f20a8347aA682517fe65B4ACB |
Supra Push Contract | https://explorer.evm.shimmer.network/address/0x3df842b27c997cEc63160E79CB4398c82645A1c3 |
You can find detailed documentation on the Oracles in their official documentation:
Subgraphs
Subgraphs provide a streamlined way for developers to access blockchain data relevant to their applications, significantly enhancing developer efficiency and user experience. IOTA EVM subgraphs available via Goldsky.
MetaMask
MetaMask is a popular EVM wallet which runs in a browser extension that allows you to interact with EVM chains and their applications (dApps).
To use your EVM chain with MetaMask, simply open up MetaMask and click on the network drop-down list at the very top. At
the bottom of this list, you will see the option Add network
. On the new page you will see a list of popular network with the option Add a network manually
.
For example this would be the configs to add our different EVM chains:
- IOTA EVM
- IOTA EVM Testnet
- ShimmerEVM
- ShimmerEVM Testnet
Base Token | IOTA Token |
---|---|
Protocol | ISC / EVM |
Chain ID | |
RPC URL |
|
Blast API URLs Blast API provides highly scalable fault-tolerant API endpoints. |
Archive RPC
|
Explorer | https://explorer.evm.iota.org |
Toolkit | https://evm-toolkit.evm.iotaledger.net |
WASP API |
|
Base Token | Testnet Token (no value) |
---|---|
Protocol | ISC / EVM |
Chain ID | |
RPC URL |
|
Blast API URLs Blast API provides highly scalable fault-tolerant API endpoints. |
Archive RPC
|
Explorer | https://explorer.evm.testnet.iotaledger.net |
Toolkit & Faucet | https://evm-toolkit.evm.testnet.iotaledger.net |
WASP API |
|
Base Token | Shimmer Token |
---|---|
Protocol | ISC / EVM |
Chain ID | |
RPC URL |
|
Explorer | https://explorer.evm.shimmer.network/ |
Toolkit | https://evm-toolkit.evm.shimmer.network |
WASP API |
|
Base Token | Testnet Token (no value) |
---|---|
Protocol | ISC / EVM |
Chain ID | |
RPC URL |
|
Explorer | https://explorer.evm.testnet.shimmer.network/ |
Toolkit & Faucet | https://evm-toolkit.evm.testnet.shimmer.network |
WASP API |
|
Ensure that your RPC Url
and Chain ID
are set correctly and match the dashboard values. The Network Name
can be
whatever you see fit. Click "Save" to add the chain to MetaMask.
If you wish to use additional EVM chains with Metamask, you can add more Custom RPC networks, as long as they have a
unique Chain ID
and RPC Url
. Once you have done this, you can start using MetaMask to manage your EVM wallet or
issue/sign transactions with any dApp running on that network.
Remix
If you also want to use the Remix IDE to deploy any regular Solidity Smart Contract, you should set the environment as Injected Provider - Metamask, which should then connect with your MetaMask wallet.
Click on the Deploy & Run transactions button in the menu on the left and select Injected Web3
from
the Environment
dropdown.
Deploy a Solidity Smart Contract following our how to Deploy a Smart Contract guide.
Metamask will ask to connect to Remix, and once connected, it will set the Environment
to Injected Web3
with
the "Custom (Chain ID) network".
]
Hardhat
Hardhat is a command line toolbox that allows you to deploy, test, verify, and interact with
Solidity smart contracts on an EVM chain. EVM chains running on IOTA Smart Contracts are compatible with Hardhat; simply
make sure you add the correct network parameters to your hardhat.config.js
, for example:
- IOTA EVM Testnet
- ShimmerEVM Testnet
- IOTA EVM
- ShimmerEVM
networks: {
'iotaevm-testnet': {
url: 'https://json-rpc.evm.testnet.iotaledger.net',
chainId: 1075,
accounts: [YOUR PRIVATE KEY],
},
}
networks: {
'shimmerevm-testnet': {
url: 'https://json-rpc.evm.testnet.shimmer.network',
chainId: 1073,
accounts: [YOUR PRIVATE KEY],
},
}
networks: {
'iotaevm': {
url: 'https://json-rpc.evm.iotaledger.net',
chainId: 8822,
accounts: [YOUR PRIVATE KEY],
},
}
networks: {
'shimmerevm': {
url: 'https://json-rpc.evm.shimmer.network',
chainId: 148,
accounts: [YOUR PRIVATE KEY],
},
}
Deploy a Solidity Smart Contract following our how to Deploy a Smart Contract guide.
Currently, there is no validation service available for EVM/Solidity smart contracts on IOTA Smart Contracts, which is often offered through block explorer APIs.
Ethers.js/Web3.js
If you input the correct configuration parameters for the JSON-RPC endpoint to talk to, Ethers.js and Web3.js are also compatible with EVM chains on IOTA Smart Contracts. Alternatively, you can let both interact through MetaMask instead so that it uses the network configured in MetaMask. For more information on this, read their documentation.
Other Tooling
Most tools available will be compatible if you enter the correct Chain ID
and RPC Url
.