ACCOUNT == SMART CONTRACT
SDK
import {Biconomy} from "@biconomy/mexa";
const biconomy = new Biconomy(<web3 provider>,{apiKey: <API Key>, debug: true});
let ethersProvider = new ethers.providers.Web3Provider(biconomy);
Is this a web3 that requires web2 API Key?
These are the main components to ERC-4337:
UserOperations are pseudo-transaction objects that are used to execute transactions with contract accounts. These are created by your app.
Bundlers are actors that package UserOperations from a mempool and send them to the EntryPoint contract on the #blockchain network. Can receive UserOperations via a JSON RPC Client and submit them to the EntryPoint.
EntryPoint is a smart contract that handles the verification and execution logic for transactions.
Contract Accounts are smart contract accounts owned by a user.
[optional] Paymasters are smart contract accounts that can sponsor transactions for Contract Accounts, enabling gasless transactions in your apps.
[optional] Aggregators are smart contracts that can validate signatures for Contract Accounts.
The whole point of ERC 4337 is that users from outside of the Ethereum can send transactions without having an account. You can send transaction-like objects to a separate mempool and someone else will make your transaction for you. This is helpful when users want to interact with blockchain without making an EOA from within an application. [stackexchange]
Biconomy Smart Account is a smart contract wallet that builds on core concepts of Gnosis / Argent safes and implements an interface to support calls from account abstraction Entry Point contract. We took all the the good parts of existing smart contract wallets. [github]