Polygon PoS is Polygon's flagship EVM chain — originally a Plasma + PoS sidechain, now positioned as the settlement layer in Polygon's AggLayer-anchored Open Money Stack. Mainnet chain ID 137, ~2s block time with fast finality, Heimdall consensus over Bor (a Geth fork), and POL as the native gas + staking token after the September 2024 MATIC->POL migration completed (>99% migrated by 2026). Visa added Polygon for stablecoin settlement in April 2026.
- 01high-volume EVM apps at cents-level fees
- 02stablecoin payments and consumer rails (Visa-aligned)
- 03AggLayer-connected liquidity (cross-chain via pessimistic proofs)
- 04Ethereum-equivalent Solidity deployments with mature tooling
- pnpm add viem wagmi
| Variable | Scope | Description |
|---|---|---|
| NEXT_PUBLIC_POLYGON_RPC_URL | Client | Polygon PoS RPC URL (mainnet: https://polygon-rpc.com). |
| NEXT_PUBLIC_POLYGON_CHAIN_ID | Client | Chain ID — 137 for Polygon PoS mainnet, 80002 for Amoy testnet. |
Use viem's built-in `polygon` / `polygonAmoy` chains (`import { polygon } from 'viem/chains'`) — chain ID 137, gas token POL (18 decimals), RPC `https://polygon-rpc.com`. Solidity contracts deploy unchanged with Foundry: `forge create --rpc-url $POLYGON_RPC --private-key $PK src/MyContract.sol:MyContract`. The native token is POL after the 2024 MATIC->POL migration; on Polygon PoS, MATIC was auto-converted 1:1 to POL, but on Ethereum L1 holders had to migrate via `portal.polygon.technology`. Bridge ETH/ERC-20s via the canonical Polygon PoS Bridge or AggLayer (for cross-chain liquidity with Polygon zkEVM, Polygon CDK chains, and other AggLayer-connected networks). Indexers The Graph, Goldsky, Envio, and Subsquid all support chain 137.
- ⚑Gas token rebrand: as of Sept 2024 the native token is POL, not MATIC. Tools/UI/wallets that still display 'MATIC' are stale — update labels and ensure wallets show the correct symbol. ERC-20 MATIC on Ethereum L1 still exists for unmigrated holders but should be migrated via Polygon Portal.
- ⚑Polygon PoS uses Heimdall + Bor — checkpoints to Ethereum happen periodically (~30 minutes). 'Finality' on Polygon is fast (~2s) for L2 reorg purposes, but L1-anchored finality only after a Heimdall checkpoint is committed to Ethereum. For high-value flows that depend on Ethereum settlement, wait for the checkpoint.
- ⚑Reorgs on Polygon PoS have historically been deeper than Ethereum (occasionally 100+ blocks under congestion or validator issues). For exchange deposits and other high-value confirmations, use 200+ block confirmations or wait for checkpoint inclusion.
- ⚑Public RPC `https://polygon-rpc.com` is rate-limited and not suitable for production. Use a paid provider (Alchemy, QuickNode, Chainstack, dRPC, Ankr) — Polygon's RPC URL field in dapps should always be a private endpoint, not the public one.
- ⚑Polygon PoS is distinct from Polygon zkEVM (chain 1101, separate integration `polygon-zkevm`) and Polygon CDK chains (separate integration `polygon-cdk`). They share branding and the AggLayer but have different security models, gas tokens, and contract addresses. Do not assume cross-deployment compatibility.
- ⚑USDC on Polygon PoS exists as both Circle-native USDC (Circle CCTP) and the older bridged USDC.e — they are NOT fungible without a swap. Token-route logic must distinguish the two and prefer native USDC for new integrations.