project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

Autopilot

Configure/Schedule/Automate your wallet's future actions seamlessly

Autopilot

Created At

ETHGlobal Tokyo

Winner of

🀝 Polygon β€” Best Public Good with Account Abstraction

πŸŠβ€β™‚οΈ Polygon β€” Pool Prize

πŸ…°οΈπŸ…°οΈ EF β€” Best Account Abstraction

Project Description

This project builds upon account abstraction, enabling users to seamlessly automate future actions for their wallets. Each account consists of two distinct actors: the owner, who is the user themselves, and a bot. The owner grants the bot permission to perform a specified range of actions, which are executed according to a predetermined schedule and interval. By automating these tasks, the bot efficiently carries out the owner's desired actions without necessitating the owner's intervention moving forward. The system is non-custodial, as funds remain solely in your wallet. Furthermore, it is permissionless, as the bot can only perform actions explicitly permitted by the user.

How it's Made

This project utilizes ERC4337 (Account Abstraction) and extends its contract functionality. We override the validateSignature method to accommodate signatures from both the owner and the bot, ensuring the signer's identity is recorded. Later, during the execution process, we permit only the authorized actions for each party according to their respective schedules while allowing the owner to perform all actions. Our client incorporates the Account Abstraction SDK, and we use StackUp as our bundler. The contracts have been deployed on both GΓΆrli and Polygon Mumbai networks. The rationale behind deploying on Polygon is the reduced gas costs associated with highly active bots. We believe that for intricate bot strategies, affordable gas prices are crucial. We implemented a somewhat hacky solution for our bot script by overriding node modules and committing the node modules to the repo. Our unique use case required account derivation from the owner's keys while obtaining signatures from the bot's keys. We had to override the getAccountAddress method within the Account Abstraction SDK to achieve this.

background image mobile

Join the mailing list

Get the latest news and updates