# Optimism Testnet (kovan)

RelayHub: 0xceEd6F194C07EB606ae0F3899DdfA7dE8a4ABcB5 (opens new window)

VersionRegistry: 0xf7D1b4f7B20B4bC1b4dc1E09B709edA31123193c (opens new window)

Forwarder: 0x39A2431c3256028a07198D2D27FD120a1f81ecae (opens new window)

Accept-Everything Paymaster: 0x6B43C92C4661c8555D5D060144457D9bF0fD0D34 (opens new window)

# Recommeneded Server configuration

gsn-relay-config.json:

{
  "baseRelayFee": 0,
  "pctRelayFee": 70,
  "relayHubAddress": "0xceEd6F194C07EB606ae0F3899DdfA7dE8a4ABcB5",
  "ownerAddress": "<OWNER_ADDRESS>",
  "gasPriceFactor": 1,
  "confirmationsNeeded": 1,
  "ethereumNodeUrl": "https://kovan.optimism.io/",
  "coldRestartLogsFromBlock": 1318966,
  "registrationBlockRate": 5e9,
  "pastEventsQueryMaxPageSize": 5e7
}

# Recommeneded client configuration

  // add the following fields to your GSNConfig:
  const gsnConfig: Partial<GSNConfig> = {
    relayLookupWindowBlocks: 5e9,
    relayRegistrationLookupBlocks: 5e9,
    pastEventsQueryMaxPageSize: 5e7,
  }
  const gsnProvider = RelayProvider.newProvider({provider: web3Provider, config: gsnConfig})
  await gsnProvider.init()