Polygon RPC endpoint — node URL & WebSocket API
Last updated:
Get API key Read the documentation
Network details
| Network | Polygon PoS mainnet |
|---|---|
| Chain ID | 137 (0x89) |
| Currency | POL |
| RPC URL | https://triport.io/polygon |
| WebSocket URL | wss://triport.io/ws/poly |
| Keyed URL for wallets | https://triport.io/r/<API_KEY>/polygon |
| Authentication | x-token: $TRIPORT_API_KEY (Authorization: Bearer also accepted), scope polygon:rpc |
Need the values in a wallet or framework format? The Polygon chain config generates them for MetaMask, viem, ethers, Hardhat and Foundry.
Try it without a key
https://triport.io/public/polygon — 15 req/s reads, 3 req/s transaction sends — one budget shared by every caller. JSON-RPC over HTTPS POST with no key and no account; it is not a plan, and there is no WebSocket.
eth_getProof answers without a key here; debug_*, trace_* and txpool_* need Pro. Sends work.
curl https://triport.io/public/polygon \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
# -> {"jsonrpc":"2.0","id":1,"result":"0x89"}Checked by a live probe on 2026-11-01. Bodies up to 256 KiB; a batch of 20 calls is answered.
Add it to a wallet from the Polygon chain config, which has the button and the parameters.
polygon-rpc.com and rpc-amoy stopped answering
On 2026-11-01 https://polygon-rpc.com answered HTTP 401 "API key disabled, reason: tenant disabled", and rpc-amoy.polygon.technology did not answer. A wallet still pointing at the old URL fails when it asks for the chain ID, which is the "Could not fetch chain ID" message in MetaMask. Replace the URL (the keyless Polygon endpoint for a wallet, a key for production), then confirm that eth_chainId returns 0x89. Polygon's docs now list a third-party endpoint.
What works today
| Capability | Status | Methods |
|---|---|---|
| JSON-RPC reads | Available | 32 methods |
| Transaction submission | Available | eth_sendRawTransaction |
| Trace and debug | Available | 7 methods |
| txpool (routed node view) | Available | txpool_content, txpool_inspect, txpool_status |
| Bor validator methods | Available | 7 methods |
| WebSocket subscriptions (free+) | Available | newPendingTransactions |
| WebSocket subscriptions (basic+) | Available | logs |
| WebSocket subscriptions (pro+) | Available | newHeads, syncing |
Reads cover the standard EVM surface — balances, code and storage, blocks and receipts, transactions, logs, gas and fee history, plus eth_getProof and the filter methods. All of them draw on one read budget: Polygon has no separate heavy category, so eth_getLogs is paced like any other read.
WebSocket subscriptions, by plan
wss://triport.io/ws/poly speaks the standard eth_subscribe / eth_unsubscribe wire shape, the same as Ethereum. Which subscription types a key may open depends on its plan: newPendingTransactions from the Free trial, logs from Basic, newHeads and syncing from Pro. Polygon-specific bor_subscribe* methods are not served on this channel.
Transaction submission
Send signed, serialized transactions with eth_sendRawTransaction at https://triport.io/polygon (available on every plan). A returned hash means the request was routed; the receipt decides inclusion.
What this page does not sell
Anything that is not in the table above is not sold on this page — each method's page in the Polygon JSON-RPC reference documents it in full. We also publish no latency figures: the rate limits below are per-category RPS limits, not measured upstream capacity.
What teams run on it
- Payment and wallet backends. POL and USDC balance reads with transaction submission on the same URL.
- Indexers. eth_getLogs for events and bor_* for validator and block-producer data.
- Block analysis. trace_* from Pro, per block or per transaction.
Testnet
Polygon testnets: Amoy (chain ID 80002). Triport serves mainnet only; switch the URL and chain ID for test work — Polygon testnet connection values.
Terms on this page: Event log · Archive node · Finality.
Limits and plans
2× burst buffer, included. Finite request-rate limits show sustained RPS and short burst capacity. A full buffer at 20 RPS can absorb up to 40 requests at once and refills at 20 requests per second. There is no quota on the number of bursts and no extra charge for them. Size ongoing traffic to sustained RPS. Categories with no per-category cap have no numeric burst ceiling. How burst capacity works.
| Capability | Free trial (7 days) | Basic | Pro | Business | Enterprise |
|---|---|---|---|---|---|
| Reads (polygon_read_rpc) | 15 RPS sustained · up to 30 burst | 20 RPS sustained · up to 40 burst | 100 RPS sustained · up to 200 burst | 250 RPS sustained · up to 500 burst | no per-category cap |
| Submission (polygon_send_tx) | 3 RPS sustained · up to 6 burst | 5 RPS sustained · up to 10 burst | 30 RPS sustained · up to 60 burst | 80 RPS sustained · up to 160 burst | no per-category cap |
| Trace / debug (Pro+) | — | — | 3 RPS sustained · up to 6 burst | 10 RPS sustained · up to 20 burst | no per-category cap |
| WebSocket subscriptions | newPendingTransactions | + logs | + newHeads, syncing | same as Pro | all |
Sustained rates carry a 2x burst. Plans: Basic $20, Pro $249, Business $499, Enterprise from $999 per month — a flat monthly price, no credits or overage: only the per-category RPS limits above. Free is a 7-day trial with a single key in the EU region, not a permanent plan. See Polygon limits.
Every plan with its limits on every network, and what a plan costs at its cap: RPC pricing.
Quickstart
# curl
curl https://triport.io/polygon \
-H "x-token: $TRIPORT_API_KEY" -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
# -> {"jsonrpc":"2.0","id":1,"result":"0x89"}
# viem
import { createPublicClient, http } from "viem";
import { polygon } from "viem/chains";
const client = createPublicClient({
chain: polygon,
transport: http("https://triport.io/r/<API_KEY>/polygon"),
});
# Hardhat / Foundry
networks: { polygon: { url: "https://triport.io/r/<API_KEY>/polygon", chainId: 137 } }
rpc_endpoints = { polygon = "https://triport.io/r/<API_KEY>/polygon" }FAQ
- What is the Polygon RPC URL?
- https://triport.io/polygon for JSON-RPC over HTTPS and wss://triport.io/ws/poly for WebSocket subscriptions. Authenticate with the x-token header, or use the keyed URL https://triport.io/r/<API_KEY>/polygon where a wallet cannot send a custom header.
- What is the Polygon chain ID?
- 137 (0x89 in hex) for Polygon PoS mainnet. eth_chainId on the Triport endpoint returns 0x89, and the gas token is POL. Standard EVM tooling — viem, ethers, Hardhat, Foundry, MetaMask — works against it.
- Is there a free Polygon RPC endpoint?
- There is a 7-day free trial with one key in the EU region: 15 read requests per second on Polygon, plus newPendingTransactions over WebSocket. After it, plans are flat monthly prices starting with Basic at $20.
- Does Polygon RPC on Triport support WebSocket?
- Yes, at wss://triport.io/ws/poly with eth_subscribe. newPendingTransactions is open from the trial, logs from Basic, newHeads and syncing from Pro. Polygon-specific bor_subscribe methods are not served on this channel.
- Does Triport charge credits or compute units for Polygon calls?
- No. Each plan is a flat monthly price with a requests-per-second budget per category, so an eth_getLogs call and an eth_blockNumber call cost the same: one request against the read budget.
- Can I send Polygon transactions through Triport?
- Yes. Send signed, serialized transactions with eth_sendRawTransaction at https://triport.io/polygon: 3/5/30/80 requests per second on the Free trial, Basic, Pro and Business. A returned hash means the request was routed — the receipt decides inclusion.
- What are the Polygon rate limits?
- Reads 15/20/100/250 requests per second on the Free trial, Basic, Pro and Business, with a 2x burst. Enterprise has no per-category cap. These are per-category RPS limits, not measured upstream capacity.
- Why does MetaMask say "Could not fetch chain ID" for Polygon?
- The RPC URL saved in the wallet does not answer. polygon-rpc.com returned 401 on 2026-11-01. Change the URL and check that eth_chainId returns 0x89.
- Is there a free Polygon RPC?
- Yes, for testing: https://triport.io/public/polygon needs no key and allows 15 reads per second, shared by every caller. A key starts with a 7-day trial.
- Does Triport serve Amoy?
- No. Triport serves Polygon mainnet only. Amoy is chain ID 80002 with POL as gas; its values are on the chain config page.
Polygon read methods
- eth_blockNumber
- eth_call
- eth_chainId
- eth_estimateGas
- eth_feeHistory
- eth_gasPrice
- eth_getBalance
- eth_getBlockByHash
- eth_getBlockByNumber
- eth_getBlockReceipts
- eth_getBlockTransactionCountByHash
- eth_getBlockTransactionCountByNumber
- eth_getCode
- eth_getFilterChanges
- eth_getLogs
- eth_getProof
- eth_getStorageAt
- eth_getTransactionByBlockHashAndIndex
- eth_getTransactionByBlockNumberAndIndex
- eth_getTransactionByHash
- eth_getTransactionCount
- eth_getTransactionReceipt
- eth_maxPriorityFeePerGas
- eth_newBlockFilter
- eth_protocolVersion
- eth_syncing
- eth_uninstallFilter
- net_listening
- net_peerCount
- net_version
- web3_clientVersion
- web3_sha3