-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Open
Labels
content ποΈThis involves copy additions or editsThis involves copy additions or editsfeature β¨This is enhancing something existing or creating something newThis is enhancing something existing or creating something newneeds triage π₯This issue needs triaged before being worked onThis issue needs triaged before being worked on
Description
Tutorial title
Letting your gasless users hold tokens and call contracts
Tutorial description
A previous article (#17575) discussed using gasless access to your own application using EIP-712 signatures. However, this only works for direct access to your own smart contracts. Using account abstraction, we can create smart contract wallets that accept two types of transactions, and relay them to a requested destination:
- Transactions sent by a specific EOA (which require ETH)
- Transactions sent from anywhere, but signed by the same EOA.
This way, we can provide a gasless way for an account to hold assets (tokens, etc.) and perform all the functions an EOA with gas can.
Tutorial tags
gasless, account abstraction
Skill level
Intermediate
Hosted on ethereum.org or hosted elsewhere?
Hosted on ethereum.org
For tutorials to be hosted on Ethereum.org: Tutorial Content
- Introduction: Why is this useful
1.1. Why certain requests cannot be relayed natively (a.k.a. why do we checkmsg.senderrather thantx.origin. - The sample application
- How it works
3.1. The wallet smart contract
3.2. The relayer
3.3. The user interface - Improvements
4.1. Making transactions less opaque at signing time.
4.2. Supporting other signature types ERC-1271
4.3. Decentralized relay pool. ERC-4337
4.4. Assets owned by the EOA itself, ERC-7702 - Conclusion: When is this enough? When isn't it?
For tutorials hosted elsewhere: URL to tutorial
No response
Would you like to work on this issue?
- Yes
- No
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
content ποΈThis involves copy additions or editsThis involves copy additions or editsfeature β¨This is enhancing something existing or creating something newThis is enhancing something existing or creating something newneeds triage π₯This issue needs triaged before being worked onThis issue needs triaged before being worked on