Devs should be able to use testnets without the need of ETH whatsoever.
Why is Wonderland doing this?
Wonderland, as the largest core development group in web3, cares deeply about the developer experience within the Ethereum ecosystem. While developing public goods is always at the core of what we do, in this instance, our aim is to streamline and elevate the test environment, making it more user-friendly and efficient for developers. This is just a small part of our broader mission to empower innovators in the creation of open, permissionless, and decentralized financial solutions.
How does it work
Instead of users sending transactions to an RPC, they will send signed transactions to a Sponsor which will execute it for them. This way, users will not have the need to have testnet ETH nor use faucets.
The key to fantastic UX will be having it easily integrated into Hardhat and Foundry scripts through a plugin.
The moving parts which need to be built are:
- SignatureProxy & SignatureProxyFactory smart contracts: Each user will have its own SignatureProxy, created via the Factory. With it, sponsors will be able to execute txs for the user as long as they have his/her signature.
- Sponsor API: Each Sponsor will have to run one of this. The API will listen to transaction signatures and will send them on-chain to their respective SignatureProxy. They must be fast.
- Foundry Plugin: Instead of scripts broadcasting txs to an RPC, they should send signed transactions to the defined Sponsor.
- Hardhat Plugin: Same as the Foundry Plugin, but for Hardhat. Nomic Labs will provide guidance and support for the plugin creation.
- Documentation: New chains which wish to have Sponsored Txs should be able to onboard themselves. Same for new Sponsors.
Constrains
- Sponsored Txs is a public good, 0 fees of any kind.
- Using it should take less than 1 minute for a dev to setup.
- It must be easily deployable into any EVM compatible chain.
- It must have full integration with Foundry and Hardhat scripts.
- The transaction latency must not be increased by more than 5 seconds per transaction.
Flows