Skip to main content

Phase 3 — Multi-EVM rollout and keeper redundancy

Status: Planned.

Deploy the Phase 1 + 2 contracts to Ethereum, Arbitrum, Optimism, Polygon. Register Chainlink Automation (and/or Gelato) as a second keeper. Publish SLOs.

Scope

  • Factory, receiver, hub, splitter deployed to each chain with identical addresses.
  • Paymaster policies validated per chain (see api/src/withdrawals/services/gas-strategy).
  • Chainlink Automation upkeep per chain (or Gelato Web3 Function alternative).
  • SLO dashboard + alerting in Datadog.

Code touched

  • Per-chain feature flag flip for useOnChainReceiver in api/src/payments/wallet.service.ts.
  • Keeper EOA provisioning in infrastructure; monitoring additions.
  • Chainlink Upkeep registration scripts.
  • Runbooks.

Runtime / UX impact

  • Merchants can opt into non-custodial receivers on additional chains.
  • SLOs published publicly in Keeper strategy.
  • Manual charge() from the merchant CLI as a documented fallback.

Current limitations

  • Ethereum mainnet gas is high; the keeper uses a self-funded EOA there.
  • Gas-price ceilings defer charges one block when exceeded.

Linked blog post

Phase 3: Multi-EVM Rollout and Keeper Redundancy

Status checklist

  • Deploys complete on Ethereum, Arbitrum, Optimism, Polygon
  • Factory + hub addresses published in Contract reference
  • Paymaster policies validated per chain
  • Chainlink Automation upkeep live on at least 2 chains
  • SLO dashboard in Datadog
  • Runbook for keeper outage
  • Canary merchants rolled per chain