Skandha Bundler
Config
These are values which are included within config.json
Config detail
Value | Example | Description | Optional |
---|---|---|---|
relayers | [“0xPrivateKey1”, “0xPrivateKey2”] | Array of relayer private keys or mnemonics, so multiple executors can be set. | No |
beneficiary | ”0xAddress” | Fee collector, avaiable via env var (SKANDHA_BENEFICIARY etc) | Yes |
rpcEndpoint | ”http://localhost:8545” | RPC provider, also available via env variable (SKANDHA_RPC etc) | No |
minInclusionDenominator | 10 | (See EIP-4337 spec)[https://eips.ethereum.org/EIPS/eip-4337] | Yes |
throttlingSlack | 10 | (See EIP-4337 spec)[https://eips.ethereum.org/EIPS/eip-4337] | Yes |
banSlack | 10 | (See EIP-4337 spec)[https://eips.ethereum.org/EIPS/eip-4337] | Yes |
minSignerBalance | 1 | Default is 0.1 ETH. If the relayer’s balance drops lower than this, it will be selected as a fee collector | Yes |
multicall | ”0xAddress” | Multicall3 contract (see here)[https://github.com/mds1/multicall#multicall3-contract-addresses] | Yes |
estimationStaticBuffer | 21000 | Adds certain amount of gas to callGasLimit on estimation | Yes |
validationGasLimit | 10e6 | Gas limit during simulateHandleOps and simulateValidation calls | Yes |
receiptLookupRange | 1024 | Limits the block range of getUserOperationByHash and getUserOperationReceipt | Yes |
etherscanApiKey | ”A1C15S3AXQHQ7PVVDX63VVK2IBAECS448Z” | Etherscan api is used to fetch gas prices | Yes |
conditionalTransactions | false | Enabling this flag will make the bundler submit all transactions via eth_sendRawTransactionConditional instead of eth_sendRawTransaction | Yes |
rpcEndpointSubmit | ”https://polygon-{network}.blockpi.network/v1/rpc/public” | RPC endpoint that is used only during submission of a bundle | Yes |
gasPriceMarkup | 0 | Adds % markup on reported gas price via skandha_getGasPrice, 10000 = 100.00%, 500 = 5% | Yes |
enforceGasPrice | false | Do not bundle userops with low gas prices | No |
enforceGasPriceThreshold | 1000 | Gas price threshold in bps. If set to 500, userops’ gas price is allowed to be 5% lower than the network’s gas price | Yes |
relayingMode | ”classic” | Two options here, “classic” or “flashbots” which enables flashbot protection. | Yes |
eip2930 | ”false” | optional, enables eip-2930 | No |
useropsTTL | 300 | optional, Userops time to live (in seconds) | No |
whitelistedEntities | ”whitelistedEntities”: “factory”: [], “paymaster”: [], “account”: [] | optional, Entities that bypass stake and opcode validation (array of addresses) | No |
bundleGasLimitMarkup | 25000 | optional, adds some amount of additional gas to a bundle tx | Yes |
bundleInterval | 10000 | bundle creation interval | Yes |
bundleSize | 4 | optional, max size of a bundle, 4 userops by default | Yes |
pvgMarkup | 0 | optional, adds some gas on top of estimated PVG | Yes |
cglMarkup | 35000 | optional, markup on estimated call gas limit | Yes |
vglMarkup | 0 | optional, markup on estimated verification gas limit | Yes |
skipBundleValidation | false | optional, skips bundle validation | Yes |
userOpGasLimit | 25000000 | optional, gas limit of a userop | Yes |
bundleGasLimit | 25000000 | optional, gas limit of a bundle | Yes |
archiveDuration | 5184000 | optional, keeps submitted, reverted and cancelled userops in the mempool for this many seconds | Yes |
Simplest config
config.json with a default value of each config parameter