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
useOnChainReceiverin 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