# Polygon Mainnet

RelayHub: 0x6C28AfC105e65782D9Ea6F2cA68df84C9e7d750d (opens new window)

Forwarder: 0xdA78a11FD57aF7be2eDD804840eA7f4c2A38801d (opens new window)

Paymaster: 0x9d47218ce8b8F123Efbb1Db3E0DdBe6490Cf77E1 (opens new window)

VersionRegistry: 0x4Fe8824c885D67613848c94a15dce7680897f33E (opens new window)

# Recommeneded Server configuration

gsn-relay-config.json:

{
  "baseRelayFee": 0,
  "pctRelayFee": 70,
  "relayHubAddress": "0x6C28AfC105e65782D9Ea6F2cA68df84C9e7d750d",
  "ownerAddress": "<OWNER_ADDRESS>",
  "gasPriceFactor": 1,
  "confirmationsNeeded": 1,
  "ethereumNodeUrl": "https://rpc-mainnet.maticvigil.com/",
  "coldRestartLogsFromBlock": 22051314,
  "registrationBlockRate": 1000,
  "pastEventsQueryMaxPageSize": 900,
  "maxGasPrice": 1e12,
  "workerMinBalance": 0.5e18,
  "workerTargetBalance": 0.5e18
}

# Recommeneded client configuration

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