Bundler

The core infrastructure component that packages UserOperations into transactions.

Overview

The primary function of a Bundler is to continuously monitor a public mempool for UserOperations generated by Users. The Bundler is tasked with accepting UserOperations and executing them. The execution of these operations is performed by passing them to the EntryPoint contract.

The EntryPoint contract is a 'global trusted singleton'. Meaning that it is a single, universally trusted contract within the vechain blockchain. The purpose of the EntryPoint contract is to handle incoming transactions or calls, and manage the execution of UserOperations within the system. The Bundler, therefore, serves as a link between the User and the EntryPoint contract, ensuring that UserOperations are appropriately processed and executed.

Unlike the Paymaster or Account contract entities, the Bundler does not have its own contract. Each Paymaster or Account requires a separate contract for each running instance. This is not the case for the Bundler. Instead of a contract, the Bundler utilises an externally owned account (EOA) to execute on-chain transactions.

Role

The Bundler's role can be compared to that of a miner in a traditional blockchain network. Like miners, Bundlers offer a service to the network and receive compensation in return for their service. They operate in a decentralised manner, contributing to the maintenance and operation of the system. A Bundler needs to be consistently online and have sufficient funds in their EOA to conduct transactions which execute UserOperations. These transactions can often require significant resources, which is why the Bundler must be adequately funded.

Implementation

There are several different Bundler implementations available to users. The main one is the Infinitism Bundler, which was developed by the team responsible for the creation of EIP-4337.

Last updated