Logo
New RPC users get 35% off their first monthView the offer
RPC Assistant

Amoy Polygon: What Is It and When Should You Use It?

Summary

Amoy Polygon is the current Polygon proof-of-stake testnet, replacing the deprecated Mumbai network. It runs the same client stack as Polygon mainnet (Bor and Heimdall) with chain ID 80002 and POL as its native gas token, so contracts and tooling behave almost identically to production. Developers use it to deploy and test smart contracts, indexers, and dApp frontends before shipping to Polygon mainnet.

This page explains what Amoy is, how to connect to it through an RPC endpoint, and how to decide between a public endpoint and managed or dedicated infrastructure. It also covers faucet access, MetaMask network settings, and the failure modes you are most likely to hit when moving from Mumbai to Amoy.

Amoy Polygon is the current Polygon proof-of-stake (PoS) testnet. If you have been searching for "amoy polygon" after seeing a deprecation notice on Mumbai, the short version is: Amoy replaced Mumbai as the canonical Polygon testnet, it uses chain ID 80002, and it runs the same Bor/Heimdall client stack as Polygon mainnet. That means contracts, tooling, and RPC methods behave almost identically to production, which is exactly what you want from a testnet.

This page answers what Amoy is, then helps you decide how to connect to it. If you already know you need an endpoint, jump to the chain settings table and the connection examples. If you are still evaluating whether Amoy is the right network for your workflow, start with the fit section below.

When Amoy is the right network for your work

Amoy is a testnet, so the decision is less about "is this good infrastructure" and more about "is this the correct network for the task in front of me." Use the following as a quick filter.

Your taskAmoy is a good fit?Notes
Deploying and testing Solidity contracts before mainnetYesSame EVM behavior as Polygon mainnet
Testing a dApp frontend against a live chainYesUse a stable RPC endpoint, not a shared public one, for repeated runs
Indexing or subgraph developmentYesConfirm your indexer supports chain ID 80002
Testing gas estimation and fee logicYesPOL is the native gas token, matching mainnet
Load testing production throughputNoTestnets do not reflect mainnet load or validator behavior
Storing anything of valueNoTestnet tokens have no monetary value
Bridging real assetsNoUse Polygon mainnet

If your task is in the top half of that table, Amoy is the right network. If it is in the bottom half, you want Polygon mainnet instead, which OnFinality also supports through its Polygon network page.

Amoy Polygon chain settings at a glance

These are the values you need to add Amoy to a wallet, a Hardhat config, or a backend service. Keep them consistent across environments to avoid subtle bugs.

SettingValue
Network namePolygon Amoy
Chain ID80002
Native currencyPOL (18 decimals)
Block explorerhttps://amoy.polygonscan.com
RPC transportHTTP and WebSocket
Client stackBor (execution) and Heimdall (consensus)

The chain ID is the value people get wrong most often. Mumbai used 80001; Amoy uses 80002. If a tool silently points at the wrong chain ID, transactions may appear to succeed locally while failing against the network you actually intended.

Connecting to Amoy through an RPC endpoint

An RPC endpoint is the HTTP or WebSocket address your wallet, script, or backend uses to read and write to the chain. OnFinality exposes a public Amoy endpoint you can use for light testing:

https://polygon-amoy.api.onfinality.io/public

For anything beyond occasional manual testing, you should use an API key or a dedicated node rather than the shared public endpoint. Public endpoints are rate-limited and shared across many users, which makes them unsuitable for CI pipelines, indexers, or anything that polls frequently.

Quick check with curl

The fastest way to confirm an endpoint is live and returning the chain you expect is a eth_chainId call:

curl -s https://polygon-amoy.api.onfinality.io/public \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'

A correct response returns 0x13882, which is 80002 in decimal. If you get a different value, you are talking to the wrong network.

MetaMask and wallet configuration

In MetaMask, add a network manually and enter the values from the table above. The two fields that cause the most confusion are the chain ID (80002) and the currency symbol (POL, not MATIC). Older tutorials still list MATIC because the token was renamed, but new network configurations should use POL.

JavaScript example with ethers

import { JsonRpcProvider } from "ethers";

const provider = new JsonRpcProvider(
  "https://polygon-amoy.api.onfinality.io/public",
  { chainId: 80002, name: "polygon-amoy" }
);

const block = await provider.getBlockNumber();
console.log("Amoy head block:", block);

Passing the chain ID explicitly lets ethers detect a mismatch early instead of failing later with a confusing error.

Getting testnet POL from a faucet

Amoy uses POL for gas, so you need testnet POL before you can deploy or send transactions. Faucets for Amoy are typically gated behind a wallet balance check or a small social verification step to reduce abuse. The general flow is:

  1. Add Amoy to your wallet using the settings above.
  2. Copy your wallet address.
  3. Request testnet POL from a Polygon Amoy faucet.
  4. Confirm the balance arrives before running deployments.

Faucet availability and drip amounts change over time, so treat any specific faucet URL as something to verify rather than a permanent constant. If a faucet is dry, the usual causes are a shared IP, a wallet that has already claimed recently, or a temporary outage on the faucet itself.

Common failure modes and how to debug them

Most Amoy problems are configuration problems, not network problems. The table below maps symptoms to likely causes.

SymptomLikely causeFix
chainId mismatch errorsWrong chain ID (80001 vs 80002)Update config to 80002
Transactions stuck pendingGas price too low or nonce gapResubmit with higher gas or reset nonce
insufficient funds on deployNo testnet POLRequest from a faucet
Intermittent 429 responsesShared public endpoint rate limitingMove to an API key or dedicated node
Contract not found after deployDeployed to a different chainVerify chain ID in the deploy output
WebSocket disconnectsIdle timeout on shared endpointReconnect logic or a dedicated node

If you are migrating from Mumbai, the single most common issue is a stale chain ID or a hardcoded Mumbai RPC URL left in a config file. Search your repository for 80001 and mumbai before you assume the network is broken.

Public endpoint vs managed RPC vs dedicated node

Once Amoy is working locally, the next decision is where to run it for your team. The three common options differ mainly in how much control and isolation you need.

OptionBest forTradeoffs
Public endpointManual testing, quick checksShared, rate-limited, no SLA
Managed RPC (OnFinality API service)CI, staging, small production dAppsAPI key, predictable access, less ops work
Dedicated nodeHigh-volume indexers, latency-sensitive appsFull isolation, more cost, more setup

OnFinality offers both managed RPC access through its API service and dedicated nodes through Dedicated Node. For most teams testing on Amoy, a managed endpoint with an API key is the right starting point. Move to a dedicated node when you need consistent throughput, WebSocket subscriptions at scale, or isolation from other users.

If you are comparing providers more broadly, the RPC provider selection guide covers the evaluation criteria in more depth, and RPC pricing explains how usage is typically metered.

Migrating from Mumbai to Amoy

Mumbai is deprecated, so if you still have Mumbai references in your codebase, plan a migration. The steps are usually small but easy to miss:

  1. Replace chain ID 80001 with 80002 everywhere it appears.
  2. Replace Mumbai RPC URLs with an Amoy endpoint.
  3. Update the block explorer URL to https://amoy.polygonscan.com.
  4. Re-request testnet POL from an Amoy faucet.
  5. Re-deploy contracts and re-run integration tests.
  6. Update any hardcoded contract addresses, since they will differ on Amoy.

A quick grep for mumbai, 80001, and maticmum will usually surface every place that needs attention.

Operational checklist for teams using Amoy

Before you treat Amoy as a stable part of your workflow, confirm the following:

  • Every environment (local, CI, staging) points at the same chain ID and endpoint.
  • Secrets such as API keys are stored in environment variables, not committed.
  • Your client has retry and timeout logic for transient RPC failures.
  • WebSocket clients reconnect automatically after disconnects.
  • You have a fallback endpoint in case the primary one is unavailable.
  • Monitoring alerts on failed RPC calls, not just on application errors.

These are the same habits you will need on Polygon mainnet, so building them on Amoy pays off later. OnFinality's supported RPC networks page lists the networks available if you want to run the same setup across testnet and mainnet.

Key Takeaways

  • Amoy is the current Polygon PoS testnet, replacing the deprecated Mumbai network.
  • It uses chain ID 80002, POL as the native gas token, and the Bor/Heimdall client stack.
  • The public OnFinality Amoy endpoint is fine for light testing, but managed or dedicated infrastructure is better for CI, indexers, and production-like workloads.
  • Most Amoy issues are configuration problems: wrong chain ID, missing testnet POL, or a stale Mumbai URL.
  • Migrating from Mumbai mainly means updating chain IDs, endpoints, explorer URLs, and contract addresses.

Frequently Asked Questions

What is Amoy Polygon?

Amoy is the Polygon proof-of-stake testnet. It replaced Mumbai and runs the same client software as Polygon mainnet, so contracts and tooling behave similarly without risking real assets.

What is the Amoy Polygon chain ID?

Amoy uses chain ID 80002. This is different from Mumbai's 80001, and mixing them up is a common source of errors.

What is the Amoy Polygon RPC endpoint?

OnFinality provides a public Amoy endpoint at https://polygon-amoy.api.onfinality.io/public. For regular use, an API key or dedicated node is recommended over the shared public endpoint.

Is Amoy the same as Polygon mainnet?

No. Amoy is a testnet with no real value. It mirrors mainnet behavior closely enough for development and testing, but you should never treat testnet tokens or state as production data.

How do I get testnet POL on Amoy?

Use a Polygon Amoy faucet. Availability and drip amounts change, so verify the current faucet before relying on it in a workflow.

Can I use Amoy for load testing?

No. Testnets do not reflect mainnet throughput or validator behavior. Use Amoy for correctness testing and mainnet-like staging for performance work.

What replaced Mumbai?

Amoy replaced Mumbai as the canonical Polygon testnet. If you still have Mumbai references, migrate them to Amoy.

RPC Knowledge Base

Related RPC details

Never Worry about Infrastructure Again

OnFinality takes away the heavy lifting of DevOps so you can build smarter and faster.

Get Started