Site icon Chainstack

Running your own Polygon node: infrastructure for prediction markets

Polygon Sh logo

Running a Polygon node yourself has historically been a commitment. Polygon PoS doesn’t run a single client the way Bitcoin, TRON, or Solana do — it runs two, paired together. Bor handles execution (it’s a modified go-ethereum client that produces and executes blocks), and Heimdall handles consensus — a Cosmos-SDK-based layer that manages the validator set, produces checkpoints, and commits them to Ethereum for finality.

You don’t run one binary and size one box; you run two services that have to stay in version lockstep, plus a dependency neither Bitcoin, TRON, nor Solana has: Heimdall needs its own Ethereum L1 RPC endpoint to track checkpoints, so “run a Polygon node” has always secretly meant “run a Polygon node and keep an Ethereum endpoint pointed at it.

Teams that needed direct, verifiable access to Polygon state took on that two-client, cross-chain-dependency stack because the alternative — trusting a third party’s view of state you were settling real value against — wasn’t acceptable. Teams without that requirement rented an RPC endpoint and moved on.

The operational math has shifted. What made self-hosting Polygon a project was rarely Bor or Heimdall individually — both are mature, actively maintained clients with years of mainnet hardening. The hard part was everything around them: sizing hardware for two coordinated services, keeping both on compatible versions through Polygon’s active hard fork cadence, wiring up and maintaining the external Ethereum dependency, and monitoring checkpoint health rather than just block height. Chainstack Self-Hosted now supports Polygon PoS, which means that operational layer becomes software you consume rather than a stack you assemble yourself.

This piece is about who actually benefits from running their own Polygon node, what that looks like day-to-day, and how the newer, Self-Hosted answer compares to building it yourself.

Why running a Polygon node used to be a project

Bor and Heimdall aren’t two independent options — they’re a pair. Bor is the execution layer: it produces blocks, executes transactions, and exposes the standard Ethereum-style JSON-RPC surface every EVM tool already speaks. Heimdall is the consensus layer: a separate Cosmos-SDK/Tendermint-family process that tracks the PoS validator set, aggregates Bor block spans into checkpoints, and periodically commits those checkpoints to a contract on Ethereum — which is where Polygon’s real finality actually comes from. Run Bor without Heimdall and you have an execution client with no consensus input. Run them on mismatched versions during a hard fork window and you risk a node that silently disagrees with the network. When you run your own node, you get the same feature set Polygon’s own infrastructure operators do:

Unlocking that on your own infrastructure meant building the ops layer around the Bor/Heimdall pair yourself: sizing hardware for two coordinated services rather than one, bootstrapping Heimdall’s own chain state alongside Bor’s, standing up and maintaining an Ethereum L1 endpoint purely so Heimdall could track checkpoints, and staying current through a hard fork cadence that has shipped several major upgrades in the past 18 months. That’s the setup burden this article is really about — and the teams that took it on did so for specific, nameable reasons.

Who actually runs their own Polygon node, and why

At a glance:

AudienceUse caseWhat running your own unlocksExamples
Prediction markets & on-chain settlementHigh-frequency order settlement, event monitoring, executionReliable OrderFilled event streams, WebSocket feeds, and tx submission without shared rate limitsPolymarket
Stablecoin & payments platformsSettle USDC/stablecoin transfers and payouts at volumeIndependent verification of balances and confirmationsStripe, Meta creator payouts, Visa stablecoin settlement pilot
DeFi protocolsLending, swaps, and on-chain logic tied to real-time stateReal-time account/contract state without shared-tier latencyAave
Compliance & analyticsTransaction tracing and monitoringFull, direct, redundant chain accessChainalysis, Elliptic

The pattern across all of these: when Polygon data is load-bearing for your business — order settlement, payment confirmation, on-chain lending logic, compliance monitoring — you don’t rent it.

What running your own actually costs

What changed: Chainstack Self-Hosted now supports Polygon

The historical reason teams reached for managed RPC over self-hosting Polygon wasn’t a preference for managed RPC — it was that sizing and running a paired execution/consensus stack, wiring up an external Ethereum dependency, and staying current through Polygon’s fork cadence was overhead most teams couldn’t justify unless the workload demanded it.

Chainstack Self-Hosted is what happens when you separate “own the node” from “build the operational stack around it.” Self-Hosted now supports Polygon PoS on Mainnet and the Amoy testnet, with the same deployment workflow as the rest of the platform: pick the protocol, pick the network, deploy (Supported deployments).

Mainnet runs Bor v2.8.3 paired with Heimdall v0.9.0, on 12 vCPU, 64 GiB RAM — split across the two clients — and roughly 5.5 TB of storage. Amoy testnet runs Bor v2.10.0 with Heimdall v0.11.0, on a lighter 6 vCPU, 24 GiB RAM, and 170 GB of storage. Here’s the asymmetry worth being upfront about: Amoy bootstraps from a pre-built snapshot — provision roughly 2× the steady-state storage during deploy, since the compressed archive and the extracted state briefly coexist on disk — but Mainnet does not. Mainnet syncs the conventional way, from genesis. If you’re deploying Mainnet, plan your initial sync window as a real sync, not a snapshot restore.

Polygon PoS also requires an Ethereum Layer 1 RPC endpoint that you supply. Heimdall uses it to track and validate checkpoints committed to Ethereum — without it, Heimdall has no way to follow Polygon’s actual finality layer. This is the same category of prerequisite that OP Stack chains on this platform carry: it’s not optional, it’s not provided for you, and an unreliable or rate-limited L1 endpoint becomes a Polygon problem, not just an Ethereum one. Have that endpoint ready before you deploy.

One Polygon node, two clients: Bor and Heimdall, plus a required Ethereum L1 endpoint.

The exposed surface is Bor’s standard HTTP JSON-RPC on port 8545 and WebSocket JSON-RPC on port 8546, plus Heimdall’s REST API (Cosmos LCD) on port 1317. Bor’s P2P port (30303) and Heimdall’s CometBFT RPC (26657) and P2P (26656) ports are internal only and not exposed.

When to self-host Polygon, and when not to

The decision isn’t religious. It’s a workload question.

Run your own Polygon node if:

Reach for managed Chainstack Polygon instead if:

The middle ground — production workloads that wanted their own Polygon node without committing to sourcing and babysitting a two-client, cross-chain-dependent stack themselves — used to have no clean answer. DIY self-hosting worked, but the hardware research, the Bor/Heimdall version coordination, and the standing Ethereum endpoint dependency was itself a quarter of DevOps work. Chainstack Self-Hosted is what removes that barrier: your infrastructure, none of the setup marathon.

If your Polygon workload is heading toward “load-bearing for the business” — and on a chain settling billions of dollars in prediction-market trades and a growing share of the industry’s stablecoin payment volume, that threshold arrives faster than most teams expect — running your own node was always the right answer. What’s new is that the path from “I should probably do this” to “it’s deployed and monitored” doesn’t require becoming a Bor/Heimdall specialist first.

FAQ

How long does the initial Polygon node sync take?

It depends on which network. Amoy testnet on Chainstack Self-Hosted bootstraps from a pre-built snapshot, typically completing in a few hours. Polygon Mainnet does not ship with a snapshot preset — it syncs the conventional way from genesis, which in the wider ecosystem commonly takes anywhere from several days to a few weeks depending on client and hardware. Don’t plan a Mainnet deploy on Amoy’s timeline; they’re genuinely different.

How much storage does a Polygon node need?

Roughly 5.5 TB for Mainnet and 170 GB for Amoy testnet on Chainstack Self-Hosted. For Amoy, provision about 2× that during the initial deploy, since the compressed snapshot archive and the extracted state briefly coexist on disk. Mainnet’s footprint will keep growing over time; Polygon’s Rio upgrade introduced stateless validation specifically to slow that growth going forward, but it doesn’t shrink the state that already exists.

Why does Polygon need two clients — Bor and Heimdall?

Bor is the execution client: it produces and executes blocks and exposes the standard Ethereum-style JSON-RPC surface. Heimdall is the consensus client: a separate Cosmos-SDK-based process that tracks the validator set, assembles checkpoints from Bor’s block history, and commits them to Ethereum, which is where Polygon’s actual finality comes from. They run as a paired stack, split resources across the two, and need to stay on compatible versions — you can’t meaningfully run one without the other.

Does Polygon require an Ethereum endpoint to run?

Yes. Heimdall needs an Ethereum Layer 1 RPC endpoint — which you supply, it isn’t provided for you — to track and validate the checkpoints Polygon commits to Ethereum. An unreliable or rate-limited L1 endpoint becomes a Polygon finality problem, not just an Ethereum one, so this is worth treating as a hard prerequisite rather than an afterthought.

How often does Polygon PoS upgrade, and what does that mean operationally?

Actively. In roughly the past 18 months Polygon has shipped Bhilai (mid-2025, block gas limit increase), Heimdall v2 (mid-2025, faster ~5-second finality), Rio (October 2025, targeting 5,000 TPS via stateless validation), Lisovo (March 2026, Dynamic Gas Target), and Giugliano (April 2026, faster block-availability signaling and on-chain fee data). Because Bor and Heimdall version together, each of these means redeploying both clients in sync. Chainstack Self-Hosted doesn’t currently auto-update client versions for you, so this is a recurring, active maintenance item rather than a rare one.

Is Polygon Amoy testnet supported, in addition to Mainnet?

Yes. Chainstack Self-Hosted supports both Polygon Mainnet and the Amoy testnet, with different resource presets and bootstrap behavior for each — see the sync and storage answers above for the specific asymmetry between them.

What happens if my self-hosted Polygon node fails?

Chainstack Self-Hosted ships with Kubernetes-level self-healing: if the node pod crashes, the deployment automatically restarts it and resumes from the last state on the persistent volume. Multi-endpoint failover to a Chainstack-managed Polygon endpoint is planned but not yet shipped, so for now you’re on your own for diagnosing anything beyond a simple pod restart.

Does Chainstack Self-Hosted support Polygon zkEVM or Polygon CDK app-chains too?

No — this covers Polygon PoS specifically (the Bor/Heimdall chain, Mainnet and Amoy). Polygon zkEVM and Polygon CDK-based app-chains are architecturally distinct systems with different client stacks and aren’t part of this Self-Hosted deployment.

What protocols are coming next to Chainstack Self-Hosted?

Polygon brought the Self-Hosted catalog to 29 protocols, spanning Ethereum, the OP Stack family, opBNB, Arbitrum, Robinhood Chain, Starknet, TRON, Bitcoin, Sui, Tempo, Plasma, Avalanche, Arc, Sonic, Stable, Berachain, Cronos, BNB Smart Chain, Kaia, Ronin, Hyperliquid, Solana, and now Polygon PoS. Check the supported clients and protocols page — it’s the canonical place to see what ships next.

Additional resources

Chainstack Self-Hosted documentation:

External:

Related reading — Running your own node:

Exit mobile version