Skip to content

Self-Host Guide

This guide holds all information related to self hosting your own Alto bundler instance. Including installation, setting up, running, and troubleshooting.

Installation (Building from source)

To install and build Alto from source, run the following commands

git clone https://github.com/pimlicolabs/alto.git
pnpm install
pnpm build

And then to start Alto, run

./alto help

Setup And Prerequisites

Alto manages multiple executor wallets. If any wallet's balance falls below a set minimum, its balance is automatically refilled using funds from the utility wallet. The utility wallet needs to be funded before starting Alto.

EntryPoint V0.7 relies on a simulation contract to be deployed. Alto uses this contract during validation and gas estimations. 0x74cb5e4ee81b86e70f9045036a1c5477de69ee87 is the address of the simulation contract on all chains that we support. You can deploy the same contract to any network by using this helper function

Prerequisites:
  • Utility wallet is funded
  • Simulations contract is deployed

Running

Once all the prerequisite conditions are met, Alto can be started using

./alto run
    --entrypoints "0x0000000071727De22E5E9d8BAf0edAc6f37da032,0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789"
    --entrypoint-simulation-contract "0x74cb5e4ee81b86e70f9045036a1c5477de69ee87"
    --executor-private-keys "0x34e9a7...,0xb08d34...,0x163cbb..."
    --utility-private-keys "0xe768f1..."
    --rpc-url "http://localhost:8545"
    --safe-mode false

Running Alto using JSON configurations

Alto can also be ran using configurations from a JSON file

Create and setup alto-config.json

{
    "entrypoints"=0x0000000071727De22E5E9d8BAf0edAc6f37da032,0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789
    "entrypoint-simulation-contract"=0x74cb5e4ee81b86e70f9045036a1c5477de69ee87
    "executor-private-keys"=0x34e9a7...,0xb08d34...,0x163cbb...
    "utility-private-keys"=0xe768f1...
    "rpc-url"=http://localhost:8545
    "safe-mode"=false
}

Run Alto using alto-config.json configurations

./alto run --config "alto-config.json"

Compatability

Some chains have certain compatability restrictions that require Alto to be ran with special flags.

Legacy Transaction Chains

For chains that only support pre EIP-1559 transactions, alto needs to be ran with the flag

./alto run --legacy-transactions ...

OP Stack Chains

For chains that are deployed using the OP Stack, alto needs to be ran with the flag

./alto run --chain-type "op-stack" ...

Arbitrum Chains

For chains that are deployed using Arbitrum, alto needs to be ran with the flag

./alto run --chain-type "arbitrum" ...