Polygon Amoy Testnet: RPC URL, Chain ID 80002 & 5 Faucets

Connect to Polygon Amoy (chain ID 80002): RPC URL, MetaMask settings, five test POL faucets from Polygon's docs, plus ethers.js and Web3.py code to deploy your first contract.

Polygon Amoy Testnet: RPC URL, Chain ID 80002 & 5 Faucets

Polygon Amoy is the official testnet for Polygon PoS. If you are still targeting Mumbai, that testnet was deprecated in 2024 and is no longer available. This guide covers how to connect to Amoy using multiple libraries, run test transactions, get test tokens, deploy contracts, plus how to fix the most common issues developers hit in 2026.

For endpoint details, chain ID, MetaMask setup, see the Polygon Amoy RPC endpoint page.


What is Polygon Amoy Testnet

Polygon Amoy is a proof-of-stake testnet that mirrors Polygon PoS mainnet exactly. It uses chain ID 80002 and the native token is POL (test). Block time is approximately 2 seconds. Amoy uses Ethereum L1 checkpoints for finality, matching mainnet behavior so that contracts behave identically in both environments.

The testnet is EVM-compatible. Any Solidity contract, Hardhat or Foundry config, or deployment script that works on Amoy will work on Polygon mainnet without modification.


Amoy vs Mumbai: Why Mumbai Was Deprecated

Mumbai was Polygon’s original testnet. It ran an older version of the Polygon stack that diverged from mainnet over time. By late 2023, Mumbai no longer reflected mainnet behavior accurately, particularly around the POL token upgrade and validator set changes.

Polygon Labs announced Amoy as a replacement in January 2024. Mumbai was shut down in the following months. Key differences:

Mumbai (deprecated)Amoy (current)
Chain ID8000180002
Native tokenMATIC (test)POL (test)
StatusOfflineActive
Mainnet parityNoYes
Public RPCDeadActive

If you have any hardcoded Mumbai RPC URLs, chain IDs, or faucet links in your codebase, replace them with Amoy equivalents before your next deployment cycle.


Connecting Step by Step

All examples below use the BoltRPC endpoint. Replace YOUR_API_KEY with your API key from dashboard.boltrpc.io. Full endpoint details are on the Polygon Amoy chain page.

HTTP endpoint: https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/polygon-amoy WSS endpoint: wss://endpoints.boltrpc.io/ws/YOUR_API_KEY/polygon-amoy Chain ID: 80002

ethers.js (v6)

import { ethers } from "ethers";

const provider = new ethers.JsonRpcProvider(
  "https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/polygon-amoy"
);

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

For event subscriptions, use the WSS endpoint:

const wsProvider = new ethers.WebSocketProvider(
  "wss://endpoints.boltrpc.io/ws/YOUR_API_KEY/polygon-amoy"
);

wsProvider.on("block", (blockNum) => {
  console.log("New Amoy block:", blockNum);
});

Web3.py

from web3 import Web3

rpc_url = "https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/polygon-amoy"
w3 = Web3(Web3.HTTPProvider(rpc_url))

print("Connected:", w3.is_connected())
print("Chain ID:", w3.eth.chain_id)   # should return 80002
print("Block:", w3.eth.block_number)

curl

Test your connection directly from the command line:

curl -X POST \
  "https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/polygon-amoy" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'

Expected response:

{"jsonrpc":"2.0","id":1,"result":"0x13882"}

0x13882 is 80002 in decimal, confirming you are connected to Polygon Amoy.


Example RPC Methods on Amoy

These are the methods most commonly used during testnet development. All work identically on Amoy and Polygon mainnet.

Check test wallet balance:

curl -X POST "https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/polygon-amoy" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0xYOUR_ADDRESS","latest"],"id":1}'

Get latest block:

curl -X POST "https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/polygon-amoy" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

Call a deployed contract:

curl -X POST "https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/polygon-amoy" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0xCONTRACT","data":"0xFUNCTION_SELECTOR"},"latest"],"id":1}'

Getting Test POL (Faucets)

Test POL has no monetary value. It exists only to pay gas fees on Amoy. Polygon’s documentation lists five faucets:

FaucetURLWhat it asks for
Polygon (official)faucet.polygon.technologySelect Amoy and POL, paste your address
Alchemyalchemy.com/faucets/polygon-amoyWorks without an account; an Alchemy login raises the daily drip
QuickNodefaucet.quicknode.com/polygonConnect a wallet, choose Amoy
GetBlockgetblock.io/faucet/matic-amoyGetBlock account
StakePoolfaucet.stakepool.dev.brListed by Polygon without details

Drip amounts and anti-abuse checks change often, so if one faucet is dry or rate-limited, try the next. Every faucet sends to any EVM address, and the transaction confirms on Amoy within a minute or two.


Deploying and Testing Smart Contracts on Amoy

Hardhat

Add Amoy to your hardhat.config.js:

module.exports = {
  networks: {
    amoy: {
      url: "https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/polygon-amoy",
      chainId: 80002,
      accounts: [process.env.PRIVATE_KEY],
    },
  },
};

Deploy:

npx hardhat run scripts/deploy.js --network amoy

Verify on PolygonScan Amoy:

npx hardhat verify --network amoy DEPLOYED_CONTRACT_ADDRESS

Foundry

forge create src/MyContract.sol:MyContract \
  --rpc-url "https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/polygon-amoy" \
  --private-key $PRIVATE_KEY \
  --chain-id 80002

Run tests against Amoy fork:

forge test --fork-url "https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/polygon-amoy"

After deployment, verify the contract address on amoy.polygonscan.com to confirm the transaction landed.


Common Issues

“Chain ID mismatch” error Your config has the wrong chain ID. Amoy is 80002. Mumbai was 80001. Update everywhere: Hardhat config, Foundry config, wallet setup, any hardcoded values in test scripts.

“Insufficient funds” on a fresh wallet You need test POL for gas before you can submit any transaction. Use a faucet (see above). eth_call reads do not require gas, but eth_sendRawTransaction writes do.

Faucet requires Sepolia ETH The official Polygon faucet requires Sepolia ETH as an anti-abuse measure. Get free Sepolia ETH from the Sepolia PoW faucet or Alchemy’s Sepolia faucet, then return to the Polygon faucet.

WebSocket connection drops after a few minutes Implement reconnect logic in your listener. Amoy is a testnet and occasional node restarts happen. A reliable provider like BoltRPC reduces the frequency, but your code should handle reconnects regardless.

eth_getLogs returns an error on large block ranges Amoy enforces a block range limit on log queries. Keep the range under 1000 blocks per request. For wider historical queries, paginate your requests.


FAQ

What is the Polygon Amoy RPC URL? The BoltRPC endpoint for Polygon Amoy is https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/polygon-amoy. The chain ID is 80002. For the full MetaMask setup, visit the Polygon Amoy chain page.

What is the Polygon Amoy chain ID? Polygon Amoy Testnet uses chain ID 80002. Polygon mainnet uses chain ID 137. Always verify the chain ID in your config to avoid sending transactions to the wrong network.

What replaced Polygon Mumbai testnet? Polygon Amoy replaced Mumbai in 2024. Mumbai ran an older Polygon stack that no longer matched mainnet. Amoy mirrors the current Polygon PoS mainnet including the POL token upgrade. Mumbai is no longer active.

How do I get test POL for Polygon Amoy? Use faucet.polygon.technology. You will need a small amount of Sepolia ETH in the requesting wallet. Test POL is free and only valid on Amoy.


Ready to connect? Get your Polygon Amoy RPC endpoint with a 2-week free trial at dashboard.boltrpc.io. No credit card required.

Questions we get about this.

Content is for informational purposes only and does not constitute financial, legal or technical advice. Code examples and configurations are provided as-is. Verify against official documentation and test in your own environment before deploying to production.

More from the blog.

All articles →
RPC

WebSocket vs Polling: Block Data Costs, Measured

A newHeads WebSocket stream against 1-second polling for 24 hours on one key: what each costs in request units, how much earlier the stream knows and how to pick the right feed per chain.

Sep 19, 2026 · 14 min read
RPC

BoltRPC Dashboard: Keys, Usage and Billing

The BoltRPC dashboard is live: create API keys, pick your networks, track request units, manage billing. Start with a free trial, no credit card required.

Sep 16, 2026 · 10 min read
RPC

Decentralized RPC vs Dedicated RPC: Which to Choose

Decentralized RPC networks vs dedicated providers: latency consistency, accountability, cost. An operator's honest guide to choosing for production.

Jul 6, 2026 · 12 min read