Documentation

Core

Core configuration of the paymaster infrastructure

Core properties

Prop Type Description
verbosity "debug" | "info" Log verbosity of the service
rpc.port number Port on which the RPC service will listen
forwarder ContractAddress Address of the forwarder contract
supported_tokens ContractAddress[] Address of the gas tokens supported by the paymaster. Tokens listed here can be used to pay for transactions.

⚠️ The price of these tokens needs to be available using the configured price oracle
max_fee_multiplier number Multiplier used to guarantee that the user has approved enough gas token to spend. This is a security margin and it's not used to compute the actual gas paid by the user. We propose to set this value to something between 2 and 3.
provider_fee_overhead number Overhead added to the fee paid by the user. This overhead can be used to amortize discrepancies between the estimate off-chain and the actual cost on-chain. The final gas paid by the user is set as (1 + provider-fee-overhead) * fee_estimate. We suggest using a value between 0.01 and 0.1 corresponding to 1% and 10%.
estimate_account.address ContractAddress Address of the account used to estimate transaction during the build process
estimate_account.private_key string(hex) Private key of the estimate account
gas_tanker.address ContractAddress Address of the account used to receive user tokens
gas_tanker.private_key string(hex) Private key of the gas tanker

Example

{
  "verbosity": "info",
  "rpc": {
    "port": 12777
  },
  "forwarder": "0x5678",
  "estimate_account": {
    "address": "0x1234",
    "private_key": "0x4321"
  },
  "gas_tanker": {
    "address": "0x1234",
    "private_key": "0x4321"
  },
  "max_fee_multiplier": 3.0,
  "provider_fee_overhead": 0.1,
  "supported_token": ["ETH_TOKEN_ADDRESS", "ANY_TOKEN_ADDRESS"]
}