Chainstack Self-Hosted is now available! Launch production-grade blockchain nodes on infrastructure you control.    Get started
  • Agents
  • Pricing

How to get an Ethereum RPC endpoint for stablecoin infrastructure (2026 guide)

Created Jun 5, 2026 Updated Jun 5, 2026
Eth Endpoint Stablecoins logo

TL;DR

Every stablecoin payment on Ethereum produces an ERC-20 Transfer event — and if your RPC endpoint drops those events, returns a truncated log range, or falls behind the chain tip under load, your reconciliation pipeline silently corrupts without a single error thrown. Ethereum now settles over $150 billion in stablecoin supply and trillions in monthly transfer volume, making endpoint reliability a compliance requirement, not a convenience. This guide covers how to select and configure an Ethereum RPC endpoint that can handle the eth_getLogs throughput, archive depth, and uptime that production payment infrastructure actually demands.

What is an Ethereum RPC endpoint

An Ethereum RPC endpoint is a server that exposes the Ethereum JSON-RPC API — the standard interface through which your application reads chain state and submits transactions. Every request your code makes, from checking an address balance to broadcasting a signed USDC transfer, travels over this interface using HTTP or WebSocket connections against methods defined in the Ethereum JSON-RPC specification.

For stablecoin and payment applications, the operations that run through this endpoint at production scale include:

  • Reading ERC-20 token balances via eth_call against the balanceOf(address) function
  • Retrieving Transfer event logs for payment reconciliation via eth_getLogs
  • Subscribing to real-time incoming payments via eth_subscribe with the logs filter
  • Confirming settlement finality via eth_getTransactionReceipt
  • Fetching block timestamps for audit-trail anchoring via eth_getBlockByNumber
  • Estimating gas before broadcasting transfers via eth_estimateGas
  • Submitting signed USDC or USDT transfers via eth_sendRawTransaction

You can review the full list of supported JSON-RPC methods in the Ethereum developer documentation.

The failure mode that catches payment teams off guard is not a broken connection — it is a degraded one. An endpoint that returns stale block state, drops log queries under load, or silently truncates event history at a recent block number will accept your calls and return HTTP 200 while feeding corrupted data into your reconciliation pipeline. For stablecoin infrastructure operating under MiCA or FinCEN reporting requirements, that silent degradation is a compliance event, not a technical footnote.

Why Ethereum RPC behaves differently under stablecoin load

Stablecoin infrastructure pulls Ethereum RPC endpoints in two opposite directions at the same time — and most provider selection advice treats them as the same problem when they are not.

The first workload is continuous, low-latency event subscription: your payment system subscribes to Transfer events on USDC and USDT contracts and must receive every event in real time, with sub-second delivery, indefinitely. This workload is connection-sensitive — it favors WebSocket endpoints with stable persistent connections, low per-event latency, and fast reconnect recovery. If the endpoint drops a single event, your reconciliation ledger gains a gap that the compliance team finds months later.

The second workload is large-range historical log backfill: compliance audits, onboarding reconciliation for new wallet addresses, or recovery after an infrastructure incident. These jobs issue eth_getLogs queries spanning thousands or hundreds of thousands of blocks. This workload is throughput-sensitive — it favors archive access, high RPS limits, and permissive block range windows. A 10K-block range cap per query means hundreds of sequential calls to cover a year of history. At peak USDC and USDT transfer volume on Ethereum mainnet, that is a significant archive read job.

These two workloads compete on a shared endpoint. The architecture implication — keep a dedicated archive endpoint separate from your real-time monitoring endpoint — follows directly from this tension, not from a generic “use multiple providers” best practice.

PropertyEthereum Mainnet
Block time~12 seconds
ConsensusProof of Stake (post-Merge, September 2022)
Gas tokenETH (EIP-1559 base fee + priority fee)
Stablecoin supply on mainnet$150B+ (USDT, USDC, USDe, USDS, PYUSD, and others)
Monthly ERC-20 settlement volume$2T+ (trailing 30-day)
eth_getLogs on public endpointsAvailable but rate-limited; block range restricted
Archive depthFull history from genesis
WebSocket subscriptionsFully supported
Testnet (dapp development)Sepolia
Testnet (validator/staking)Hoodi (replaced deprecated Holesky in 2025)

Ethereum RPC endpoint options

Public vs private Ethereum RPC endpoints

Ethereum’s stablecoin-grade workload begins exactly where public endpoints stop. The public RPC URLs available through Chainlist are suitable for wallet connections and one-off development queries — but their rate limits, capped log ranges, and absence of archive access make them a liability for any system that needs reliable Transfer event delivery at scale.

Official public endpoints:

  • Mainnet: https://eth.llamarpc.com (community-maintained)
  • Sepolia testnet: https://rpc.sepolia.org

Warning: There is no official Ethereum Foundation public RPC endpoint for mainnet. Community-run public endpoints cap requests at roughly 100 per minute and do not expose archive data or trace methods. The Ethereum documentation itself recommends using professional RPC providers for production applications. For any stablecoin or payment system, a shared public endpoint in production is both a reliability risk and a compliance gap.

FeaturePublic endpointPrivate managed endpoint
AccessFree and openRestricted access
ResourcesShared infrastructureDedicated resources
Best use caseDevelopment & testingProduction workloads
Rate limit~100 req/minNo aggressive throttling
eth_getLogs block rangeCapped (typically last 10K blocks)Full range supported
WebSocket subscriptionsLimited or unavailableFully available
Archive accessNot availableAvailable

For a stablecoin infrastructure team that needs to monitor Transfer events across multiple ERC-20 contracts simultaneously, the choice between public and managed is not a cost conversation — it is a data integrity conversation.

Full node vs archive Ethereum node

Ethereum full nodes retain state from a recent checkpoint forward, typically the last few thousand blocks. Archive nodes retain complete chain state from genesis. For stablecoin infrastructure, the distinction maps directly to what your reconciliation and compliance systems can and cannot query.

Full node accessArchive node access
Real-time USDC/USDT balance readsHistorical balance-at-block queries for reconciliation
Current Transfer event monitoringFull eth_getLogs history from any historical block
Live transaction confirmation trackingBackfilling missed payment events after an outage
Block and receipt queries within recent historyAudit trail reconstruction for compliance reporting
Gas price estimation for broadcastHistorical gas cost analytics for treasury reporting

Chainstack supports Ethereum archive node access, which is required for any payment system that needs to reconstruct Transfer event history beyond the recent chain window. Compliance teams auditing USDC flows from twelve months ago, or a reconciliation job backfilling events after an infrastructure incident, need archive access to complete the query without gaps.

HTTPS vs WebSockets

For stablecoin infrastructure, the choice between HTTPS and WebSocket is not about preference — it maps to which part of your payment stack you are building. Real-time incoming payment detection needs persistent connections. Balance reads, receipt confirmations, and historical log backfills work cleanly over HTTPS.

FeatureHTTPSWebSocket
ModelRequest/responsePersistent connection
ComplexitySimple operationallyRequires reconnect/heartbeat logic
Best forBalance reads, receipt checks, historical eth_getLogs backfillsReal-time Transfer event subscriptions, block monitoring
LatencyStandardLower for high-frequency event streams
Connection overheadPer requestOne-time handshake

WebSocket support is fully available on Chainstack-managed Ethereum endpoints. Public endpoints either do not expose WebSocket access or apply strict connection limits that make subscription-based event monitoring unreliable for production payment flows.

Why Ethereum became the settlement layer for stablecoins

Stablecoin issuers could, in theory, deploy on any chain. Most of them still ship their flagship contract on Ethereum first, and the reasons are structural, not sentimental.

Ethereum’s smart contract model supports every stablecoin issuance pattern in active use today — fiat-backed reserves (Circle USDC, Tether USDT), overcollateralized designs (Sky USDS), and synthetic dollar protocols (Ethena USDe). Every major issuer maintains their primary deployment on Ethereum mainnet, where the deepest liquidity, the most mature DeFi integrations, and the most established custodian infrastructure all converge.

The numbers reflect this. As of 2026, Ethereum mainnet holds over $150 billion in stablecoin supply — roughly half of total global issuance across all chains. On-chain dollar transfer volume on Ethereum exceeded $2 trillion in the trailing 30-day window. USDT alone, with over $189 billion in total circulation, processes daily settlement volumes that regularly exceed Visa’s on-chain equivalent.

This concentration creates a specific infrastructure obligation. Any payment platform, stablecoin protocol, or fintech application that needs to track, settle, or reconcile on-chain dollar flows will interact with Ethereum RPC endpoints at volume. The eth_getLogs queries that power Transfer event monitoring, the archive reads that support compliance auditing, and the WebSocket subscriptions that deliver real-time payment confirmations all run through a single interface. Teams building stablecoin infrastructure on Ethereum and blockchain infrastructure for fintech applications depend on consistent endpoint performance for their core product guarantees — not as a best-effort background concern.

Finality guarantees and what they mean for payment UX

Ethereum’s Proof of Stake consensus produces blocks every ~12 seconds. A transaction included in a block is not immediately final — it moves through distinct confirmation states that have direct implications for when your payment system should release funds or display a settled status to users.

The relevant confirmation stages for payment applications:

  • Included (1 confirmation): The transaction appears in a proposed block. Reversible during a chain reorganization.
  • Safe (~2 epochs / ~6.4 minutes): The block has been attested by two-thirds of the active validator set. Reorganization becomes statistically improbable.
  • Finalized (~2 epochs / ~12–15 minutes): Ethereum’s Casper finality gadget has committed the block. Reversal requires destroying a substantial portion of staked ETH — effectively irreversible for practical purposes.

Payment UX decisions should map to these stages explicitly:

  • Show “payment received” after inclusion plus 3–5 block confirmations for low-value transfers
  • Release funds only after a finalized checkpoint for high-value or cross-border settlements
  • Use eth_getBlockByNumber with the "finalized" tag parameter to query the most recently finalized block without manually polling for epoch boundaries

A common mistake in payment engineering is treating block inclusion as equivalent to finality. An RPC endpoint that does not support the finalized and safe block tags reliably forces your code into unsafe polling patterns. Managed endpoints expose these tags consistently; community public endpoints may lag or omit them.

Compliance requirements for on-chain payment infrastructure

The regulatory picture for stablecoin payment infrastructure has sharpened considerably since 2024. MiCA (Markets in Crypto-Assets Regulation), now fully in force for the EU, requires operators of electronic money token services to maintain complete transaction records, demonstrate audit trail continuity, and support supervisory data requests. The GENIUS Act in the US, in its current form, imposes similar obligations on payment stablecoin issuers and their technology partners.

For RPC infrastructure, three compliance capabilities matter:

Complete Transfer event history: Regulators requesting a full transaction history for a wallet address expect a response that covers the address from its first on-chain interaction. eth_getLogs queries against a full node return only recent events. Archive access is not optional for a MiCA-compliant stablecoin issuer or payment processor — it is a data retention requirement with legal weight.

Real-time transaction monitoring: Anti-money laundering obligations require payment platforms to screen transfers as they land, not after a batch reconciliation window. WebSocket subscriptions to Transfer events on monitored contract addresses provide the real-time feed that compliance engines need to flag suspicious flows before settlement completes.

Infrastructure auditability: SOC 2 Type II certification for your RPC provider is increasingly a procurement requirement in fintech partnerships and banking relationships. It signals that the provider’s security and availability controls have been independently audited over an extended period — a point-in-time attestation is insufficient.

Chainstack holds SOC 2 Type II certification and operates on infrastructure that supports the audit trail continuity and data retention requirements of payment-grade deployments.

Multi-region payment node topology

A single RPC endpoint, even a managed one, is an architectural liability for a payment product with uptime SLAs. A regional cloud incident, a provider maintenance window, or a network partition can interrupt your Transfer event stream at the worst possible moment. The standard topology for payment-grade Ethereum infrastructure uses three tiers:

Tier 1 — Primary managed node: A Dedicated Node or Global Node from your primary provider, deployed in the region closest to your application servers. All production traffic routes here by default.

Tier 2 — Secondary provider endpoint: An active standby from a genuinely independent second provider — not a failover endpoint from the same provider’s internal pool. This absorbs traffic automatically if Tier 1 becomes unavailable, with your application switching on the first sustained error or timeout.

Tier 3 — Dedicated archive endpoint: A separate archive-capable endpoint used exclusively for reconciliation queries, compliance backfills, and historical reporting. Keeping heavy eth_getLogs backfill traffic off your primary endpoint prevents a compliance audit job from degrading real-time payment event delivery.

For geographic distribution, deploy your primary node in the region where your application servers run. For EU-regulated deployments, a Frankfurt or Amsterdam region minimizes cross-border data transfers under MiCA’s data residency guidance.

How to get a private Ethereum RPC endpoint with Chainstack

To deploy an Ethereum RPC node on Chainstack:

  1. Log in to the Chainstack console (or create an account)
  2. Create a new project
  3. Select Ethereum as your blockchain protocol
  4. Choose network: Ethereum Mainnet, Sepolia, or Hoodi
  5. Deploy the node
  6. Open Access/Credentials and copy your HTTPS and WebSocket endpoints
  7. Run a connectivity check before wiring it into production code

Here is a minimal ethers.js setup connecting to a Chainstack Ethereum endpoint — covering both HTTPS for discrete queries and WebSocket for the real-time Transfer event subscriptions that drive most stablecoin payment monitoring pipelines:

import { ethers } from 'ethers';

// HTTP provider — for balance reads, receipt checks, and historical eth_getLogs
const httpProvider = new ethers.JsonRpcProvider("YOUR_CHAINSTACK_ENDPOINT");
httpProvider.getBlockNumber().then(console.log);

// WebSocket provider — for real-time ERC-20 Transfer event subscriptions
// Chain ID 1 is Ethereum mainnet; update to 11155111 for Sepolia
const wsProvider = new ethers.WebSocketProvider("YOUR_CHAINSTACK_WS_ENDPOINT");
wsProvider.getBlockNumber().then((blockNumber) => {
    console.log(blockNumber);
    wsProvider.destroy();
});

For the full integration guide, see the Chainstack Ethereum tooling documentation.

You can also access Chainstack Ethereum RPC directly from Claude, Cursor, Codex, Gemini, or Windsurf using Chainstack MCP. Learn more about Chainstack MCP.

Using Chainlist

Chainlist includes Ethereum mainnet and its testnets — it is a convenient way to add the network to MetaMask or a compatible wallet with one click. It is not an infrastructure provider. Any Ethereum RPC URL you add through Chainlist points to a community-maintained shared endpoint. Replace it with a managed endpoint before deploying any stablecoin payment logic to production.

Chainstack pricing for Ethereum RPC

Chainstack bills on a Request Unit model — one RU per API call regardless of method, which produces more predictable cost forecasts than compute-unit systems that charge different amounts per JSON-RPC method. For stablecoin teams with consistent eth_getLogs and eth_call volume, estimating monthly spend requires knowing your request count, not memorizing a per-method pricing matrix. See the full Chainstack pricing page for plan details and overage rates.

Archive node requests consume 2 RU per call instead of 1 — relevant if your compliance pipeline runs heavy historical log queries.

PlanMonthly CostRequests/MonthRPSOverage (per 1M extra)
Developer$03M25$20/1M
Growth$4920M250$15/1M
Pro$19980M400$12.50/1M
Business$499200M600$10/1M
Enterprise$990+400M+Unlimited$5/1M

Advanced options relevant to stablecoin infrastructure:

  • Archive Node add-on — 2 RU per request; available on Growth and above
  • Unlimited Node add-on — flat-fee unlimited requests at selected RPS tiers, from $149/month
  • Dedicated Nodes: From $0.50/hour compute + $0.01 per 20 GB/hour storage

How to estimate monthly cost

  1. Measure your eth_getLogs query volume over a 24-hour window and multiply by 30
  2. Add your eth_call volume for ERC-20 balance reads and contract state queries
  3. Factor in WebSocket subscription events — each Transfer event delivered counts as a request
  4. Add your transaction broadcast volume with a 20% buffer for retries
  5. For stablecoin monitoring specifically: USDT and USDC on Ethereum mainnet generate thousands of Transfer events per hour during peak trading periods. Benchmark your event fan-out against your watched contract list before committing to a plan tier — the difference between watching 5 contracts and 50 can easily push you from Growth to Pro.

Production readiness checklist

  • Primary + fallback RPC endpoint configured from independent providers
  • Request timeout policy set (10–30 seconds for eth_getLogs, 5 seconds for balance reads)
  • Retry logic with exponential backoff implemented for 429 and 503 responses
  • Credentials stored in environment variables or a secret manager — never hardcoded
  • Monitoring for latency, error rate, and throttling across all RPC methods
  • Alerts configured for sustained degradation on eth_getLogs specifically
  • WebSocket reconnect logic with missed-event backfill from last processed block number
  • Archive endpoint kept separate from real-time monitoring endpoint to prevent query interference
  • eth_getLogs block range paginated to avoid single-query timeouts on historical backfills
  • Finality confirmation logic implemented using the "finalized" block tag rather than fixed confirmation counts

Troubleshooting common Ethereum RPC issues

IssueCauseHow to Fix
429 Too Many RequestsRate limit exceeded on shared public endpointUpgrade to a managed endpoint with higher RPS limits; add exponential backoff before retrying
WebSocket disconnectsProvider timeout or idle connection pruningImplement heartbeat pings every 30 seconds; on close, reconnect and replay events from the last processed block number
eth_getLogs returns empty on historical rangePublic endpoints impose range restrictions (typically 2K–10K blocks max per query); full nodes retain months of state but managed endpoints are required to access it without those limitsSwitch to a managed archive endpoint; paginate queries within the provider’s stated block range limit
eth_getLogs times out on wide block rangeBlock range too large for a single queryPaginate in batches of 2,000–10,000 blocks; implement binary search for failed ranges
Transaction confirmed on receipt but not finalizedUsing inclusion confirmation instead of Casper finalityUse eth_getBlockByNumber with "finalized" tag to verify the containing block is fully finalized
Stale eth_call results after recent state changeNode behind on sync or serving a cached responseSpecify "latest" as the block parameter explicitly; if results remain stale, the endpoint may be lagging — check sync status
ERC-20 Transfer events missing from eth_getLogs responseIncorrect event signature hash in topic filterThe Transfer event topic is always 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef — verify your topic filter array
execution reverted on eth_estimateGas for ERC-20 transferInsufficient allowance, wrong token balance, or bad contract stateSimulate first with eth_call; verify ERC-20 allowance and sender balance before gas estimation

Conclusion

A stablecoin payment system that relies on a shared public Ethereum endpoint will eventually show users a wrong balance — not because of a smart contract bug, but because eth_getLogs queries dropped under load, returned a truncated range, or fell behind the chain tip during a high-volume period. There is no error thrown. Your response-code monitor stays green. The compliance team finds it during the next audit when event counts don’t reconcile.

The pattern that works: use a managed archive-capable endpoint as your primary, a genuinely independent second provider as your standby, and a dedicated archive endpoint for compliance backfill queries. Implement WebSocket reconnect logic that replays events from the last processed block number. Confirm settlement finality using the "finalized" block tag before releasing irreversible payouts. Treat eth_getLogs throughput and archive depth as first-class infrastructure requirements from day one, not features to add after your first production incident.

Start on the free Developer tier to validate your endpoint configuration, then size your plan against your Transfer event monitoring volume.

FAQ

What is the best SDK for querying Ethereum stablecoin Transfer events? ethers.js is the most widely used choice for Ethereum in 2026, with a Contract abstraction that handles ERC-20 event decoding automatically. viem is the modern TypeScript-first alternative with stricter types and better tree-shaking — increasingly common in newer payment applications. web3.py remains the standard for Python-based compliance and analytics pipelines. All three work against any JSON-RPC compatible endpoint including Chainstack.

Are public Ethereum RPC endpoints sufficient for a stablecoin payment product? No. Public endpoints cap eth_getLogs queries to recent blocks, apply rate limits that break under production Transfer event monitoring volume, and do not expose archive data. For a stablecoin product, a public endpoint means incomplete reconciliation data and no path to historical audit trails. Use public endpoints for local development and testnet verification only.

How do I monitor that my Ethereum endpoint is delivering all Transfer events without gaps? Track the highest block number you have successfully processed. On each eth_getLogs response, verify the returned block range is contiguous with your last processed block. On WebSocket subscriptions, store the block number of every event delivered and reconcile against eth_getBlockByNumber for each expected block. If a gap appears, immediately backfill it using a historical eth_getLogs query before advancing your cursor.

What is the difference between safe and finalized on Ethereum, and which should I use for payment confirmation? safe means the block has been voted on by two-thirds of the validator set — statistically secure but not yet cryptographically committed. finalized means Casper’s finality gadget has committed the block and reversal requires destroying a substantial fraction of staked ETH. For payment UX: show “payment confirmed” after the safe state (~6 minutes) for speed-sensitive flows; require finalized (~12–15 minutes) before releasing irreversible payouts, cross-border settlement disbursements, or compliance ledger entries.

Does Chainstack support Ethereum archive nodes for compliance backfills? Yes. Chainstack supports Ethereum archive nodes with full history from genesis. Archive requests consume 2 RU per call instead of 1, so keep compliance backfill jobs on a dedicated archive endpoint to prevent them from competing with your real-time Transfer event monitoring for RPS capacity.

Which Ethereum testnet should I use for stablecoin development in 2026? Use Sepolia for all dapp and smart contract development — it is the long-term supported testnet and the correct environment for ERC-20 deployment, transfer testing, and event monitoring integration. Hoodi replaced the deprecated Holesky network in 2025 and is designed specifically for validator and staking infrastructure testing; unless you are building node operation tooling, Sepolia is the right choice. Chainstack supports both networks.

Additional resources

SHARE THIS ARTICLE
Customer Stories

ChartEx

Achieving production-grade reliability for blockchain queries saves time, money, and hustle.

Saakuru Labs

Saakuru Labs seamlessly transitions businesses from Web2 to Web3 with a 4X infrastructure ROI using Chainstack Global Node.

DeFiato

Securing a stable environment for platform operations with ease.