A bundler is a node that monitors the alternative mempool of UserOperations and bundles multiple UserOps together to forward to the EntryPoint contract as a single transaction. These UserOps can be sent from different accounts and are bundled and sent to the EntryPoint contract via a handleOps call.

The bundler is controlled by its own EOA which initially pays for the gas fees upfront and is then repaid by either the sender or a paymaster if the transaction is sponsored.

The entry point contract then uses the validateOp and executeOp functions on the smart account contract to verify and execute the UserOps on behalf of the users.

It allows you to send transactions with smart accounts.