Polygon

Polygon is configured with chain ID 137, POL gas, and receipt checks

Last updated

Polygon is set up correctly when an EVM wallet targets Polygon PoS chain ID 137, shows POL as the native gas asset, and reads account state from a responsive RPC endpoint. Before confirmation, compare the recipient, requested token amount, contract action, gas limit, maximum fee, and selected account; after execution, use the transaction receipt and balance changes to confirm what moved. A rejected signature changes nothing, an included transaction with failed execution consumes gas without completing the requested state change, and an unavailable RPC can make a confirmed transaction look pending. This page follows that interface decision path from network setup through signing, confirmation, verification, and recovery from chain ID or RPC mismatch.

POL replaces MATIC in the wallet setup path

The POL migration is the wallet-facing change on Polygon PoS: POL now pays native gas, while mainnet keeps chain ID 137 and existing account addresses unchanged.

Native MATIC balances on Polygon PoS were converted to native POL at a 1:1 ratio, so no separate wallet transaction is required. Older custom records may label the unit MATIC because the currency symbol is local metadata. Editing it to POL corrects the display without modifying the balance. Native POL uses 18 decimal places: one POL contains 10^18 wei, and one gwei equals 10^9 wei. MetaMask, Rabby, Ledger-linked accounts, and applications using WalletConnect read the same chain state even when their labels differ. The corrected record lets fee quotes and balance deltas use the right unit.


Chain ID 137 separates Polygon state from Ethereum state

Chain selection is the signed transaction boundary between Polygon PoS and every other EVM network, including Ethereum mainnet. An EVM address contains 20 bytes and displays 40 hexadecimal characters after the 0x prefix, so the same account looks identical on chain ID 1 and chain ID 137. Its balances, token contracts, nonces, and transaction history remain chain-specific. An EIP-155 transaction signed for one chain ID is invalid on the other. Reading the active chain beside the account and recipient keeps the confirmation attached to the intended ledger.


Add Polygon PoS without duplicate network records

Network addition is a metadata workflow linking an EVM wallet to Polygon PoS; switching activates an entry the wallet already recognizes. MetaMask and Rabby support both operations, while WalletConnect carries the selected chain through an application session, as documented in Polygon pricing.

Manual identifiers

Polygon PoS mainnet uses decimal chain ID 137, expressed as 0x89 in hexadecimal JSON-RPC requests. A manual record needs the Polygon PoS name, POL symbol, 18 decimals, and an HTTPS RPC endpoint. The eth_chainId response from that endpoint must also be 0x89; a name or icon is not a protocol check. Polygonscan supplies the explorer view; explorer metadata does not control execution. EIP-3085 prevents multiple network entries with the same chain ID, so edit an outdated record or switch to the built-in entry instead of creating another 137 record.

Automated add and switch requests

An application uses wallet_addEthereumChain under EIP-3085 to propose chain metadata. A successful response is null, but it does not guarantee the new chain became active. The separate EIP-3326 wallet_switchEthereumChain request carries one chainId field, which should be 0x89 for Polygon mainnet. The wallet asks the user to authorize that switch, keeping application state and wallet state aligned.

Account and gas prerequisites

An EVM account, an approved wallet connection, and enough native POL for the displayed maximum cost are the normal prerequisites. A Ledger account can sign through MetaMask or Rabby, while a WalletConnect session still relies on the connected wallet for authorization. USDC and other ERC-20 balances do not pay protocol gas unless the application uses a relayer or paymaster to sponsor it. Meeting these inputs turns network metadata into a usable transaction path.

Read the confirmation screen as a state-change proposal

The confirmation panel is the last structured view of the Polygon action before a wallet produces a signature. First distinguish an off-chain message signature from an on-chain transaction carrying a gas estimate and executable data.

For a native transfer, the transaction value is POL. For an ERC-20 transfer, the raw to field points to the token contract, while the intended recipient and amount sit inside calldata. Native USDC uses 6 decimals, whereas POL uses 18, so equal-looking integers represent different display amounts. An approve call changes allowance without moving the approved tokens at confirmation time. MetaMask and Rabby decode contract calls to different depths; matching the method, contract, account, and fee ties the signature to the intended state change.


How much POL should the wallet hold for gas?

A gas reserve is the POL balance available to cover the confirmation screen’s maximum transaction cost. Polygon PoS mainnet enforces a 25 gwei minimum priority fee, while Polygon Gas Station and EIP-1559 wallets estimate the moving base fee and gas limit.

Worked example. All changing inputs in this hypothetical fee display are illustrative: the wallet sets a 25,000 gas limit and a 40 gwei maximum fee, while execution uses 21,000 gas with a 5 gwei base fee and the 25 gwei minimum priority fee. The maximum reservation is 25,000 × 40 gwei, or 0.001 POL. The actual fee is 21,000 × 30 gwei, or 0.00063 POL. The wallet releases the unused gas allowance and the difference between the fee cap and the effective gas price.

The maxFeePerGas value is a ceiling, not the expected charge. Actual cost equals gasUsed multiplied by effectiveGasPrice, both recorded in the receipt after inclusion. Comparing the reserve, fee cap, and decoded action prevents a valid signature from failing solely because the account lacks enough POL.

What changed after the transaction executed?

An executed Polygon transaction is an EVM state transition: account balances, nonces, allowances, token ownership, and contract storage change only after successful execution. The transaction type determines which fields move.

In a native POL transfer, the recipient balance rises by the transfer amount, the sender balance falls by that amount plus the actual fee, and the sender nonce increases by exactly 1. An ERC-20 transfer changes balance records inside the token contract, while the sender’s native POL pays gas. An approval changes the spender allowance rather than transferring the token. An ERC-721 transfer updates the owner record for one token ID; ERC-1155 changes balances for one or more IDs. Receipt status 0x1 records successful execution, so these changes survive in the resulting state.

An included transaction with receipt status 0x0 reverts its requested contract and balance changes, yet it charges gas and consumes the sender’s nonce. A user rejection creates no transaction hash and no on-chain change. A pending hash has no receipt yet, so the interface cannot claim an executed state transition from submission alone. These distinctions tell the reader whether to retry an action, refresh a read, or inspect a completed failure.

Polygon graphic reading The go-to blockchain for payments

Verify the receipt, balances, and token events

Receipt verification is the three-layer check connecting a Polygon transaction hash to execution status, account deltas, and contract events. Each layer answers a different confirmation question.

Transaction receipt

A transaction hash is 32 bytes, displayed as 64 hexadecimal characters after 0x. The JSON-RPC method eth_getTransactionReceipt returns null while no receipt is available; after inclusion, inspect status, blockNumber, gasUsed, effectiveGasPrice, and logs. Polygonscan presents the same on-chain fields through an indexed interface, which helps separate a wallet display delay from missing execution.

Balance delta

A balance delta checks the intended asset rather than the ticker alone. For POL, compare the sender’s reduction with the transfer plus actual gas fee and the recipient’s increase with the transfer amount. For an ERC-20 action, read the token contract’s balance for both addresses. Reloading MetaMask or switching RPC endpoints refreshes cached presentation without creating another transaction.

Token event and finality

Contract logs provide a third record of the executed method. ERC-20 and ERC-721 transfers emit a Transfer event, while ERC-1155 uses TransferSingle or TransferBatch; an ERC-20 allowance update emits Approval. Polygon PoS milestone finality is designed to land within 2 to 5 seconds, using Heimdall block times of 1 to 2 seconds. A client can query the finalized block tag and compare that height with the receipt’s block number, rather than treating first display as finality.

Receipt status, the asset-specific balance delta, and the expected event together identify the completed state change. That combined record is stronger than a green interface label alone.

Recover from a chain ID or RPC mismatch

RPC recovery is a configuration repair for wallets that cannot switch to Polygon, return the wrong chain, or stop updating confirmed state. Start with the chain response because it separates metadata errors from endpoint availability.

Unknown chain response

MetaMask commonly returns code 4902 when a requested chain has not been added; that code is wallet-specific rather than part of EIP-1193. Request a switch to 0x89 first, add the EIP-3085 Polygon metadata only after the unknown-chain response, and then request the switch again. Code 4001 means the user rejected the prompt, so a new request belongs behind a fresh user action rather than an automatic loop.

Endpoint returns the wrong chain

Call eth_chainId through the configured endpoint before changing transaction settings. A Polygon mainnet endpoint must return 0x89; 0x1 identifies Ethereum mainnet, and no response points to connectivity or provider availability. Select the wallet’s built-in Polygon entry or replace the endpoint inside the existing chain ID 137 record, then reconnect the application. EIP-1193 code 4900 means the provider is disconnected from all chains, whereas 4901 means it cannot service the requested chain. A matching response restores reliable balance and receipt reads.

Pending nonces, approvals, and asset context

Advanced wallet handling is nonce, allowance, and asset-context management after the basic Polygon path works. A pending transaction at nonce N blocks later transaction N+1 from the same account; a replacement uses nonce N with a higher viable fee. An ERC-20 approval remains active until another approval changes it, and setting the allowance to zero removes that permission. Native POL, wrapped POL (WPOL), and USDC occupy different balance records, so chain ID 137 plus the token contract identifies the asset the interface should display.

Good to know

Does signing a Polygon message spend POL?

Signing a plain message does not spend POL because the wallet creates an off-chain signature and submits no transaction to Polygon PoS. The message itself may authorize a later application action, so read its domain, account, chain context, nonce, and expiry if shown. A transaction hash, gas estimate, and fee confirmation indicate an on-chain action rather than a message signature.

Which decimals belong in a manually imported Polygon token?

Use the decimal value returned by the specific token contract, not a universal ERC-20 default. Native POL uses 18 decimals, while native USDC on Polygon PoS uses 6, so the same display amount maps to different integer values. MetaMask and Rabby normally read this metadata automatically. If a manual import shows an implausible balance, recheck the contract address, chain ID 137, symbol, and decimals before interpreting the number inside the import form.

Do sponsored Polygon transactions require POL in my wallet?

A sponsored Polygon transaction does not require your account to pay POL when a relayer or paymaster covers the fee. The interface should distinguish the user signature from the transaction the sponsor submits. Sponsorship applies only to that supported flow; a direct ERC-20 transfer, approval, or contract call from the account still needs POL unless the application explicitly sponsors it.

Is Amoy testnet suitable for checking a Polygon wallet setup?

Amoy is the Polygon PoS testnet intended for rehearsing wallet connections and transactions without mainnet assets. It uses chain ID 80002 and POL test tokens, while mainnet uses chain ID 137 and real POL. Because balances, contract addresses, and transaction histories are separate, a successful Amoy transfer confirms the wallet workflow rather than mainnet liquidity. Switch back to 137 and recheck every confirmation field before a mainnet action on the wallet screen.

Which hardware wallets work with Polygon PoS chain ID 137?

Ledger and Trezor devices work with Polygon PoS through EVM wallet interfaces including MetaMask and Rabby, using the same 20-byte EVM address format and chain ID 137 context as Ethereum-compatible transactions. The device signs; the connected wallet supplies network metadata, RPC access, and the confirmation interface. Contract-data visibility differs by device, firmware, and wallet, so compare the address, amount, method, and fee in both displays when available before approving the final on-device signature request.

Does WalletConnect keep Polygon selected after I reconnect?

WalletConnect does not guarantee Polygon remains selected between sessions because chain permissions and active-network state belong to the wallet session. On reconnect, confirm chain ID 137 is included in the approved namespaces and active before requesting a signature. If the application requests another chain, the wallet may show a switch confirmation; rejecting it leaves the active chain unchanged.