Learn how Abstract processes transactions step-by-step using native account abstraction.
Submitting transactions
from
field can be set to a smart contract address in this step and submitted to the network.Bootloader processing
tx.from
field and checks if there is any contract code deployed at that address.
If there is no contract code, it assumes the sender account is an EOA and converts it to a
DefaultAccount.Smart contract account validation & execution
tx.from
address:validateTransaction
: Determine whether or not to execute the transaction.
Typically, some kind of checks are performed in this step to restrict who can use the account.executeTransaction
: Execute the transaction if validation is passed.payForTransaction
or prepareForPaymaster
: Pay the gas fee or request a paymaster to pay the gas fee for this transaction.msg.sender
is set as the bootloader’s contract address for these function calls.Paymasters (optional)
validateAndPayForPaymasterTransaction
: Determine whether or not to pay for the transaction, and if so, pay the calculated gas fee for the transaction.postTransaction
: Optionally run some logic after the transaction has been executed.msg.sender
is set as the bootloader’s contract address for these function calls.