# Polygon

> Polygon Mainnet and the Amoy testnet through RPC Gateway, including chain IDs, provider coverage, and the calls served without an Endpoint.

Canonical page: https://rpc.aurpay.net/docs/chains/polygon

Polygon PoS runs in the Gateway as an EVM network whose gas token is POL. Its test network is Amoy; the Gateway catalog exposes no other Polygon testnet.

## Networks and hosts

| Network | Chain ID | JSON-RPC Host |
|---|---:|---|
| Mainnet | 137 | `poly-jsonrpc` |
| Amoy | 80002 | `poly-amoy-jsonrpc` |

Access Points are issued per Gateway. Take the complete value from the dashboard, and keep Mainnet and Amoy in separate Gateways so a misdirected Endpoint cannot answer for the wrong network.

## Provider coverage

| Provider | Mainnet | Amoy | Credential |
|---|:---:|:---:|---|
| [Alchemy](https://rpc.aurpay.net/docs/providers/alchemy.md) | Yes | Yes | Alchemy API key |
| [QuickNode](https://rpc.aurpay.net/docs/providers/quicknode.md) | Yes | Yes | QuickNode Admin API key for discovery; the Endpoint credential comes from the returned URL |
| [Chainstack](https://rpc.aurpay.net/docs/providers/chainstack.md) | Yes | Yes | Chainstack Platform API key |
| [dRPC](https://rpc.aurpay.net/docs/providers/drpc.md) | Yes | Yes | dRPC key, or a full `https://lb.drpc.live/<network>/<key>` URL |
| [Tenderly](https://rpc.aurpay.net/docs/providers/tenderly.md) | Yes | Yes | Tenderly access key, written into the Endpoint without being called during discovery |

Amoy is discovered only when the vendor account has it enabled. Alchemy and dRPC generate Amoy Endpoints from a catalog, while QuickNode and Chainstack import Amoy only if a matching Endpoint or node already exists in the account.

## Reads without an Endpoint

`eth_blockNumber`, `eth_getBlockByNumber` with `["latest", false]` or an explicit hexadecimal height and `false`, and `debug_traceBlockByNumber` with `callTracer` use the shared cache when an entry matches. Request a specific block by passing a hexadecimal height:

```bash
curl '<polygon_access_point>' \
  -H 'Authorization: Bearer <app_api_key>' \
  -H 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x4c4b40",false]}'
```

Other parameter variants require a Route. [Endpoint-free RPC](https://rpc.aurpay.net/docs/endpoint-free-rpc.md) has the exact forms and cache behavior.

## Verify the network

```bash
curl '<polygon_access_point>' \
  -H 'Authorization: Bearer <app_api_key>' \
  -H 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
```

Mainnet returns `0x89`; Amoy returns `0x13882`.

## Coverage boundary

One JSON-RPC 2.0 object per HTTP `POST`. Archive depth, `debug`, `trace`, and historical state on Polygon depend on the upstream node's configuration and plan, not on Gateway network support.

See [Routing and reliability](https://rpc.aurpay.net/docs/reliability.md) for strategy configuration and [Errors and recovery](https://rpc.aurpay.net/docs/errors.md) for error codes.
