Skip to content

Chain · checked 9 November 2026

Agent payment safety checks for Polygon PoS

Polygon PoS finalizes through milestones in about 2 to 5 seconds since Heimdall v2; it had a 157-block reorg in February 2023, before milestone finality, and a milestone delay in September 2025, so agents should use the finalized tag.

What your agent needs to know about Polygon PoS

Finality
Polygon docs say milestones give deterministic finality on Polygon itself, typically in about 2 to 5 seconds, without waiting for Ethereum. Checkpoints are separate: they cover a range of Bor blocks, are submitted to Ethereum, and serve as proof of burn for withdrawals; the range is set by governance. A transaction is final once the finalized block number exceeds its block number, using the finalized tag. History: a Polygon forum thread opened 23 Feb 2023 reports a 157 block reorg at block height 39599624, which a Polygon team member linked to a partial outage; no official post mortem appeared in that thread. On 10 Sep 2025 The Block reported a node bug that delayed milestones by 10 to 15 minutes, fixed by a hard fork (Bor v2.2.11-beta2, Heimdall v0.3.1), while Ethereum checkpoints stayed active.[1],[2],[3]
Fees
POL is the gas token (it is replacing MATIC). Polygon docs give no fee formula or minimum priority fee that we could cite, so none is stated; the docs point to the Polygon Gas Station estimation API. Agents should hold POL for gas even when paying in USDC.[4]
Stablecoins
Circle lists native USDC on Polygon PoS at the address below. Bridged USDC (commonly shown as USDC.e) is not issued by Circle and is not CCTP compatible per Circle's bridged USDC page; Circle's contract list does not give the USDC.e address, so none is given. Tether's page did not list Polygon, so no USDT address is given. The Circle USDC contract can blacklist addresses.[5],[6],[7]
Issuer-published contract addresses. Compare all of it, not the first and last characters.
TokenAddressSource
USDC (native, Circle)0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359[5]

How agent payments go wrong on Polygon PoS

  1. 1. Acting on a block before milestone finality

    A forum thread reports a 157 block reorg in February 2023, under the older probabilistic finality, before milestones; the Aalborg hard fork that activated milestones shipped in Heimdall v1.0.1 in September 2023. Do not count confirmations: wait for the finalized tag, which follows milestones, to pass the payment block.[1],[2],[8]

  2. 2. Milestone delay

    On 10 Sep 2025 milestones lagged by 10 to 15 minutes because of a node bug. An agent with a 5 second finality timeout can wrongly mark payments failed. Use a longer timeout and alert instead of resending.[3],[1]

  3. 3. Confusing checkpoint with finality

    Milestones finalize a transaction on Polygon well before the checkpoint reaches Ethereum. Checkpoints matter for withdrawals to Ethereum. Use the finalized tag for payments, and the checkpoint only for exits.[1]

  4. 4. USDC.e taken for native USDC

    Bridged USDC is not issued by Circle and is not CCTP compatible. Accept only the address on Circle's list.[5],[6]

  5. 5. No POL for gas

    Gas is paid in POL, not in the stablecoin. An agent holding only USDC cannot send. Check the POL balance against the fee estimate before building the transaction.[4]

Pre-flight checklist for a Polygon PoS agent

  • Wait until the finalized block number exceeds the payment block before treating it as settled.
  • Use a finality timeout of many minutes, not seconds, and alert instead of resending.
  • Accept USDC only at Circle's native Polygon address; reject USDC.e.
  • Check the POL balance before sending.
  • Call isBlacklisted on the USDC contract for the payee before sending.

Run the checks now, free

The free tools run in your browser: nothing you type leaves your browser, and wallet reads go only to a public RPC.

  • The Wrong-Money Test

    Write down what happens when your agent pays the wrong amount, the wrong address or the wrong token on Polygon PoS, and see whether the answer holds up.

  • Agent Spend-Cap Stress Test

    Work out how much your agents can really move in one window once retries, parallel runs and per-key limits stack up.

  • Agent Money Trace

    Reads an address's Polygon PoS stablecoin transfers from a public RPC and joins them to your run log: orphan spend, phantom successes and double pays.

Want a second pair of eyes on how your agent pays on Polygon PoS? Book the free 48-hour integration review (opens Cal.com in a new tab).

Explorers to confirm a payment

Sources

  1. [1] Finality, Polygon docs
  2. [2] 157 block reorg at block height 39599624, Polygon forum
  3. [3] Polygon hard fork to address finality bug, The Block
  4. [4] Polygon PoS get started, Polygon docs
  5. [5] USDC contract addresses, Circle
  6. [6] Bridged USDC Standard, Circle
  7. [7] Blacklistable.sol, Circle (GitHub)
  8. [8] Heimdall v1.0.1 release (Aalborg hard fork activates milestones), Polygon (GitHub)

Checked against these sources on 9 November 2026. Networks change: confirm against the live docs before you rely on a number. This page is a checklist from public documentation. It is not a security audit, legal, compliance or investment advice.