ic-alloy
is an open source project to make the Alloy.rs support libraries available to ICP developers. Using Alloy instead of interacting with the EVM RPC canister directly provides a drastically simpler developer experience.
As an example of how to use Alloy on ICP and as a template/starting point for other projects I built a simple multi user Ethereum wallet.
Live demo: https://7vics-6yaaa-aaaai-ap7lq-cai.icp0.io
Frontend source code: ic-alloy-basic-eth-frontend
Backend source code: ic-alloy-basic-eth
Features:
- Login with Internet Identity to generate an Ethereum wallet address
- Receive and send Ethereum to other users
The wallet canister uses the identity of the calling user as a derivation path when creating addresses, every user get their own address.
To sign the transfer transaction the canister uses threshold ECDSA signatures generated by the subnet nodes.
Frontend stack:
Backend stack:
More content is coming for ic-alloy
:
- Better documentation, best practices how to build ETH<>ICP apps
- A blog post and/or video with a walkthrough of the wallet project
If you would like to get involved and contribute to
ic-alloy
, send me a DM.