I would like to read the state of a pallet using web3 clients (Metamask, Truffle). Let's suppose the pallet has exposed the function getValue().

I have not installed either EVM and Ethereum pallet because I don't need to be fully EVM compatible.

I was thinking about the following flow as a possible approach:

| Web3 Client            |
| (Metamask, Truffle)    |
2          v
| Server implements      |
| EVM JSON-RPC           |
3          v
| RPC Substrate Client   |
4          v
| Substrate Node         |

1. The Web3 client would perform the reading request. In this step, I would also need to implement the getValue() function in Solidity so it could be called from the client, as it needs the ABI to perform the request. 2. The RPC Server would implement the endpoint, so the request would be redirected when getValue() was instantiated. 3. The Substrate RPC client would connect to the Substrate node. 4. The Substrate node would return the result.

Does this approach make sense? Is there something similar that has already been implemented? Or is there any library that I could use?

  • Interested in doing something similar, have you made any progress? Dec 2, 2023 at 12:00
  • @DaanvanderPlas unfortunately I did not continue down this path and decided to add the full EVM layer as a stopgap
    – magecnion
    Dec 4, 2023 at 11:12

1 Answer 1


It would be amazing to have this. As far as I know there is no implementation about that yet. But I know there is a discussion on the Polkadot Forum that you should check: WrappedEVM Eth RPC compatibility layer.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.