{"id":18953122,"url":"https://github.com/0xpolygon/account-abstraction-invoker","last_synced_at":"2025-04-16T02:31:53.184Z","repository":{"id":63247909,"uuid":"562894346","full_name":"0xPolygon/account-abstraction-invoker","owner":"0xPolygon","description":"Modular account abstraction with EIP-3074.","archived":false,"fork":false,"pushed_at":"2023-05-18T07:58:17.000Z","size":8177,"stargazers_count":47,"open_issues_count":2,"forks_count":12,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-29T05:22:32.776Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0xPolygon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-07T13:35:24.000Z","updated_at":"2024-09-24T20:53:29.000Z","dependencies_parsed_at":"2024-11-08T13:39:27.002Z","dependency_job_id":"82eb3e1a-fd6f-4c59-8a9c-02072ff8aadb","html_url":"https://github.com/0xPolygon/account-abstraction-invoker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xPolygon%2Faccount-abstraction-invoker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xPolygon%2Faccount-abstraction-invoker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xPolygon%2Faccount-abstraction-invoker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xPolygon%2Faccount-abstraction-invoker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0xPolygon","download_url":"https://codeload.github.com/0xPolygon/account-abstraction-invoker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249184539,"owners_count":21226398,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T13:36:27.153Z","updated_at":"2025-04-16T02:31:48.437Z","avatar_url":"https://github.com/0xPolygon.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Account Abstraction Invoker\n\nExample account abstraction (EIP-3074) invoker contract. For demonstration purposes only.\n\n## About\n\nAccount Abstraction Invoker uses [`AUTH`](https://eips.ethereum.org/EIPS/eip-3074#auth-0xf6) and [`AUTHCALL`](https://eips.ethereum.org/EIPS/eip-3074#authcall-0xf7) opcodes introduced in [EIP-3074 ](https://eips.ethereum.org/EIPS/eip-3074) to delegate control of the externally owned account (EOA) to itself (smart contract). This adds more functionality to EOAs, such as batching capabilities, allowing for gas sponsoring, expirations, scripting, and beyond.\n\nUse cases are showcased in the [tests](test/AccountAbstractionInvoker.ts). The invoker works with ✨ _all_ ✨ contracts:\n\n\u003cimg alt=\"Sponsoring example\" src=\"./img/sponsoring-example.png\" width=\"693px\" /\u003e\n\n[Commit](https://eips.ethereum.org/EIPS/eip-3074#understanding-commit) is EIP-712 hash of the this [structure](scripts/signing/README.md). This means the invoker inherits the security of EIP-712, in addition to following the [Secure Invoker](https://eips.ethereum.org/EIPS/eip-3074#secure-invokers) recommendations and implementing additional security measures.\n\n## Requirements\n\n- Network with EIP-3074\n\n## Instructions\n\n### Quickstart\n\n```bash\ngit clone https://github.com/0xPolygon/account-abstraction-invoker\ncd account-abstraction-invoker\nyarn\n```\n\n### Setup\n\n```bash\ncp .env.example .env\n```\n\n- Set RPC URL in `.env`\n\n    Hardhat accounts `0` and `1` are included in `.env` for your convinience. Do not send real funds to those accounts.\n\n- Change chain ID in `hardhat.config.ts`\n\n### Test\n\nHardhat does not support EIP-3074 at the moment. All testing is done on a live network.\n\n```bash\nyarn hardhat test\n```\n\nTo redeploy contracts, set environment variable `REDEPLOY=true`. Otherwise, last deployed contracts will be used.\n\n## Acknowledgements\n\n- This example was based on Maarten Zuidhoorn's [EIP-3074 (Batch) Transaction Invoker](https://github.com/Mrtenz/transaction-invoker)\n- Reentrancy Guard by [OpenZeppelin](https://github.com/OpenZeppelin/openzeppelin-contracts)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xpolygon%2Faccount-abstraction-invoker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0xpolygon%2Faccount-abstraction-invoker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xpolygon%2Faccount-abstraction-invoker/lists"}