How to get an Arbitrum RPC endpoint for a fintech in 2026

When a stablecoin payment confirms on Arbitrum in under a second, your payment app needs to decide right then whether that is a real settlement or a soft confirmation, because L1 finality will not arrive for another six-plus days. That gap makes choosing the right Arbitrum RPC endpoint for fintech a structural question, not an implementation detail: L2 confirmation is fast enough for UX but not always deep enough for compliance, and getting it wrong means either blocking payments needlessly or settling before the dispute window closes. Arbitrum’s official public RPC endpoint also has no WebSocket support, which eliminates eth_subscribe for real-time payment monitoring and makes managed infrastructure a structural requirement, not an optional upgrade. This guide covers finality levels, compliance-grade archive access, WebSocket setup for stablecoin payment monitoring, and how to size your endpoint for Arbitrum’s $74 billion monthly stablecoin volume.
What is an Arbitrum RPC endpoint
An Arbitrum RPC endpoint is an HTTPS or WebSocket URL that connects your application to the Arbitrum One network using the Ethereum JSON-RPC API. Arbitrum One is an optimistic rollup — it runs EVM-compatible execution on L2 while periodically posting transaction batches to Ethereum L1 for security. The RPC layer speaks standard Ethereum JSON-RPC, so existing tooling (ethers.js, web3.py, viem) connects without modification, but the responses carry Arbitrum-specific extensions: l1BlockNumber and gasUsedForL1 fields in transaction receipts, custom transaction type codes (100–106) for internal Arbitrum operations, and two separate trace namespaces for pre- and post-Nitro history.
For fintech applications on Arbitrum, an RPC endpoint enables:
- Stablecoin balance queries via
eth_callon USDC, USDT, and other token contract addresses - Payment confirmation via
eth_getTransactionReceiptwith both L2 block and L1 batch references - Real-time USDC Transfer event monitoring via
eth_subscribe(requires WebSocket — provider-only on Arbitrum) - Historical state reconstruction for audit trails via
eth_callat specific past block heights (requires archive node) - Full transaction call traces for compliance review via
debug_traceTransaction(post-Nitro era) andarbtrace_transaction(pre-Nitro era) - Gas estimation for payment submission UX via
eth_estimateGas - Batch event log queries via
eth_getLogsfor payment reconciliation
You can review the full list of supported JSON-RPC methods and Arbitrum-specific extensions in the Arbitrum developer documentation.
On a network processing $74 billion in monthly stablecoin transfers, endpoint quality determines whether your payment confirmation loop runs at 50ms or 500ms — and whether your compliance audit can reconstruct a specific USDC transfer from eight months ago when a regulator asks.
How Arbitrum RPC differs from Ethereum RPC
Arbitrum One is EVM-compatible but not identical to Ethereum at the RPC level. The differences matter for fintech tooling and compliance.
| Dimension | Ethereum | Arbitrum One |
|---|---|---|
| Block time | ~12 seconds | ~250ms (sequencer-driven) |
| Gas token | ETH | ETH |
| Finality model | Single-layer PoS (~12 min) | Two-tier: L2 seconds, L1 ~6.4 days |
| Trace namespaces | debug_* | debug_* (post-Nitro) + arbtrace_* (pre-Nitro) |
| Transaction types | Standard EIP types | Custom types 100–106 for internal Arbitrum operations |
| Receipt extras | Standard fields | Adds l1BlockNumber, gasUsedForL1 |
| Public WebSocket | Available | Not available — provider-only |
| Consensus | Ethereum PoS validators | Offchain Labs sequencer + L1 settlement |
Two differences have outsized consequences for fintech. First, the two-tier finality model: L2 confirmation appears in eth_getTransactionReceipt within seconds, but the associated Ethereum L1 batch takes up to 6.4 days to pass the challenge window. Second, the dual trace namespace: Arbitrum requires debug_traceTransaction for post-Nitro transactions and arbtrace_transaction for pre-Nitro history — two separate namespaces that not all providers support equally, both required for complete compliance audit coverage.
Arbitrum RPC endpoint options
Public vs private Arbitrum RPC endpoints
On Arbitrum, the public vs private decision resolves quickly: the official public endpoint has no WebSocket support. Any fintech application that monitors USDC Transfer events or awaits payment confirmations via eth_subscribe has no public option — managed infrastructure is structurally required, not merely recommended.
Official public endpoints:
- Mainnet:
https://arb1.arbitrum.io/rpc - Testnet (Sepolia):
https://sepolia-rollup.arbitrum.io/rpc
⚠️ Arbitrum’s official public RPC endpoints do not provide WebSocket support and expose no trace or archive APIs. The Arbitrum docs recommend using professional RPC providers for production workloads. Any payment application requiring
eth_subscribefor real-time event monitoring must use a managed provider.
| Feature | Public endpoint | Private managed endpoint |
|---|---|---|
| Access | Free and open | Restricted access |
| Resources | Shared infrastructure | Dedicated resources |
| Best use case | Development and testing | Production workloads |
| WebSocket support | Not available | Available |
| Archive access | Not available | Available (Chainstack Growth+) |
| Rate limit | Undisclosed; aggressive throttling observed | Plan-defined; no surprise throttling |
| Trace APIs | Not available | debug_* and arbtrace_* available |
Public endpoints are appropriate for local development and testnet iteration. Any production fintech workload — payment confirmation, USDC event monitoring, compliance audit trail access — requires a managed provider.
📖 For a detailed provider comparison, see Top 7 Arbitrum RPC providers for DeFi and production in 2026.
Full node vs archive Arbitrum node
Arbitrum archive nodes store complete historical state, enabling balance queries and contract calls at any past block height. This is essential for fintech reconciliation, regulatory audit, and dispute resolution. Full nodes serve current state, recent event logs, and new transactions.
| Full node access | Archive node access |
|---|---|
| Current USDC/USDT balance queries | Historical USDC balance at a specific past block |
| Real-time payment confirmation via receipts | debug_traceTransaction for full call trace (post-Nitro) |
eth_getLogs for recent and historical Transfer events | arbtrace_transaction for pre-Nitro transaction history |
| Gas estimation for payment submission | eth_call at historical block heights for state reconciliation |
| Transaction broadcasting | Monthly/annual balance reporting at specific block snapshots |
| Block and receipt lookups | Audit trail reconstruction for regulatory queries |
One precision point fintech teams often get wrong: eth_getLogs with a block range filter does not require an archive node — it works on full nodes for any block range. Archive access is specifically needed for eth_call or eth_getBalance at historical block heights, and all debug_* and arbtrace_* namespace calls.
Chainstack supports archive nodes for Arbitrum One. See Chainstack archive data for node types and availability. Archive requests consume 2 RU versus 1 RU for standard requests, with no method multipliers.
HTTPS vs WebSocket
Since Arbitrum’s public endpoint has no WebSocket support, this comparison applies only to managed providers. For fintech workloads, the split is clean: HTTPS for synchronous request-response flows, WebSocket for persistent event listeners.
| Feature | HTTPS | WebSocket |
|---|---|---|
| Model | Request/response | Persistent connection |
| Complexity | Simple operationally | Requires reconnect and heartbeat logic |
| Best for | Payment submission, receipt polling, balance reads, batch log queries | Real-time USDC Transfer events, block subscriptions, payment monitoring |
| Latency | Standard | Lower for frequent updates |
| Connection overhead | Per request | One-time handshake |
For fintech event listeners monitoring USDC Transfer events, WebSocket connections must be stable and persistent; reconnects introduce missed events. Implement heartbeat logic (ping every 30 seconds) and a missed-event backfill mechanism using eth_getLogs on reconnect. Never use a provider where Arbitrum WebSocket is in public beta for a production payment application.
Why Arbitrum became the settlement layer for stablecoins
Arbitrum One holds the largest stablecoin footprint of any Ethereum L2. Native USDC — issued directly by Circle via CCTP and redeemable without bridge risk — is deployed at the protocol level. $74 billion in stablecoin transfers cleared through Arbitrum in the 30 days preceding May 2026, with 7.75 million stablecoin holders on the network. USDT and multiple institutional tokenized money market funds are also live.
The infrastructure logic is direct: Arbitrum One offers sub-dollar transaction fees with sub-second L2 confirmation while inheriting Ethereum’s validator set and security model. For a stablecoin payment processor, that means settlement on a network institutional counterparties accept, at fees that make micro-payments economically viable. Robinhood tokenized over 2,000 US equities and ETFs on Arbitrum One — not for brand reasons, but because the combination of EVM tooling compatibility, throughput, and liquidity depth made it the lowest-friction path to institutional DeFi.
For RPC infrastructure, this stablecoin concentration means fintech operators run workloads with consistent, high-volume, latency-sensitive patterns: constant eth_call balance reads, steady eth_getLogs queries for Transfer events, and sustained WebSocket subscriptions for real-time payment monitoring. These patterns are incompatible with shared public endpoints that throttle under load, and load on Arbitrum public infrastructure grows with every stablecoin integration that ships. For payment processors operating at this scale, RPC endpoint selection is a compliance question before it is an infrastructure question — and that starts with understanding Arbitrum’s two finality tiers. Chainstack’s stablecoin infrastructure offering is purpose-built for this class of workload.
Finality guarantees and what they mean for payment UX
Arbitrum One has a two-tier finality model. Fintech operators must explicitly architect around it, not discover it when a compliance question surfaces.
L2 finality (seconds): Once a transaction appears in a block on Arbitrum One, the sequencer has accepted and included it. eth_getTransactionReceipt returns with status: 1 within seconds of submission. For low-value payments where reversal risk is negligible, L2 finality is the practical settlement point — and it is what most consumer payment UX is built around on Arbitrum.
L1 finality (~6.4 days): Arbitrum posts batches to Ethereum L1 and subjects them to a 45,818-block challenge window (roughly 6.4 days). Only after this window closes does the transaction carry Ethereum-level finality guarantees. Institutional settlement infrastructure, cross-chain bridge operators, and custody providers with regulatory obligations often require L1-anchored finality for high-value transfers.
The l1BlockNumber field in eth_getTransactionReceipt responses tells you which Ethereum L1 block included the corresponding Arbitrum batch. Your confirmation logic should read this field to distinguish L2-confirmed from L1-anchored transactions if your compliance framework requires the distinction.
| Payment type | Recommended finality level | Confirmation UX |
|---|---|---|
| Consumer USDC micropayments | L2 (seconds) | Instant confirmation |
| B2B stablecoin invoicing | L2 + risk monitoring | Confirm on receipt, flag anomalies |
| Cross-chain bridge settlements | L1 (~6.4 days) | Pending status until L1 confirmed |
| Regulated institutional transfers | L1 or contractual L2 + legal terms | Depends on counterparty agreement |
Compliance requirements for on-chain payment infrastructure
Fintech operators on Arbitrum building under MiCA (EU) or the GENIUS Act (US) face specific RPC requirements that standard shared endpoints cannot satisfy.
Audit trail access: Reconstructing the full call tree of any transaction requires debug_traceTransaction (post-Nitro) and arbtrace_transaction (pre-Nitro). Both namespaces are unavailable on all public endpoints, unsupported on Alchemy for Arbitrum entirely, and gated behind premium tiers or dedicated nodes on most other providers. On Chainstack, archive and trace access is available from the $49/month Growth plan.
Historical state queries: Regulatory reporting may require reconstructing account balances at specific past block heights — USDC holdings at a specific date for a monthly capital report, or token balances at a snapshot block for a custody reconciliation. This requires an archive node with eth_call at historical block numbers.
SOC 2 Type II certification: As MiCA vendor risk assessments and DORA ICT third-party risk registers become standard, your RPC provider’s compliance documentation is part of your own compliance posture. Providers with published SOC 2 Type II reports as of May 2026 include Chainstack (certified December 2025) and Quicknode.
Data residency: EU-based fintech operators may need node deployment in EU regions to satisfy data residency requirements under GDPR and MiCA. Verify your provider offers EU-region endpoints for Arbitrum and confirm the specific data center jurisdiction before signing vendor agreements.
Chainstack’s blockchain infrastructure for fintech covers compliance-ready infrastructure options including SOC 2 Type II-certified endpoints, RBAC, and contractual SLAs for regulated counterparties.
Multi-region payment node topology
A production payment system on Arbitrum should not rely on a single RPC endpoint. The recommended topology for fintech operators:
- Primary: A Dedicated Nodes instance (or Unlimited Node add-on for flat-fee throughput) in the region nearest your application servers. This is your primary endpoint for all payment submissions and confirmations.
- Secondary: A Global Nodes endpoint in a secondary region. Activate on primary endpoint latency degradation; a reasonable alert threshold is p95 exceeding 300ms sustained over 60 seconds.
- Tertiary: A different provider as circuit-breaker fallback. dRPC’s flat $6/million pricing makes it a cost-efficient burst or overflow endpoint.
Geographic placement:
- EU payment processors (MiCA-regulated): Primary eu-west-1, secondary eu-central-1
- US payment processors: Primary us-east-1, secondary us-west-2
- Global payment platforms: Primary us-east-1 or eu-west-1, secondary ap-southeast-1
How to get a private Arbitrum RPC endpoint with Chainstack

To deploy a private Arbitrum RPC node on Chainstack:
- Log in to the Chainstack console or create a free account
- Create a new project
- Select Arbitrum as your blockchain protocol
- Choose network: Arbitrum One Mainnet or Arbitrum Sepolia (testnet)
- Deploy the node
- Open Access/Credentials and copy your HTTPS and WebSocket endpoints
- Run a connectivity check before wiring the endpoint into production payment flows
const { ethers } = require("ethers");
// Connect to Chainstack Arbitrum One endpoint
// Chain ID 42161 identifies Arbitrum One Mainnet
const provider = new ethers.providers.JsonRpcProvider(
"YOUR_CHAINSTACK_ENDPOINT",
42161
);
// Verify connectivity — returns current L2 block number
provider.getBlockNumber().then(console.log);
📖 For the full integration guide covering wagmi, ethers.js, viem, web3.py, and Hardhat setup, see the Chainstack Arbitrum tooling documentation.
You can also access Chainstack Arbitrum RPC directly from Claude, Cursor, Codex, Gemini, or Windsurf using Chainstack MCP. Learn more about Chainstack MCP.
Using Chainlist
Chainlist includes Arbitrum One (chain ID 42161) and Arbitrum Sepolia — useful for adding the network to MetaMask in one click. However, Chainlist is not an infrastructure provider: the RPC URLs it lists are public endpoints with no SLA, no WebSocket, and no archive or trace access. Replace any Chainlist URL with a managed endpoint before deploying to production.
Chainstack pricing for Arbitrum RPC
Chainstack’s request-unit model charges 1 RU per API call regardless of method: debug_traceTransaction costs the same as eth_blockNumber, and archive requests cost 2 RU. There are no method multipliers. For fintech workloads mixing eth_call balance reads, eth_getLogs event queries, and debug_traceTransaction audit calls, this means predictable cost at scale. See the full Chainstack pricing page for plan details and overage rates.
| Plan | Cost | Requests/Month | RPS | Overage (per 1M extra) |
|---|---|---|---|---|
| Developer | $0 | 3M | 25 | $20/1M RU |
| Growth | $49 | 20M | 250 | $15/1M RU |
| Pro | $199 | 80M | 400 | $12.50/1M RU |
| Business | $499 | 200M | 600 | $10/1M RU |
| Enterprise | $990+ | 400M+ | Unlimited | $5/1M RU |
Advanced options:
- Archive Node — 2 RU per archive request, available from Growth ($49/month)
- Unlimited Node add-on — $149–$3,199/month for 25–500 flat-fee RPS; eliminates per-request billing for high-volume payment processors
- Dedicated Nodes — $0.50/hour compute + $0.01 per 20GB/hour storage
How to estimate monthly cost
- Count your average daily payment confirmation calls (
eth_getTransactionReceipt) - Count your daily balance queries (
eth_callon USDC or other token contracts) - Count your daily event log queries (
eth_getLogsfor Transfer events) - Multiply total daily RU by 30 for baseline monthly usage
- Arbitrum fintech insight: Stablecoin volume on Arbitrum spikes sharply during US and EU business hours. A payment processor with 100k daily confirmations at steady state can see 250–300k during market-open windows. Buffer for 2–3x your baseline when choosing your plan tier — hitting an RPS ceiling during a payment peak is the failure mode you cannot afford.
Production readiness checklist
- Primary and fallback RPC provider configured
- Request timeout policy set (recommended: 5 seconds for payment confirmation calls)
- Retry logic with exponential backoff implemented
- Credentials stored in environment variables or secret manager — never hardcoded
- Monitoring for latency, error rate, and throttling on all endpoints
- Alerts for sustained degradation (suggested threshold: p95 latency above 200ms for 60 seconds)
- L1 finality confirmation logic implemented — read
l1BlockNumberfrom receipt to distinguish L2 soft confirmation from L1-anchored settlement debug_traceTransactionandarbtrace_transactionaccess confirmed on your provider before launch (both namespaces required for compliance audit trail)- WebSocket reconnect logic with
eth_getLogsbackfill implemented for USDC Transfer monitoring
Troubleshooting common Arbitrum RPC issues
| Issue | Likely Cause | How to Fix |
|---|---|---|
429 Too Many Requests | Rate limit on shared or public endpoint | Move to a managed endpoint with plan-defined RPS; benchmark candidates with the Chainstack performance dashboard before committing |
| WebSocket disconnects | Beta WebSocket or unstable shared endpoint | Switch to a provider with GA WebSocket for Arbitrum; add heartbeat ping every 30 seconds and reconnect logic with eth_getLogs backfill |
arbtrace_transaction returns method not found | Provider does not support the pre-Nitro trace namespace | Confirm your provider exposes both arbtrace_* and debug_* namespaces; Alchemy does not support either on Arbitrum |
eth_call at historical block returns error | Full node cannot serve historical state | Upgrade to an archive node; historical eth_call requires archive |
Transaction receipt missing l1BlockNumber | Provider strips Arbitrum-specific receipt extensions | Switch to a provider that returns full Arbitrum receipt fields including l1BlockNumber and gasUsedForL1 |
debug_traceTransaction fails on recent transactions | Provider only exposes pre-Nitro arbtrace_* namespace | Confirm provider supports the post-Nitro debug_* namespace on Arbitrum One — these are separate and both required |
| Compliance team flags unsettled transactions | Treating L2 confirmation as L1 finality | Read l1BlockNumber from receipt and verify against Ethereum L1 block; full L1 finality takes ~6.4 days after the dispute window closes |
Conclusion
The failure mode is quiet. A payment system on Arbitrum that treats L2 confirmation as settlement will process transactions correctly for months — until a compliance audit asks for a call trace from a transaction that predates the Nitro upgrade. The method is arbtrace_transaction. The endpoint returns method not found. The provider does not expose the pre-Nitro namespace. And the auditor is waiting. These are not edge cases for fintech operators on Arbitrum — they are guaranteed events in any regulated operation that runs long enough. The dual trace namespace and the two-tier finality model are Arbitrum-specific gotchas that do not appear in tutorials but do appear in compliance reviews.
The pattern that works: deploy a managed Arbitrum endpoint with archive, debug_*, and arbtrace_* access from day one — even if your initial workload does not need it. Wire a WebSocket subscription with reconnect logic and eth_getLogs backfill for real-time USDC Transfer monitoring. Build explicit finality-level logic into your payment confirmation flow using l1BlockNumber from receipts. And verify trace namespace support for both Nitro eras before launch, not during an audit.
Chainstack’s Growth plan at $49/month provides archive, full trace access, WebSocket, and 20M RU with no method multipliers — the right starting configuration for fintech on Arbitrum. For higher-volume payment processors, the Unlimited Node add-on removes per-request billing entirely.
Frequently asked questions
Does Arbitrum have two different trace APIs, and which one do I need for compliance?
Yes, and both are required for complete audit coverage. Arbitrum uses debug_traceTransaction and related debug_* methods for transactions after the Nitro upgrade (June 2022 onward). For pre-Nitro history, the arbtrace_* namespace applies — arbtrace_transaction, arbtrace_call, and arbtrace_block. This dual namespace is unique to Arbitrum; on Ethereum, only debug_* applies. Your RPC provider must support and expose both namespaces on your plan tier. Alchemy does not support either namespace on Arbitrum as of May 2026, which disqualifies it for compliance-grade fintech use cases on this chain.
When is an Arbitrum transaction safe to treat as settled for regulated payment purposes?
It depends on your compliance framework. L2 finality — available within seconds via eth_getTransactionReceipt — is sufficient for low-risk consumer payments where the cost of reversal risk is acceptable. For high-value institutional transfers, cross-chain bridge settlements, or contexts where your counterparty demands Ethereum-level finality, wait for L1 finality: the 6.4-day (~45,818 L1 block) dispute window must close. Read the l1BlockNumber field from transaction receipts to track which Ethereum block confirmed the associated Arbitrum batch.
Do I need an archive node for USDC Transfer event monitoring?
No. eth_getLogs for Transfer events works on full nodes for any block range — no archive required. Archive nodes are specifically needed for: eth_call or eth_getBalance at historical block heights, debug_traceTransaction calls, and arbtrace_* namespace calls. If your fintech workload is payment monitoring and event indexing only, a full node covers it. If you need to reconstruct historical balances, generate compliance call traces, or answer regulatory queries about past state, upgrade to archive.
Do standard Ethereum SDKs work with Arbitrum without modification?
Yes. ethers.js, web3.py, viem, and wagmi all connect to Arbitrum One using standard Ethereum JSON-RPC with chain ID 42161. No library-level changes are required. The differences appear in response fields: Arbitrum transaction receipts include additional fields (l1BlockNumber, gasUsedForL1) that libraries expose as-is. If your payment confirmation logic parses raw receipt objects, handle these extra fields gracefully — and consider reading l1BlockNumber explicitly to implement finality-level logic in your confirmation flow.
Which Arbitrum RPC providers have SOC 2 Type II for fintech procurement?
As of May 2026: Chainstack (certified December 2025) and Quicknode (SOC 2 Type II plus ISO 27001) have published reports covering their RPC infrastructure. Alchemy holds SOC 2 Type II but does not support trace APIs on Arbitrum, limiting its utility for compliance-grade fintech. Ankr achieved SOC 2 Type 2 in 2025 but gates trace access behind a $500/month plan. dRPC and GetBlock do not publish SOC 2 reports. Verify the scope of any certification — a report covering US data centers may not satisfy EU MiCA requirements for European data residency.
How do I monitor Arbitrum endpoint health in production?
Track three metrics: p50 and p95 response latency for eth_getTransactionReceipt (your payment confirmation call), error rate (4xx and 5xx per minute), and WebSocket reconnect frequency. Set alerts for p95 above 200ms sustained for 60 seconds and error rates above 1% per minute. Use the Chainstack performance dashboard to benchmark endpoint latency from your target region before committing to a provider. On Arbitrum specifically, also monitor for l1BlockNumber null values in receipts — a provider silently stripping Arbitrum-specific receipt fields will break finality-level confirmation logic.
Additional resources
- Arbitrum L1 to L2 messaging tutorial on Chainstack — deploy and test cross-chain contract messaging
- Chainstack Arbitrum tooling documentation — full setup guides for ethers.js, viem, web3.py, and Hardhat
- Arbitrum developer documentation — official Offchain Labs developer resources
- Arbitrum JSON-RPC method reference — full list of method differences vs Ethereum
- More Arbitrum tutorials and articles on the Chainstack Blog