
Evm Rpc
If you're building a Rust canister that needs to read from or interact with Ethereum, Arbitrum, Base, or any EVM chain, this wraps the IC's EVM RPC system canister with a typed client. It handles the multi-provider consensus dance (you'll want threshold mode, not the default equality check), manages cycle attachment, and works with both Candid and Alloy types. The documentation is thorough about gotchas: consensus strategies that fail on live chains, response size limits on broad log queries, and the fact that you still need to sign transactions yourself using threshold ECDSA before sending them. Costs run around 100M to 1B cycles per call depending on provider count and response size. No bridges, no oracles, just JSON-RPC over HTTPS outcalls with automatic failover.
- skills.sh installs
- 287
- GitHub stars
- 39
- last updated
- Aug 21, 2026
Install
$ npx -y skills add dfinity/icskills --skill evm-rpc --agent claude-codeInstalls into .claude/skills of the current project.
Files
EVM RPC Canister — Calling Ethereum from IC
What This Is
The EVM RPC canister is an IC system canister that proxies JSON-RPC calls to Ethereum and EVM-compatible chains via HTTPS outcalls. Your canister sends a request to the EVM RPC canister, which fans it out to multiple RPC providers, compares responses for consensus, and returns the result. No API keys required for default providers. No bridges or oracles needed.
Prerequisites
evm_rpc_clientcrate (provides typed client API and re-exportsevm_rpc_types)
Canister IDs
| Canister | ID | Subnet |
|---|---|---|
| EVM RPC (mainnet) | 7hfb6-caaaa-aaaar-qadga-cai | 34-node fiduciary |
Candid interface: https://github.com/dfinity/evm-rpc-canister/releases/latest/download/evm_rpc.did — or use the canhelp skill to fetch it directly from the mainnet canister.
Supported Chains
Sponsors
Details
- Repository
- github.com/dfinity/icskills
- Categories
- Backend & APIs, Rust, Finance & Trading, Web3 & Blockchain
- First seen
- Jun 3, 2026