<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Zhuoxin Sun</title>
    <description>The latest articles on DEV Community by Zhuoxin Sun (@zhuoxin_sun_f2354597a82c2).</description>
    <link>https://dev.to/zhuoxin_sun_f2354597a82c2</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3813781%2Fc5a50cdb-5b67-4a28-8462-aebd6b05059d.png</url>
      <title>DEV Community: Zhuoxin Sun</title>
      <link>https://dev.to/zhuoxin_sun_f2354597a82c2</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zhuoxin_sun_f2354597a82c2"/>
    <language>en</language>
    <item>
      <title>Best Ethereum RPC for Latest Network Upgrades 2025 Guide</title>
      <dc:creator>Zhuoxin Sun</dc:creator>
      <pubDate>Mon, 20 Jul 2026 03:09:38 +0000</pubDate>
      <link>https://dev.to/zhuoxin_sun_f2354597a82c2/best-ethereum-rpc-for-latest-network-upgrades-2025-guide-2anc</link>
      <guid>https://dev.to/zhuoxin_sun_f2354597a82c2/best-ethereum-rpc-for-latest-network-upgrades-2025-guide-2anc</guid>
      <description>&lt;h2&gt;
  
  
  Ethereum RPC Decision Checklist
&lt;/h2&gt;

&lt;p&gt;Before diving into provider comparisons, use this checklist to evaluate any Ethereum RPC endpoint for upgrade readiness:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Upgrade support timeline&lt;/strong&gt;: Does the provider announce support for upcoming hard forks (e.g., Pectra, Verkle) before mainnet activation?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testnet availability&lt;/strong&gt;: Can you test new methods on Sepolia or Holesky before mainnet?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blob transaction support&lt;/strong&gt;: Does the endpoint expose &lt;code&gt;eth_getBlobSidecars&lt;/code&gt; and &lt;code&gt;blobBaseFee&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Archive data&lt;/strong&gt;: Do you need historical state access for pre-upgrade blocks?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trace API&lt;/strong&gt;: Are &lt;code&gt;debug_trace*&lt;/code&gt; and &lt;code&gt;trace_*&lt;/code&gt; methods available for post-upgrade debugging?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rate limits and scaling&lt;/strong&gt;: Can the provider handle increased traffic during upgrade periods?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backward compatibility&lt;/strong&gt;: Does the provider maintain legacy methods after a fork?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Ethereum Upgrades Matter for RPC Selection
&lt;/h2&gt;

&lt;p&gt;Ethereum's roadmap includes frequent protocol upgrades that introduce new transaction types, state structures, and JSON-RPC methods. For example, the Dencun upgrade (EIP-4844) added blob-carrying transactions and the &lt;code&gt;blobBaseFee&lt;/code&gt; field. Future upgrades like Pectra will bring account abstraction improvements, and Verkle trees will change how state is stored and accessed.&lt;/p&gt;

&lt;p&gt;An RPC provider that lags in supporting these changes can break your dApp's functionality. You need a provider that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Updates its nodes promptly after a hard fork.&lt;/li&gt;
&lt;li&gt;Exposes new RPC methods as soon as they are stable.&lt;/li&gt;
&lt;li&gt;Maintains testnet endpoints that mirror upcoming mainnet changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Criteria for Upgrade-Ready Ethereum RPC Providers
&lt;/h2&gt;

&lt;p&gt;When evaluating providers for upgrade readiness, consider the following criteria:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;What to check&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Upgrade announcement&lt;/td&gt;
&lt;td&gt;Does the provider publish a support timeline?&lt;/td&gt;
&lt;td&gt;Ensures you can plan ahead.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Testnet endpoints&lt;/td&gt;
&lt;td&gt;Are Sepolia/Holesky endpoints available?&lt;/td&gt;
&lt;td&gt;Allows pre-upgrade testing.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blob method support&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;eth_getBlobSidecars&lt;/code&gt;, &lt;code&gt;blobBaseFee&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Required for Dencun+ features.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Archive node access&lt;/td&gt;
&lt;td&gt;Historical state for pre-upgrade blocks&lt;/td&gt;
&lt;td&gt;Needed for analytics and audits.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trace API&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;debug_traceTransaction&lt;/code&gt;, &lt;code&gt;trace_block&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Essential for debugging after upgrades.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rate limit flexibility&lt;/td&gt;
&lt;td&gt;Can you increase limits during spikes?&lt;/td&gt;
&lt;td&gt;Prevents throttling during upgrade events.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backward compatibility&lt;/td&gt;
&lt;td&gt;Are deprecated methods still available?&lt;/td&gt;
&lt;td&gt;Avoids breaking changes.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How to Test an RPC Provider's Upgrade Support
&lt;/h2&gt;

&lt;p&gt;You can verify a provider's upgrade readiness by sending test requests. For example, after Dencun, you can check blob support:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://your-rpc-endpoint &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "jsonrpc": "2.0",
    "method": "eth_getBlobSidecars",
    "params": ["0x1234..."],
    "id": 1
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the method returns a result (even an empty array), the provider supports it. For upcoming upgrades, check for methods like &lt;code&gt;eth_sendRawTransactionConditional&lt;/code&gt; (Pectra) or &lt;code&gt;eth_getVerkleProof&lt;/code&gt; (Verkle).&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Pitfalls When Using RPC Providers During Upgrades
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Assuming immediate support&lt;/strong&gt;: Not all providers update nodes on day one. Check their upgrade history.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ignoring testnet&lt;/strong&gt;: Always test new methods on Sepolia before mainnet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overlooking archive data&lt;/strong&gt;: If you need historical state, ensure the provider offers archive nodes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Neglecting rate limits&lt;/strong&gt;: Upgrade events often cause traffic spikes; confirm your provider can handle them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forgetting backward compatibility&lt;/strong&gt;: Some providers drop old methods after a fork. Verify your critical methods remain available.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Choosing Between Shared and Dedicated Nodes
&lt;/h2&gt;

&lt;p&gt;Shared RPC endpoints are cost-effective for development and low-traffic applications. However, during network upgrades, shared nodes may experience higher latency due to increased load. Dedicated nodes provide isolated resources, predictable performance, and full control over node configuration (e.g., enabling specific flags for upgrade testing).&lt;/p&gt;

&lt;p&gt;If your application is production-critical, consider a dedicated node to ensure consistent access during upgrade periods. OnFinality offers both shared RPC API access and dedicated node options for Ethereum mainnet and testnets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Test on testnet&lt;/strong&gt;: Use an Ethereum Sepolia endpoint to verify your application works with the latest upgrade methods.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review provider documentation&lt;/strong&gt;: Check the provider's upgrade support policy and method availability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan for scaling&lt;/strong&gt;: Ensure your RPC plan can handle traffic spikes during upgrade events.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consider dedicated infrastructure&lt;/strong&gt;: For production workloads, evaluate dedicated node options.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Explore OnFinality's &lt;a href="https://onfinality.io/networks/ethereum-sepolia" rel="noopener noreferrer"&gt;Ethereum Sepolia testnet RPC&lt;/a&gt; to start testing, or view our &lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;full list of supported networks&lt;/a&gt; and &lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ethereum upgrades introduce new RPC methods and state changes; your provider must support them promptly.&lt;/li&gt;
&lt;li&gt;Look for providers that announce upgrade support timelines and maintain testnet endpoints for pre-release testing.&lt;/li&gt;
&lt;li&gt;Blob transaction support (eth_getBlobSidecars, blobBaseFee) is critical for Dencun and future upgrades.&lt;/li&gt;
&lt;li&gt;Test new methods on testnet before mainnet deployment.&lt;/li&gt;
&lt;li&gt;Dedicated nodes offer more control and predictable performance during upgrade periods.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: How can I check if my RPC provider supports the latest Ethereum upgrade?&lt;/strong&gt;&lt;br&gt;
A: Send a request for a new method (e.g., &lt;code&gt;eth_getBlobSidecars&lt;/code&gt;) and check the response. Also, review the provider's upgrade support documentation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What is the best Ethereum RPC for testing upcoming upgrades?&lt;/strong&gt;&lt;br&gt;
A: Use a testnet endpoint like Sepolia. OnFinality provides Sepolia RPC endpoints that are updated with the latest upgrade methods.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Do I need an archive node for upgrade compatibility?&lt;/strong&gt;&lt;br&gt;
A: Only if your application requires historical state from before the upgrade. For most dApps, a full node is sufficient.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Will my existing RPC methods stop working after an upgrade?&lt;/strong&gt;&lt;br&gt;
A: Most providers maintain backward compatibility, but it's best to verify with your provider's changelog.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: How do dedicated nodes help during upgrades?&lt;/strong&gt;&lt;br&gt;
A: Dedicated nodes give you full control over node configuration and ensure isolated resources, reducing the risk of rate limiting or latency spikes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks/ethereum-sepolia" rel="noopener noreferrer"&gt;Ethereum Sepolia Testnet RPC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;Supported RPC Networks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Originally published at &lt;a href="https://onfinality.io/en/rpc-assistant/best-ethereum-rpc-for-latest-network-upgrades-2025-guide" rel="noopener noreferrer"&gt;OnFinality&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>ethereum</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Node Infrastructure Guide: Evaluation &amp; Best Practices for Web3</title>
      <dc:creator>Zhuoxin Sun</dc:creator>
      <pubDate>Mon, 20 Jul 2026 03:09:02 +0000</pubDate>
      <link>https://dev.to/zhuoxin_sun_f2354597a82c2/node-infrastructure-guide-evaluation-best-practices-for-web3-1oe7</link>
      <guid>https://dev.to/zhuoxin_sun_f2354597a82c2/node-infrastructure-guide-evaluation-best-practices-for-web3-1oe7</guid>
      <description>&lt;h2&gt;
  
  
  Node infrastructure decision checklist
&lt;/h2&gt;

&lt;p&gt;Before committing to a node infrastructure strategy, evaluate these key factors:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;What to check&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Network coverage&lt;/td&gt;
&lt;td&gt;Which blockchains do you need?&lt;/td&gt;
&lt;td&gt;Multi-chain apps require consistent access across L1s and L2s.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Node type&lt;/td&gt;
&lt;td&gt;Full node, archive node, or light node?&lt;/td&gt;
&lt;td&gt;Archive nodes provide historical state but cost more; light nodes are faster but limited.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hosting model&lt;/td&gt;
&lt;td&gt;Self-hosted vs managed provider&lt;/td&gt;
&lt;td&gt;Self-hosted gives full control but adds DevOps burden; managed reduces operational overhead.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reliability&lt;/td&gt;
&lt;td&gt;Uptime history, redundancy, failover&lt;/td&gt;
&lt;td&gt;Downtime directly impacts user experience and transaction finality.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Performance&lt;/td&gt;
&lt;td&gt;Latency, throughput, rate limits&lt;/td&gt;
&lt;td&gt;High-frequency trading or data-heavy dApps need low latency and high throughput.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security&lt;/td&gt;
&lt;td&gt;Access controls, DDoS protection, data encryption&lt;/td&gt;
&lt;td&gt;Node endpoints are attack vectors; secure infrastructure is critical.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;Hardware, bandwidth, maintenance vs subscription fees&lt;/td&gt;
&lt;td&gt;Total cost of ownership varies significantly between self-hosted and managed.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scalability&lt;/td&gt;
&lt;td&gt;Ability to handle traffic spikes&lt;/td&gt;
&lt;td&gt;Launch days or viral dApps can overwhelm under-provisioned nodes.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What is node infrastructure?
&lt;/h2&gt;

&lt;p&gt;Node infrastructure is the combination of hardware (servers, storage, networking), software (blockchain client, middleware), and operational practices that enable a blockchain node to connect to a network, sync the ledger, validate transactions, and serve data to applications. In a decentralized network, each node maintains a copy of the ledger and communicates with peers to reach consensus. For developers building on Web3, node infrastructure is the gateway to reading and writing blockchain data.&lt;/p&gt;

&lt;p&gt;Node infrastructure can be self-hosted (you run your own servers and software) or managed (a third-party provider hosts and maintains nodes for you). The choice depends on your project's requirements for control, cost, reliability, and scalability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why node infrastructure matters for Web3 projects
&lt;/h2&gt;

&lt;p&gt;Every interaction with a blockchain—submitting a transaction, querying a balance, or listening for events—goes through a node. If the node is slow, unreliable, or unavailable, your application suffers. Poor node infrastructure leads to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Transaction failures or delays&lt;/li&gt;
&lt;li&gt;Stale data in user interfaces&lt;/li&gt;
&lt;li&gt;Increased development and maintenance overhead&lt;/li&gt;
&lt;li&gt;Security vulnerabilities from misconfigured nodes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For production dApps, node infrastructure is not an afterthought; it is a core architectural decision that affects user experience, development velocity, and operational costs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Self-hosted vs managed node infrastructure
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Self-hosted nodes
&lt;/h3&gt;

&lt;p&gt;Running your own node gives you full control over the software, hardware, and configuration. You can optimize for specific workloads, use custom patches, and avoid third-party dependencies. However, self-hosting requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dedicated hardware or cloud instances with sufficient CPU, RAM, and SSD storage&lt;/li&gt;
&lt;li&gt;Network bandwidth for syncing and peer communication&lt;/li&gt;
&lt;li&gt;Ongoing maintenance: software updates, chain migrations, security patches&lt;/li&gt;
&lt;li&gt;Monitoring and alerting for uptime and performance&lt;/li&gt;
&lt;li&gt;Expertise in blockchain client operations (e.g., Geth, Reth, Solana validator)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a single Ethereum full node, you might need a machine with 4+ vCPUs, 16+ GB RAM, and 2+ TB SSD. Archive nodes require significantly more storage (12+ TB for Ethereum). The operational burden grows with the number of chains you support.&lt;/p&gt;

&lt;h3&gt;
  
  
  Managed node providers
&lt;/h3&gt;

&lt;p&gt;Managed services handle the heavy lifting: provisioning, syncing, monitoring, and scaling. You get an RPC endpoint or dedicated node without managing the underlying infrastructure. Benefits include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reduced DevOps overhead&lt;/li&gt;
&lt;li&gt;Built-in redundancy and failover&lt;/li&gt;
&lt;li&gt;Access to multiple chains from a single provider&lt;/li&gt;
&lt;li&gt;Predictable pricing (subscription or pay-as-you-go)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When evaluating managed providers, consider the criteria in the checklist above. Providers like OnFinality offer both shared RPC APIs and dedicated nodes across many networks, with transparent &lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing&lt;/a&gt; and a wide range of &lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;supported networks&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key components of node infrastructure
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Hardware
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CPU&lt;/strong&gt;: Multi-core processors for transaction validation and block processing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RAM&lt;/strong&gt;: Sufficient memory for state caching and client operations (16-64 GB typical).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage&lt;/strong&gt;: Fast SSDs (NVMe recommended) for blockchain data. Archive nodes require terabytes of storage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network&lt;/strong&gt;: Low-latency internet connection with high bandwidth for syncing and peer communication.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Software
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Blockchain client&lt;/strong&gt;: The core software that implements the network protocol (e.g., Geth, Nethermind, Solana Labs client, Substrate node).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Middleware&lt;/strong&gt;: Tools for load balancing, caching, rate limiting, and API gateways.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitoring&lt;/strong&gt;: Prometheus, Grafana, or custom scripts to track node health.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Operations
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Syncing&lt;/strong&gt;: Initial sync can take days; incremental sync must keep up with block production.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Updates&lt;/strong&gt;: Regular client upgrades to stay on the correct chain fork.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backups&lt;/strong&gt;: Snapshot backups for quick recovery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt;: Firewall rules, SSH key management, DDoS protection.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to evaluate node infrastructure providers
&lt;/h2&gt;

&lt;p&gt;When comparing providers, focus on these dimensions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Network support&lt;/strong&gt;: Does the provider cover the chains you need (Ethereum, Solana, Polygon, BNB Chain, etc.)? Check &lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;OnFinality's network list&lt;/a&gt; for supported chains.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance&lt;/strong&gt;: Look for low latency and high throughput. Some providers offer dedicated nodes for consistent performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliability&lt;/strong&gt;: Ask about uptime SLAs, redundancy architecture, and historical incident response.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pricing&lt;/strong&gt;: Compare free tiers, pay-as-you-go rates, and dedicated node costs. See &lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing&lt;/a&gt; for transparent options.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developer experience&lt;/strong&gt;: API documentation, SDKs, WebSocket support, and testnet availability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt;: Authentication methods (API keys, JWT), IP whitelisting, and encryption.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Common pitfalls in node infrastructure
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Under-provisioning&lt;/strong&gt;: Choosing insufficient hardware leads to sync failures or high latency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Single point of failure&lt;/strong&gt;: Running a single node without redundancy risks downtime.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ignoring chain migrations&lt;/strong&gt;: Hard forks or state changes can break nodes if not updated promptly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rate limit surprises&lt;/strong&gt;: Shared endpoints often have rate limits that can throttle production traffic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Neglecting monitoring&lt;/strong&gt;: Without proper alerts, node issues go unnoticed until users complain.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Example: Connecting to a node via JSON-RPC
&lt;/h2&gt;

&lt;p&gt;Once you have node infrastructure (self-hosted or managed), you interact with it via RPC. Here's a simple curl example querying an Ethereum node:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "jsonrpc": "2.0",
    "method": "eth_blockNumber",
    "params": [],
    "id": 1
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For a managed provider like OnFinality, you would use the provided endpoint URL and API key.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Node infrastructure is the foundation of any Web3 application; reliability and performance directly impact user experience.&lt;/li&gt;
&lt;li&gt;Choose between self-hosted and managed based on your team's DevOps capacity, budget, and scalability needs.&lt;/li&gt;
&lt;li&gt;Evaluate providers on network coverage, performance, reliability, pricing, and security.&lt;/li&gt;
&lt;li&gt;Avoid common pitfalls like under-provisioning and single points of failure.&lt;/li&gt;
&lt;li&gt;Use the decision checklist to systematically compare options before committing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What is the difference between a full node and an archive node?&lt;/strong&gt;&lt;br&gt;
A full node stores the entire blockchain state up to the latest block but prunes historical state data. An archive node stores all historical states, allowing queries for any past block. Archive nodes require significantly more storage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I run multiple chains on the same hardware?&lt;/strong&gt;&lt;br&gt;
Yes, but each node consumes CPU, memory, and storage. Running multiple nodes on one machine may cause resource contention. Use separate instances or containers with resource limits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do I choose between shared and dedicated nodes?&lt;/strong&gt;&lt;br&gt;
Shared nodes are cost-effective for low-to-medium traffic. Dedicated nodes provide consistent performance and are recommended for production dApps with high throughput or strict latency requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens if my node provider goes down?&lt;/strong&gt;&lt;br&gt;
If you use a managed provider, check their redundancy and failover architecture. For self-hosted nodes, set up monitoring and have a backup node ready. Some providers offer multi-region deployments for high availability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do I need to run my own node?&lt;/strong&gt;&lt;br&gt;
Not necessarily. Many successful dApps use managed node providers. Running your own node gives you full control but requires significant operational expertise. Start with a managed service and migrate to self-hosted if needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;Supported RPC networks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Originally published at &lt;a href="https://onfinality.io/en/rpc-assistant/node-infrastructure-guide" rel="noopener noreferrer"&gt;OnFinality&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Solana Devnet Guide: RPC Endpoints, Faucet, and Setup for Developers</title>
      <dc:creator>Zhuoxin Sun</dc:creator>
      <pubDate>Mon, 20 Jul 2026 03:08:26 +0000</pubDate>
      <link>https://dev.to/zhuoxin_sun_f2354597a82c2/solana-devnet-guide-rpc-endpoints-faucet-and-setup-for-developers-572o</link>
      <guid>https://dev.to/zhuoxin_sun_f2354597a82c2/solana-devnet-guide-rpc-endpoints-faucet-and-setup-for-developers-572o</guid>
      <description>&lt;h2&gt;
  
  
  Solana Devnet decision checklist
&lt;/h2&gt;

&lt;p&gt;Before diving into Solana Devnet, consider these key factors:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;What to check&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;RPC endpoint reliability&lt;/td&gt;
&lt;td&gt;Does the provider offer dedicated or shared Devnet RPC?&lt;/td&gt;
&lt;td&gt;Unreliable endpoints cause transaction failures and wasted development time.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Faucet availability&lt;/td&gt;
&lt;td&gt;Can you get Devnet SOL easily?&lt;/td&gt;
&lt;td&gt;Without test tokens, you cannot deploy programs or pay transaction fees.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rate limits&lt;/td&gt;
&lt;td&gt;How many requests per second are allowed?&lt;/td&gt;
&lt;td&gt;Low limits can block automated testing and CI/CD pipelines.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network reset frequency&lt;/td&gt;
&lt;td&gt;How often is Devnet wiped?&lt;/td&gt;
&lt;td&gt;Frequent resets may require you to redeploy programs and re-fund accounts.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Documentation quality&lt;/td&gt;
&lt;td&gt;Are there clear setup guides and examples?&lt;/td&gt;
&lt;td&gt;Good docs reduce onboarding friction and debugging time.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What is Solana Devnet?
&lt;/h2&gt;

&lt;p&gt;Solana Devnet is a public development network that closely mimics Solana Mainnet Beta. It is designed for developers to build, test, and iterate on Solana programs (smart contracts) and dApps without risking real SOL. Devnet uses test tokens that have no monetary value, and you can obtain them for free from faucets.&lt;/p&gt;

&lt;p&gt;Devnet runs its own validator set and maintains a separate ledger from Mainnet. While it aims to replicate Mainnet's behavior, it may experience periodic resets or configuration changes. This makes it ideal for early-stage development, integration testing, and educational purposes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Devnet vs Testnet vs Mainnet
&lt;/h2&gt;

&lt;p&gt;Solana provides three main clusters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Devnet&lt;/strong&gt;: For developers to test applications with free test SOL. Closely mirrors Mainnet but may be reset.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testnet&lt;/strong&gt;: Used by validators and core developers to test protocol upgrades and network performance. Less stable than Devnet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mainnet Beta&lt;/strong&gt;: The production network where real SOL is used. All applications should be thoroughly tested on Devnet before deploying here.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to connect to Solana Devnet
&lt;/h2&gt;

&lt;p&gt;To interact with Solana Devnet, you need an RPC endpoint. You can use the public endpoint provided by Solana Labs or a third-party provider like OnFinality.&lt;/p&gt;

&lt;h3&gt;
  
  
  Public Devnet RPC endpoint
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://api.devnet.solana.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Using OnFinality for Devnet RPC
&lt;/h3&gt;

&lt;p&gt;OnFinality offers dedicated and shared RPC endpoints for Solana Devnet, with higher rate limits and better reliability than the public endpoint. You can get your own endpoint URL from the &lt;a href="https://onfinality.io/api-service" rel="noopener noreferrer"&gt;OnFinality dashboard&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Devnet SOL (faucet)
&lt;/h2&gt;

&lt;p&gt;To pay for transactions and deploy programs on Devnet, you need Devnet SOL. The official faucet is at &lt;a href="https://faucet.solana.com/" rel="noopener noreferrer"&gt;faucet.solana.com&lt;/a&gt;. You can request an airdrop of up to 2 SOL every 8 hours without authentication, or sign in with GitHub for a higher limit.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using the Solana CLI
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Set your CLI to use Devnet&lt;/span&gt;
solana config &lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="nt"&gt;--url&lt;/span&gt; https://api.devnet.solana.com

&lt;span class="c"&gt;# Request 1 SOL airdrop&lt;/span&gt;
solana airdrop 1 &amp;lt;YOUR_WALLET_ADDRESS&amp;gt;

&lt;span class="c"&gt;# Check balance&lt;/span&gt;
solana balance
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the public faucet is rate-limited, you can use alternative faucets or an RPC provider that includes faucet access.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting up your development environment
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Install Solana CLI
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;sh &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-sSfL&lt;/span&gt; https://release.solana.com/v1.18.26/install&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Configure for Devnet
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;solana config &lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="nt"&gt;--url&lt;/span&gt; https://api.devnet.solana.com
solana config get
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Create a wallet
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;solana-keygen new &lt;span class="nt"&gt;--outfile&lt;/span&gt; ~/.config/solana/id.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Deploy a sample program
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Create a new project&lt;/span&gt;
cargo new hello-solana &lt;span class="nt"&gt;--lib&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;hello-solana

&lt;span class="c"&gt;# Build and deploy&lt;/span&gt;
cargo build-bpf
solana program deploy ./target/deploy/hello_solana.so
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Common pitfalls and troubleshooting
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Rate limiting on public RPC
&lt;/h3&gt;

&lt;p&gt;The public Devnet endpoint (&lt;code&gt;api.devnet.solana.com&lt;/code&gt;) has strict rate limits. If you encounter "429 Too Many Requests" errors, consider using a provider like OnFinality that offers higher limits.&lt;/p&gt;

&lt;h3&gt;
  
  
  Faucet not working
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Ensure you are using the correct wallet address (Base58 format).&lt;/li&gt;
&lt;li&gt;The official faucet limits requests to 2 SOL per 8 hours per IP. Use a GitHub account to increase limits.&lt;/li&gt;
&lt;li&gt;If the faucet is down, try alternative faucets or use the CLI &lt;code&gt;solana airdrop&lt;/code&gt; command with a different RPC provider.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Network resets
&lt;/h3&gt;

&lt;p&gt;Devnet can be reset without notice. Always store your program IDs and account seeds so you can redeploy quickly. Use environment variables for configuration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing an RPC provider for Devnet
&lt;/h2&gt;

&lt;p&gt;When selecting an RPC provider for Solana Devnet, consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reliability&lt;/strong&gt;: Uptime and response consistency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rate limits&lt;/strong&gt;: Higher limits for CI/CD and automated testing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Faucet integration&lt;/strong&gt;: Some providers offer built-in faucet access.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Support&lt;/strong&gt;: Responsive support for development issues.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OnFinality provides &lt;a href="https://onfinality.io/networks/solana-devnet" rel="noopener noreferrer"&gt;Solana Devnet RPC endpoints&lt;/a&gt; with competitive rate limits and easy setup. You can also compare &lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing&lt;/a&gt; to find a plan that fits your development needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Solana Devnet is a free test network that mirrors Mainnet Beta, ideal for development and testing.&lt;/li&gt;
&lt;li&gt;Use the public RPC endpoint or a provider like OnFinality for better performance.&lt;/li&gt;
&lt;li&gt;Get Devnet SOL from the official faucet or via CLI airdrop.&lt;/li&gt;
&lt;li&gt;Be aware of rate limits and potential network resets.&lt;/li&gt;
&lt;li&gt;Always test thoroughly on Devnet before deploying to Mainnet.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Can I transfer Devnet SOL to Mainnet?&lt;/strong&gt;&lt;br&gt;
No. Devnet SOL is a test token with no real value and cannot be transferred to Mainnet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: How often is Devnet reset?&lt;/strong&gt;&lt;br&gt;
There is no fixed schedule, but resets occur during network upgrades or maintenance. Check the Solana status page for announcements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What is the difference between Devnet and Testnet?&lt;/strong&gt;&lt;br&gt;
Devnet is for application developers; Testnet is for protocol testing and validator experimentation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Do I need an API key to use Devnet RPC?&lt;/strong&gt;&lt;br&gt;
The public endpoint does not require a key, but it has low rate limits. Providers like OnFinality require a free account for higher limits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Can I run my own Devnet validator?&lt;/strong&gt;&lt;br&gt;
Yes, but it is not necessary for most developers. Using a public or provider RPC is simpler.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks/solana-devnet" rel="noopener noreferrer"&gt;Solana Devnet RPC Endpoints&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;Supported Networks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Originally published at &lt;a href="https://onfinality.io/en/rpc-assistant/devnet-solana-guide" rel="noopener noreferrer"&gt;OnFinality&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>solana</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Binance Smart Chain RPC: Complete Guide for Developers</title>
      <dc:creator>Zhuoxin Sun</dc:creator>
      <pubDate>Mon, 20 Jul 2026 03:07:50 +0000</pubDate>
      <link>https://dev.to/zhuoxin_sun_f2354597a82c2/binance-smart-chain-rpc-complete-guide-for-developers-4l8f</link>
      <guid>https://dev.to/zhuoxin_sun_f2354597a82c2/binance-smart-chain-rpc-complete-guide-for-developers-4l8f</guid>
      <description>&lt;h2&gt;
  
  
  Binance Smart Chain RPC decision checklist
&lt;/h2&gt;

&lt;p&gt;Before integrating a BSC RPC endpoint, consider these factors:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;What to check&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Rate limits&lt;/td&gt;
&lt;td&gt;Requests per second (RPS) or daily cap&lt;/td&gt;
&lt;td&gt;Public endpoints often throttle; high-traffic dApps need higher limits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reliability&lt;/td&gt;
&lt;td&gt;Uptime history and redundancy&lt;/td&gt;
&lt;td&gt;Downtime breaks your dApp; choose providers with multiple nodes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data freshness&lt;/td&gt;
&lt;td&gt;Block propagation delay&lt;/td&gt;
&lt;td&gt;Stale data can cause transaction failures or incorrect state&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Archive data&lt;/td&gt;
&lt;td&gt;Support for historical state queries&lt;/td&gt;
&lt;td&gt;Required for analytics, explorers, and certain DeFi operations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebSocket support&lt;/td&gt;
&lt;td&gt;Real-time event streaming&lt;/td&gt;
&lt;td&gt;Essential for order books, notifications, and live updates&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security&lt;/td&gt;
&lt;td&gt;HTTPS/WSS encryption, API key management&lt;/td&gt;
&lt;td&gt;Protects against man-in-the-middle attacks and unauthorized access&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pricing model&lt;/td&gt;
&lt;td&gt;Pay-as-you-go vs. subscription&lt;/td&gt;
&lt;td&gt;Match your traffic patterns to avoid overpaying or hitting limits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Geographic latency&lt;/td&gt;
&lt;td&gt;Server locations&lt;/td&gt;
&lt;td&gt;Lower latency improves user experience; consider multi-region providers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What is a Binance Smart Chain RPC?
&lt;/h2&gt;

&lt;p&gt;An RPC (Remote Procedure Call) endpoint is the URL that your wallet, dApp, or backend service uses to communicate with the Binance Smart Chain (BSC) network. BSC is an EVM-compatible blockchain, meaning it supports the same JSON-RPC API as Ethereum. This allows developers to use familiar tools like ethers.js, web3.js, and Hardhat to interact with BSC.&lt;/p&gt;

&lt;p&gt;Every interaction with BSC—sending transactions, querying balances, calling smart contracts—goes through an RPC endpoint. The choice of RPC provider directly affects the speed, reliability, and cost of your application.&lt;/p&gt;

&lt;h2&gt;
  
  
  BSC network details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Chain ID&lt;/strong&gt;: 56 (mainnet), 97 (testnet)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Currency&lt;/strong&gt;: BNB&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Block time&lt;/strong&gt;: ~3 seconds&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consensus&lt;/strong&gt;: Proof of Staked Authority (PoSA)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EVM compatibility&lt;/strong&gt;: Full&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to connect to BSC using an RPC endpoint
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Adding BSC to MetaMask
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open MetaMask and click the network dropdown.&lt;/li&gt;
&lt;li&gt;Click "Add Network" and fill in:

&lt;ul&gt;
&lt;li&gt;Network Name: BNB Smart Chain&lt;/li&gt;
&lt;li&gt;RPC URL: (your chosen endpoint)&lt;/li&gt;
&lt;li&gt;Chain ID: 56&lt;/li&gt;
&lt;li&gt;Symbol: BNB&lt;/li&gt;
&lt;li&gt;Block Explorer URL: &lt;a href="https://bscscan.com" rel="noopener noreferrer"&gt;https://bscscan.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click "Save".&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Connecting via ethers.js
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ethers&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ethers&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;ethers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;JsonRpcProvider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://bsc-dataseed.bnbchain.org&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getBlockNumber&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;blockNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getBlockNumber&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Current block:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;blockNumber&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;getBlockNumber&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Using curl to call the RPC
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://bsc-dataseed.bnbchain.org &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Public vs. private RPC endpoints
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Public endpoints
&lt;/h3&gt;

&lt;p&gt;Public RPC endpoints are free and open to everyone. BSC provides official endpoints like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;https://bsc-dataseed.bnbchain.org&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;https://bsc-dataseed1.bnbchain.org&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;https://bsc-dataseed2.bnbchain.org&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are suitable for development, testing, and low-traffic applications. However, they have rate limits (e.g., 10,000 requests per 5 minutes) and may throttle under heavy load.&lt;/p&gt;

&lt;h3&gt;
  
  
  Private endpoints
&lt;/h3&gt;

&lt;p&gt;Private endpoints require an API key and offer higher rate limits, dedicated resources, and better reliability. They are recommended for production dApps, especially those with high transaction volumes or real-time requirements.&lt;/p&gt;

&lt;p&gt;OnFinality provides both shared and dedicated RPC endpoints for BSC, with flexible pricing to match your traffic needs. You can get started with a free tier and scale up as your project grows. See &lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing&lt;/a&gt; for details.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to choose a BSC RPC provider
&lt;/h2&gt;

&lt;p&gt;When evaluating providers, consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Latency&lt;/strong&gt;: Lower latency means faster transaction confirmation and better user experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uptime&lt;/strong&gt;: Look for providers with redundant infrastructure and transparent status pages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rate limits&lt;/strong&gt;: Ensure the plan supports your peak request volume.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Archive data&lt;/strong&gt;: If you need historical state (e.g., for analytics), choose a provider that offers archive nodes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WebSocket support&lt;/strong&gt;: Required for real-time applications like DEX aggregators or NFT marketplaces.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Geographic distribution&lt;/strong&gt;: Providers with multiple regions reduce latency for global users.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OnFinality offers BSC endpoints with low latency, high availability, and support for both HTTP and WebSocket. Check our &lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;supported networks&lt;/a&gt; for the latest list.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common pitfalls and troubleshooting
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Rate limiting
&lt;/h3&gt;

&lt;p&gt;If you receive errors like &lt;code&gt;429 Too Many Requests&lt;/code&gt;, your application is exceeding the provider's rate limit. Solutions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upgrade to a paid plan with higher limits.&lt;/li&gt;
&lt;li&gt;Implement request caching or batching.&lt;/li&gt;
&lt;li&gt;Use multiple endpoints with fallback logic.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Stale data
&lt;/h3&gt;

&lt;p&gt;Some public endpoints may lag behind the latest block. This can cause transaction failures or incorrect state reads. Mitigate by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using a provider with fast block propagation.&lt;/li&gt;
&lt;li&gt;Checking the block number from multiple sources.&lt;/li&gt;
&lt;li&gt;Subscribing to newHeads via WebSocket for real-time updates.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Connection timeouts
&lt;/h3&gt;

&lt;p&gt;Network issues or overloaded servers can cause timeouts. Best practices:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set reasonable timeout values in your client.&lt;/li&gt;
&lt;li&gt;Implement retry logic with exponential backoff.&lt;/li&gt;
&lt;li&gt;Use a provider with load balancing and failover.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  BSC testnet RPC
&lt;/h2&gt;

&lt;p&gt;For development and testing, use the BSC Testnet (Chain ID 97). Official testnet endpoints include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;https://data-seed-prebsc-1-s1.bnbchain.org:8545&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;https://data-seed-prebsc-2-s1.bnbchain.org:8545&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can get test BNB from the &lt;a href="https://testnet.bnbchain.org/faucet-smart" rel="noopener noreferrer"&gt;BSC Faucet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;OnFinality also supports BSC Testnet. See our &lt;a href="https://onfinality.io/networks/bnb-testnet" rel="noopener noreferrer"&gt;BNB Testnet page&lt;/a&gt; for details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;BSC RPC endpoints are the bridge between your application and the blockchain.&lt;/li&gt;
&lt;li&gt;Public endpoints are free but limited; private endpoints offer better performance for production.&lt;/li&gt;
&lt;li&gt;Choose a provider based on latency, uptime, rate limits, and archive data support.&lt;/li&gt;
&lt;li&gt;Always test with the testnet before deploying to mainnet.&lt;/li&gt;
&lt;li&gt;Implement fallback and retry logic to handle failures gracefully.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is the BSC RPC URL?
&lt;/h3&gt;

&lt;p&gt;The official BSC mainnet RPC URL is &lt;code&gt;https://bsc-dataseed.bnbchain.org&lt;/code&gt;. Other providers offer alternative endpoints with different features.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is BSC RPC free?
&lt;/h3&gt;

&lt;p&gt;Yes, public endpoints are free but have rate limits. For higher limits, you need a paid plan from a provider like OnFinality.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I get a BSC RPC endpoint?
&lt;/h3&gt;

&lt;p&gt;You can use a public endpoint directly or sign up with an RPC provider to get a private endpoint with an API key.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the difference between BSC and BNB Chain?
&lt;/h3&gt;

&lt;p&gt;BNB Chain is the broader ecosystem that includes BNB Beacon Chain (staking/governance) and BNB Smart Chain (EVM-compatible). BSC is often used interchangeably with BNB Smart Chain.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I use Ethereum tools with BSC?
&lt;/h3&gt;

&lt;p&gt;Yes, because BSC is EVM-compatible, you can use ethers.js, web3.js, Hardhat, and other Ethereum development tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the BSC testnet RPC?
&lt;/h3&gt;

&lt;p&gt;The BSC testnet RPC URL is &lt;code&gt;https://data-seed-prebsc-1-s1.bnbchain.org:8545&lt;/code&gt;. Use it for development and testing.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I find the best BSC RPC provider?
&lt;/h3&gt;

&lt;p&gt;Evaluate providers based on latency, uptime, rate limits, archive support, and pricing. OnFinality offers competitive options for both shared and dedicated nodes. Check our &lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing&lt;/a&gt; and &lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;supported networks&lt;/a&gt; for more information.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks/bnb" rel="noopener noreferrer"&gt;BNB Chain RPC endpoints&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;Supported networks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Originally published at &lt;a href="https://onfinality.io/en/rpc-assistant/binance-smart-chain-rpc-guide" rel="noopener noreferrer"&gt;OnFinality&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Polygon RPC: Complete Developer Guide to Endpoints and Providers</title>
      <dc:creator>Zhuoxin Sun</dc:creator>
      <pubDate>Mon, 20 Jul 2026 03:07:14 +0000</pubDate>
      <link>https://dev.to/zhuoxin_sun_f2354597a82c2/polygon-rpc-complete-developer-guide-to-endpoints-and-providers-p14</link>
      <guid>https://dev.to/zhuoxin_sun_f2354597a82c2/polygon-rpc-complete-developer-guide-to-endpoints-and-providers-p14</guid>
      <description>&lt;h2&gt;
  
  
  Polygon RPC decision checklist
&lt;/h2&gt;

&lt;p&gt;Before you integrate a Polygon RPC endpoint, evaluate these factors to avoid common pitfalls:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;What to check&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Network &amp;amp; Chain ID&lt;/td&gt;
&lt;td&gt;Confirm you are using Polygon PoS mainnet (Chain ID 137) or Amoy testnet (Chain ID 80002)&lt;/td&gt;
&lt;td&gt;Wrong chain ID can cause transaction failures or fund loss&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rate limits&lt;/td&gt;
&lt;td&gt;Public endpoints often cap requests per second (e.g., 10-100 req/s)&lt;/td&gt;
&lt;td&gt;Exceeding limits leads to 429 errors and dropped requests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Uptime &amp;amp; reliability&lt;/td&gt;
&lt;td&gt;Check historical uptime and node redundancy&lt;/td&gt;
&lt;td&gt;Downtime can break your dApp or cause missed blocks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data freshness&lt;/td&gt;
&lt;td&gt;Ensure the endpoint returns the latest block quickly&lt;/td&gt;
&lt;td&gt;Stale data can lead to incorrect state reads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebSocket support&lt;/td&gt;
&lt;td&gt;Verify WSS endpoint availability for real-time subscriptions&lt;/td&gt;
&lt;td&gt;Required for event listeners and live updates&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Privacy &amp;amp; security&lt;/td&gt;
&lt;td&gt;Public endpoints may log your IP and requests&lt;/td&gt;
&lt;td&gt;Sensitive applications need private endpoints&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Archive data&lt;/td&gt;
&lt;td&gt;Do you need historical state? Archive nodes store full history&lt;/td&gt;
&lt;td&gt;Required for certain queries like eth_getLogs over large ranges&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;Compare free vs paid tiers, and understand pricing models&lt;/td&gt;
&lt;td&gt;Unplanned costs can blow your budget&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What is a Polygon RPC endpoint?
&lt;/h2&gt;

&lt;p&gt;A Polygon RPC (Remote Procedure Call) endpoint is a URL that allows your application to communicate with the Polygon blockchain. It acts as a gateway, enabling you to send transactions, query balances, call smart contracts, and subscribe to events using standard JSON-RPC methods like &lt;code&gt;eth_call&lt;/code&gt;, &lt;code&gt;eth_getBalance&lt;/code&gt;, and &lt;code&gt;eth_sendRawTransaction&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Polygon is an Ethereum-compatible (EVM) sidechain, so its RPC interface is nearly identical to Ethereum's. This means you can use the same Web3 libraries (ethers.js, web3.js, viem) and tools (Hardhat, Foundry, Remix) with minimal configuration changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Polygon network details
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Polygon PoS Mainnet
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Chain ID:&lt;/strong&gt; 137 (0x89)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Currency:&lt;/strong&gt; POL (formerly MATIC)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RPC endpoint:&lt;/strong&gt; &lt;code&gt;https://polygon.api.onfinality.io/public&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WSS endpoint:&lt;/strong&gt; &lt;code&gt;wss://polygon.api.onfinality.io/public&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Block explorer:&lt;/strong&gt; &lt;a href="https://polygonscan.com" rel="noopener noreferrer"&gt;PolygonScan&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Polygon Amoy Testnet
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Chain ID:&lt;/strong&gt; 80002&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Currency:&lt;/strong&gt; POL (testnet)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RPC endpoint:&lt;/strong&gt; &lt;code&gt;https://polygon-amoy.api.onfinality.io/public&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WSS endpoint:&lt;/strong&gt; &lt;code&gt;wss://polygon-amoy.api.onfinality.io/public&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Block explorer:&lt;/strong&gt; &lt;a href="https://amoy.polygonscan.com" rel="noopener noreferrer"&gt;Amoy Polygonscan&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Faucet:&lt;/strong&gt; Available via the official Polygon faucet&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to use a Polygon RPC endpoint
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Add to MetaMask
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open MetaMask and click the network dropdown.&lt;/li&gt;
&lt;li&gt;Click "Add Network" and then "Add a network manually".&lt;/li&gt;
&lt;li&gt;Fill in the details:

&lt;ul&gt;
&lt;li&gt;Network Name: Polygon Mainnet&lt;/li&gt;
&lt;li&gt;RPC URL: &lt;code&gt;https://polygon.api.onfinality.io/public&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Chain ID: &lt;code&gt;137&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Currency Symbol: &lt;code&gt;POL&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Block Explorer URL: &lt;code&gt;https://polygonscan.com&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click "Save".&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2. Use with ethers.js
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ethers&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ethers&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;ethers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;JsonRpcProvider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://polygon.api.onfinality.io/public&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;blockNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getBlockNumber&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Current block:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;blockNumber&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Use with curl
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://polygon.api.onfinality.io/public &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Public vs private Polygon RPC endpoints
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Public endpoints
&lt;/h3&gt;

&lt;p&gt;Public RPC endpoints are free and easy to use. They are great for prototyping, small projects, and personal use. However, they come with limitations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rate limits:&lt;/strong&gt; Typically 10-100 requests per second. Exceeding these limits results in HTTP 429 errors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No reliability expectations:&lt;/strong&gt; Public nodes can go offline without notice.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No privacy:&lt;/strong&gt; Your IP address and request data are visible to the node operator.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limited data:&lt;/strong&gt; Some public endpoints do not support archive data or debug/trace methods.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Popular public Polygon RPC endpoints include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;https://polygon.api.onfinality.io/public&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;https://polygon-bor-rpc.publicnode.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;https://polygon.drpc.org&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;https://1rpc.io/matic&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Private endpoints
&lt;/h3&gt;

&lt;p&gt;Private (or dedicated) endpoints are provisioned for your exclusive use. They offer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Higher rate limits:&lt;/strong&gt; Customizable to your needs, often thousands of requests per second.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Better reliability:&lt;/strong&gt; Redundant infrastructure with SLAs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enhanced privacy:&lt;/strong&gt; Your requests are not shared with other users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full API access:&lt;/strong&gt; Support for archive data, debug/trace methods, and custom configurations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Providers like OnFinality offer dedicated Polygon nodes that can be tailored to your application's requirements. You can choose between shared and dedicated infrastructure depending on your scale and budget.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common issues and troubleshooting
&lt;/h2&gt;

&lt;h3&gt;
  
  
  429 Too Many Requests
&lt;/h3&gt;

&lt;p&gt;This error indicates you have exceeded the rate limit of the endpoint. Solutions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reduce request frequency:&lt;/strong&gt; Implement exponential backoff or batch requests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Upgrade to a private endpoint:&lt;/strong&gt; Private endpoints offer higher or clear rate limits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use multiple endpoints:&lt;/strong&gt; Distribute requests across several public endpoints (but be aware of data consistency).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Connection timeouts
&lt;/h3&gt;

&lt;p&gt;Timeouts can occur due to network congestion or node overload. Try:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Switching to a different endpoint&lt;/strong&gt; from the list above.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Using a WebSocket endpoint&lt;/strong&gt; for real-time subscriptions (more efficient for event-driven apps).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contacting your provider&lt;/strong&gt; if the issue persists.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Stale data
&lt;/h3&gt;

&lt;p&gt;If you receive outdated block data, the node may be lagging. Verify the latest block number using a block explorer. For production, use endpoints with proven low latency.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to choose a Polygon RPC provider
&lt;/h2&gt;

&lt;p&gt;When selecting a provider for your Polygon dApp, consider the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Performance:&lt;/strong&gt; Look for low latency and high throughput. Test endpoints with tools like &lt;code&gt;curl&lt;/code&gt; or &lt;code&gt;wscat&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliability:&lt;/strong&gt; Check uptime history and whether the provider offers redundant nodes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalability:&lt;/strong&gt; Ensure the provider can handle your peak request volume without degradation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Support:&lt;/strong&gt; Evaluate the quality of documentation and technical support.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pricing:&lt;/strong&gt; Compare free tiers, pay-as-you-go, and dedicated plans. See &lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing&lt;/a&gt; for details.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network coverage:&lt;/strong&gt; Does the provider support both mainnet and testnet? OnFinality supports &lt;a href="https://onfinality.io/networks/polygon" rel="noopener noreferrer"&gt;Polygon mainnet and Amoy testnet&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Polygon RPC endpoints allow your dApp to interact with the Polygon blockchain using standard JSON-RPC.&lt;/li&gt;
&lt;li&gt;Public endpoints are free but come with rate limits and no guarantees; private endpoints offer better performance and reliability.&lt;/li&gt;
&lt;li&gt;Always verify the network (mainnet vs testnet) and chain ID to avoid costly mistakes.&lt;/li&gt;
&lt;li&gt;For production applications, consider using a dedicated node or a premium RPC service to ensure uptime and scalability.&lt;/li&gt;
&lt;li&gt;Test your endpoint thoroughly before deploying to production.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: What is the difference between Polygon RPC and Ethereum RPC?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: Polygon is EVM-compatible, so the RPC interface is nearly identical. The main differences are the chain ID (137 vs 1) and the underlying consensus mechanism (Polygon uses a modified Proof-of-Stake with Bor and Heimdall layers).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Can I use a free Polygon RPC for production?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: It depends on your traffic. Free public endpoints are suitable for low-volume applications and testing. For production with high traffic, a private endpoint is recommended to avoid rate limits and downtime.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: How do I get a Polygon RPC URL?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: You can use public endpoints listed in this guide, or sign up with a provider like OnFinality to get a dedicated endpoint. See &lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;supported RPC networks&lt;/a&gt; for more options.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What is the Polygon Amoy testnet RPC?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: The Amoy testnet RPC endpoint is &lt;code&gt;https://polygon-amoy.api.onfinality.io/public&lt;/code&gt; with Chain ID 80002. It is used for testing before deploying to mainnet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: How do I check my Polygon RPC endpoint is working?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: Use &lt;code&gt;curl&lt;/code&gt; to send a simple &lt;code&gt;eth_blockNumber&lt;/code&gt; request. If you get a valid JSON response with a block number, the endpoint is working.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What are the rate limits for public Polygon RPC?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: Rate limits vary by provider. Typically, public endpoints allow 10-100 requests per second. Check the provider's documentation for exact limits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Can I use WebSocket with Polygon RPC?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: Yes, many providers offer WebSocket endpoints (e.g., &lt;code&gt;wss://polygon.api.onfinality.io/public&lt;/code&gt;). WebSocket is recommended for real-time subscriptions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What is the best Polygon RPC provider?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: The best provider depends on your needs. For a balance of performance, reliability, and pricing, consider OnFinality. Evaluate multiple providers using the checklist above.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: How do I add Polygon to MetaMask?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: Use the network details provided in this guide (Chain ID 137, RPC URL, etc.) and add it manually in MetaMask's network settings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What is the difference between Polygon PoS and Polygon zkEVM?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: Polygon PoS is a sidechain with its own validator set, while Polygon zkEVM is a zero-knowledge rollup that inherits security from Ethereum. They have different RPC endpoints and chain IDs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks/polygon" rel="noopener noreferrer"&gt;Polygon network page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;Supported RPC networks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/rpc-assistant/how-to-choose-an-rpc-provider" rel="noopener noreferrer"&gt;How to choose an RPC provider&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Originally published at &lt;a href="https://onfinality.io/en/rpc-assistant/rpc-polygon-guide" rel="noopener noreferrer"&gt;OnFinality&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Polygon RPC Provider Guide: How to Choose the Best One</title>
      <dc:creator>Zhuoxin Sun</dc:creator>
      <pubDate>Mon, 20 Jul 2026 03:06:38 +0000</pubDate>
      <link>https://dev.to/zhuoxin_sun_f2354597a82c2/polygon-rpc-provider-guide-how-to-choose-the-best-one-4ai5</link>
      <guid>https://dev.to/zhuoxin_sun_f2354597a82c2/polygon-rpc-provider-guide-how-to-choose-the-best-one-4ai5</guid>
      <description>&lt;h2&gt;
  
  
  Polygon RPC provider decision checklist
&lt;/h2&gt;

&lt;p&gt;Before evaluating providers, clarify your requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Traffic volume&lt;/strong&gt;: Estimate daily request count. Shared RPCs may suffice for under 1M requests/day; dedicated nodes or premium plans are better for higher throughput.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data needs&lt;/strong&gt;: Do you need archive state (historical balances, logs) or debug/trace methods? Not all providers offer these.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Latency sensitivity&lt;/strong&gt;: Real-time applications (trading, gaming) require consistent low latency. Check WebSocket support.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliability&lt;/strong&gt;: Look for providers with multiple endpoints, load balancing, and transparent uptime history.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Budget&lt;/strong&gt;: Compare free tiers, pay-as-you-go, and dedicated node pricing. Factor in overage costs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Support&lt;/strong&gt;: For production, ensure access to technical support via chat, ticket, or dedicated account manager.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is a Polygon RPC provider?
&lt;/h2&gt;

&lt;p&gt;A Polygon RPC provider is a service that exposes JSON-RPC endpoints for interacting with the Polygon PoS chain (chain ID 137) and its testnet Amoy (chain ID 80002). Instead of running your own node, you connect to a provider's infrastructure to send transactions, query state, and subscribe to events. Providers handle node maintenance, scaling, and uptime, letting you focus on application logic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why your choice of Polygon RPC provider matters
&lt;/h2&gt;

&lt;p&gt;Polygon processes millions of transactions daily. A poorly chosen RPC endpoint can become a bottleneck: rate limits throttle your app during spikes, unreliable nodes cause failed transactions, and missing archive data blocks analytics. The right provider ensures your dApp remains responsive and trustworthy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key criteria for evaluating Polygon RPC providers
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;What to check&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Rate limits&lt;/td&gt;
&lt;td&gt;Requests per second (RPS) or daily cap&lt;/td&gt;
&lt;td&gt;Exceeding limits causes errors; choose a plan matching your peak traffic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Archive data&lt;/td&gt;
&lt;td&gt;Support for &lt;code&gt;eth_getBalance&lt;/code&gt; at historical blocks, &lt;code&gt;eth_getLogs&lt;/code&gt; with large ranges&lt;/td&gt;
&lt;td&gt;Required for analytics, auditing, and dApp features like historical portfolio views&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Debug/trace methods&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;debug_traceTransaction&lt;/code&gt;, &lt;code&gt;trace_block&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Needed for MEV analysis, gas optimization, and advanced debugging&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebSocket support&lt;/td&gt;
&lt;td&gt;WSS endpoint availability&lt;/td&gt;
&lt;td&gt;Essential for real-time event subscriptions (e.g., pending transactions, log filters)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Geographic distribution&lt;/td&gt;
&lt;td&gt;Multiple regions or edge nodes&lt;/td&gt;
&lt;td&gt;Reduces latency for global user base and improves failover&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Uptime SLA&lt;/td&gt;
&lt;td&gt;reliability expectations percentage (if any)&lt;/td&gt;
&lt;td&gt;Critical for production apps; verify with independent monitoring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pricing model&lt;/td&gt;
&lt;td&gt;Free tier, pay-as-you-go, dedicated node&lt;/td&gt;
&lt;td&gt;Match to your budget and scaling needs; watch for hidden overage fees&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;Community vs. dedicated support&lt;/td&gt;
&lt;td&gt;Production apps need responsive support to resolve issues quickly&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Types of Polygon RPC providers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Shared (public) RPC endpoints
&lt;/h3&gt;

&lt;p&gt;Free or low-cost endpoints shared among many users. Suitable for development, testing, and low-traffic apps. Limitations include rate limits, no archive data, and potential instability during high demand. Examples include the official Polygon public RPC and community-run endpoints.&lt;/p&gt;

&lt;h3&gt;
  
  
  Premium shared RPC
&lt;/h3&gt;

&lt;p&gt;Paid plans with higher rate limits, priority access, and often archive support. Good for growing dApps that need more headroom without managing dedicated infrastructure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dedicated nodes
&lt;/h3&gt;

&lt;p&gt;A private node (or cluster) reserved for your use. Offers full control over resources, clear rate limits, and consistent performance. Ideal for high-throughput applications, enterprise deployments, and workloads requiring custom configurations.&lt;/p&gt;

&lt;h3&gt;
  
  
  RPC aggregators / load balancers
&lt;/h3&gt;

&lt;p&gt;Services that route requests across multiple providers for redundancy and failover. Useful for production apps that cannot tolerate downtime.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to connect to a Polygon RPC provider
&lt;/h2&gt;

&lt;p&gt;Once you have an endpoint URL, configure your Web3 library. Example using ethers.js:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ethers&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ethers&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Replace with your Polygon RPC URL&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;ethers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;providers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;JsonRpcProvider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://polygon.api.onfinality.io/public&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getBlockNumber&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;blockNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getBlockNumber&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Current block number:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;blockNumber&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;getBlockNumber&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For WebSocket subscriptions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;ethers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;providers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;WebSocketProvider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;wss://polygon.api.onfinality.io/public-ws&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;block&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;blockNumber&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;New block:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;blockNumber&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Common pitfalls and how to avoid them
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ignoring rate limits&lt;/strong&gt;: Always check the provider's rate limit policy. Implement retry logic with exponential backoff.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Using public RPC for production&lt;/strong&gt;: Public endpoints are unreliable under load. Invest in a paid plan or dedicated node.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not testing WebSocket stability&lt;/strong&gt;: Some providers have flaky WebSocket connections. Test reconnection logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assuming archive support&lt;/strong&gt;: Not all providers offer full archive data. Verify before building features that depend on historical state.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Single point of failure&lt;/strong&gt;: Use multiple providers or a load balancer to avoid downtime.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Troubleshooting Polygon RPC issues
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Common errors
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;429 Too Many Requests&lt;/code&gt;: You've hit the rate limit. Reduce request frequency or upgrade your plan.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;503 Service Unavailable&lt;/code&gt;: Provider overloaded. Switch to a different endpoint or implement failover.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Invalid JSON-RPC response&lt;/code&gt;: Network issue or malformed request. Check your payload and network connectivity.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Nonce too low&lt;/code&gt;: Transaction nonce mismatch. Use &lt;code&gt;eth_getTransactionCount&lt;/code&gt; with the correct block parameter.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Quick checks
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Test endpoint with curl&lt;/span&gt;
curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://polygon.api.onfinality.io/public &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  When to consider a dedicated Polygon node
&lt;/h2&gt;

&lt;p&gt;Consider a dedicated node if:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your app makes over 10M requests per month.&lt;/li&gt;
&lt;li&gt;You need consistent low latency for real-time features.&lt;/li&gt;
&lt;li&gt;You require custom node configurations (e.g., pruning, tracing).&lt;/li&gt;
&lt;li&gt;You want to avoid noisy neighbors affecting performance.&lt;/li&gt;
&lt;li&gt;You need full control over node software and upgrades.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dedicated nodes from providers like OnFinality offer isolated resources, private endpoints, and often include archive data and debug methods.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Evaluate Polygon RPC providers based on rate limits, archive support, latency, and pricing.&lt;/li&gt;
&lt;li&gt;Shared RPC is fine for development; production apps need premium or dedicated solutions.&lt;/li&gt;
&lt;li&gt;Always test WebSocket stability and implement failover for critical applications.&lt;/li&gt;
&lt;li&gt;Use the decision checklist to match provider features to your workload.&lt;/li&gt;
&lt;li&gt;For high-throughput or enterprise use cases, consider a dedicated node for maximum reliability.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What is the best Polygon RPC provider?&lt;/strong&gt;&lt;br&gt;
There is no single "best" provider—it depends on your traffic, data needs, and budget. Compare features like rate limits, archive support, and pricing to find the right fit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I use a free Polygon RPC for production?&lt;/strong&gt;&lt;br&gt;
Free public RPCs are not recommended for production due to rate limits and potential instability. Use a paid plan or dedicated node for reliable service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does OnFinality support Polygon RPC?&lt;/strong&gt;&lt;br&gt;
Yes, OnFinality provides Polygon mainnet and testnet RPC endpoints. Visit the &lt;a href="https://onfinality.io/networks/polygon" rel="noopener noreferrer"&gt;Polygon network page&lt;/a&gt; for details and &lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing&lt;/a&gt; for plan options.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do I get Polygon testnet tokens?&lt;/strong&gt;&lt;br&gt;
Use the official Polygon Amoy faucet or your provider's faucet if available.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the difference between Polygon PoS and Polygon zkEVM?&lt;/strong&gt;&lt;br&gt;
Polygon PoS is a sidechain with its own RPC endpoints (chain ID 137). Polygon zkEVM is a ZK-rollup on Ethereum with separate endpoints. This guide focuses on Polygon PoS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How can I monitor my Polygon RPC performance?&lt;/strong&gt;&lt;br&gt;
Use tools like Tenderly, Alchemy's dashboard, or custom monitoring with Prometheus to track latency, error rates, and throughput.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks/polygon" rel="noopener noreferrer"&gt;Polygon network page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;Supported RPC networks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Originally published at &lt;a href="https://onfinality.io/en/rpc-assistant/polygon-rpc-provider-guide" rel="noopener noreferrer"&gt;OnFinality&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Moonriver RPC: Endpoints, Configuration, and Best Practices</title>
      <dc:creator>Zhuoxin Sun</dc:creator>
      <pubDate>Mon, 20 Jul 2026 03:06:02 +0000</pubDate>
      <link>https://dev.to/zhuoxin_sun_f2354597a82c2/moonriver-rpc-endpoints-configuration-and-best-practices-1ddi</link>
      <guid>https://dev.to/zhuoxin_sun_f2354597a82c2/moonriver-rpc-endpoints-configuration-and-best-practices-1ddi</guid>
      <description>&lt;h2&gt;
  
  
  Moonriver RPC Decision Checklist
&lt;/h2&gt;

&lt;p&gt;Before integrating Moonriver RPC into your project, consider the following:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;What to check&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Network type&lt;/td&gt;
&lt;td&gt;Mainnet (chain ID 1285) vs testnet&lt;/td&gt;
&lt;td&gt;Moonriver is a canary network with real MOVR tokens; ensure you are on the correct network for your use case.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Endpoint type&lt;/td&gt;
&lt;td&gt;HTTPS vs WSS&lt;/td&gt;
&lt;td&gt;Use HTTPS for standard requests, WSS for real-time subscriptions (e.g., event listeners).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rate limits&lt;/td&gt;
&lt;td&gt;Public vs private endpoints&lt;/td&gt;
&lt;td&gt;Public endpoints have rate limits; for production, use a private endpoint or dedicated node.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Archive data&lt;/td&gt;
&lt;td&gt;Full vs archive node&lt;/td&gt;
&lt;td&gt;Archive nodes provide historical state; needed for dApps that query past data.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Provider reliability&lt;/td&gt;
&lt;td&gt;Uptime, latency, support&lt;/td&gt;
&lt;td&gt;Choose a provider with consistent performance and responsive support.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pricing model&lt;/td&gt;
&lt;td&gt;Pay-as-you-go vs subscription&lt;/td&gt;
&lt;td&gt;Match the pricing model to your expected request volume.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security&lt;/td&gt;
&lt;td&gt;API key management, encryption&lt;/td&gt;
&lt;td&gt;Protect your API keys and use HTTPS/WSS to secure data in transit.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Geographic distribution&lt;/td&gt;
&lt;td&gt;Node locations&lt;/td&gt;
&lt;td&gt;Multiple regions reduce latency for global users.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What is Moonriver?
&lt;/h2&gt;

&lt;p&gt;Moonriver is a companion network to Moonbeam, serving as an incentivized canary network on the Kusama ecosystem. It provides a full Ethereum-like environment, supporting Solidity smart contracts and Ethereum-compatible tools. Developers use Moonriver to test new features and dApps in a production-like setting before deploying to Moonbeam. The native token is MOVR.&lt;/p&gt;

&lt;h2&gt;
  
  
  Moonriver Network Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Chain ID&lt;/strong&gt;: 1285 (0x505 in hex)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Currency&lt;/strong&gt;: MOVR&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Block Explorer&lt;/strong&gt;: &lt;a href="https://moonriver.moonscan.io" rel="noopener noreferrer"&gt;Moonscan&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Block Time&lt;/strong&gt;: ~12 seconds&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consensus&lt;/strong&gt;: Nominated Proof-of-Stake (NPoS) with collators&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Moonriver RPC Endpoints
&lt;/h2&gt;

&lt;p&gt;To interact with Moonriver, you need an RPC endpoint. Below are common public endpoints (rate-limited) and private endpoints from providers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Public Endpoints (for testing)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;HTTPS URL&lt;/th&gt;
&lt;th&gt;WSS URL&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Moonbeam Foundation&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://rpc.api.moonriver.moonbeam.network&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;wss://wss.api.moonriver.moonbeam.network&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OnFinality&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://moonriver.api.onfinality.io/public&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;wss://moonriver.api.onfinality.io/public-ws&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PublicNode&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://moonriver-rpc.publicnode.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;wss://moonriver-rpc.publicnode.com&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UnitedBloc&lt;/td&gt;
&lt;td&gt;&lt;code&gt;https://moonriver.unitedbloc.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;wss://moonriver.unitedbloc.com&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Public endpoints are rate-limited and not suitable for production. For reliable access, obtain a private API key from an RPC provider.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Private Endpoints (for production)
&lt;/h3&gt;

&lt;p&gt;Private endpoints offer higher rate limits, dedicated support, and optional archive/trace data. Providers like OnFinality offer managed RPC services with configurable plans. Visit the &lt;a href="https://onfinality.io/networks/moonriver" rel="noopener noreferrer"&gt;Moonriver network page&lt;/a&gt; for details.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Connect to Moonriver
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Using curl
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"id":1,"jsonrpc":"2.0","method":"eth_blockNumber","params":[]}'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  https://moonriver.api.onfinality.io/public
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Using ethers.js (JavaScript)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ethers&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ethers&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;ethers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;JsonRpcProvider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://moonriver.api.onfinality.io/public&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;chainId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1285&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;moonriver&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getBlockNumber&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;blockNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getBlockNumber&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Current block:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;blockNumber&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;getBlockNumber&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Using web3.py (Python)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;web3&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Web3&lt;/span&gt;

&lt;span class="n"&gt;w3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Web3&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Web3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;HTTPProvider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://moonriver.api.onfinality.io/public&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;w3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;eth&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;block_number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Adding Moonriver to MetaMask
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open MetaMask and click the network dropdown.&lt;/li&gt;
&lt;li&gt;Click "Add Network" or "Custom Network".&lt;/li&gt;
&lt;li&gt;Enter the following details:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Network Name&lt;/strong&gt;: Moonriver&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;New RPC URL&lt;/strong&gt;: &lt;code&gt;https://rpc.api.moonriver.moonbeam.network&lt;/code&gt; (or your private endpoint)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chain ID&lt;/strong&gt;: &lt;code&gt;1285&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Currency Symbol&lt;/strong&gt;: MOVR&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Block Explorer URL&lt;/strong&gt;: &lt;code&gt;https://moonriver.moonscan.io&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click "Save".&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Choosing an RPC Provider for Moonriver
&lt;/h2&gt;

&lt;p&gt;When selecting an RPC provider, consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reliability&lt;/strong&gt;: Look for providers with consistent uptime and low latency. Check their status page or community feedback.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalability&lt;/strong&gt;: Ensure the provider can handle your request volume without throttling.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Features&lt;/strong&gt;: Some providers offer archive nodes, trace APIs, or WebSocket support.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pricing&lt;/strong&gt;: Compare pay-as-you-go vs subscription plans. Visit &lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing&lt;/a&gt; for details.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Support&lt;/strong&gt;: Access to technical support can be crucial for production dApps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OnFinality provides Moonriver RPC endpoints with configurable rate limits, archive support, and dedicated node options. See the &lt;a href="https://onfinality.io/networks/moonriver" rel="noopener noreferrer"&gt;Moonriver network page&lt;/a&gt; for more information.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Pitfalls and Troubleshooting
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Rate Limiting
&lt;/h3&gt;

&lt;p&gt;Public endpoints have rate limits (e.g., 25-40 req/s). If you get 429 errors, switch to a private endpoint or reduce request frequency.&lt;/p&gt;

&lt;h3&gt;
  
  
  Incorrect Chain ID
&lt;/h3&gt;

&lt;p&gt;Ensure your wallet or dApp uses chain ID 1285. Using the wrong chain ID can cause transaction failures.&lt;/p&gt;

&lt;h3&gt;
  
  
  WebSocket Disconnections
&lt;/h3&gt;

&lt;p&gt;For real-time subscriptions, use WSS endpoints. If disconnections occur, implement reconnection logic in your application.&lt;/p&gt;

&lt;h3&gt;
  
  
  Missing Archive Data
&lt;/h3&gt;

&lt;p&gt;If your dApp requires historical state, use an archive node. Not all providers offer archive data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Moonriver is an Ethereum-compatible canary network on Kusama with chain ID 1285.&lt;/li&gt;
&lt;li&gt;Public RPC endpoints are available for testing but have rate limits.&lt;/li&gt;
&lt;li&gt;For production, use a private endpoint from a reliable provider.&lt;/li&gt;
&lt;li&gt;Configure your tools (MetaMask, ethers.js, etc.) with the correct network details.&lt;/li&gt;
&lt;li&gt;Evaluate providers based on reliability, scalability, features, and pricing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is the difference between Moonriver and Moonbeam?
&lt;/h3&gt;

&lt;p&gt;Moonriver is a canary network on Kusama where new features are tested before being deployed to Moonbeam on Polkadot. Moonriver uses MOVR tokens and has real economic value.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I use Moonriver for production dApps?
&lt;/h3&gt;

&lt;p&gt;Yes, Moonriver is a live network with real assets. Many dApps deploy on Moonriver to reach the Kusama ecosystem.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I get MOVR tokens?
&lt;/h3&gt;

&lt;p&gt;MOVR can be obtained through decentralized exchanges (e.g., SushiSwap on Moonriver) or centralized exchanges that list MOVR.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the rate limits for public endpoints?
&lt;/h3&gt;

&lt;p&gt;Rate limits vary by provider. For example, the Moonbeam Foundation endpoint allows 25 req/s, while OnFinality's public endpoint allows 40 req/s. For higher limits, use a private endpoint.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does OnFinality support Moonriver archive nodes?
&lt;/h3&gt;

&lt;p&gt;Yes, OnFinality offers archive nodes for Moonriver. Check the &lt;a href="https://onfinality.io/networks/moonriver" rel="noopener noreferrer"&gt;Moonriver network page&lt;/a&gt; for details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Explore the &lt;a href="https://onfinality.io/networks/moonriver" rel="noopener noreferrer"&gt;Moonriver network page&lt;/a&gt; to create a dedicated endpoint.&lt;/li&gt;
&lt;li&gt;Review &lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing&lt;/a&gt; to choose a plan that fits your needs.&lt;/li&gt;
&lt;li&gt;Browse all &lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;supported networks&lt;/a&gt; for other chains you may need.&lt;/li&gt;
&lt;li&gt;For a deeper understanding of RPC provider selection, read our &lt;a href="https://onfinality.io/rpc-assistant/how-to-choose-an-rpc-provider" rel="noopener noreferrer"&gt;guide on choosing an RPC provider&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Related resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks/moonriver" rel="noopener noreferrer"&gt;Moonriver RPC Endpoints&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;Supported Networks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Originally published at &lt;a href="https://onfinality.io/en/rpc-assistant/moonriver-rpc-guide" rel="noopener noreferrer"&gt;OnFinality&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Ethereum RPC Node Guide: What It Is and How to Choose One</title>
      <dc:creator>Zhuoxin Sun</dc:creator>
      <pubDate>Mon, 20 Jul 2026 03:05:26 +0000</pubDate>
      <link>https://dev.to/zhuoxin_sun_f2354597a82c2/ethereum-rpc-node-guide-what-it-is-and-how-to-choose-one-225</link>
      <guid>https://dev.to/zhuoxin_sun_f2354597a82c2/ethereum-rpc-node-guide-what-it-is-and-how-to-choose-one-225</guid>
      <description>&lt;h2&gt;
  
  
  Ethereum RPC Node decision checklist
&lt;/h2&gt;

&lt;p&gt;Before selecting an Ethereum RPC node, consider these factors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Throughput requirements&lt;/strong&gt;: Estimate your peak requests per second (RPS). Shared nodes may throttle at high volumes; dedicated nodes provide consistent capacity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliability needs&lt;/strong&gt;: For production apps, look for providers with redundant infrastructure and SLAs. Avoid single points of failure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data access&lt;/strong&gt;: Full nodes provide current state; archive nodes store historical data. If you need past block states or trace calls, choose an archive node.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Geographic distribution&lt;/strong&gt;: Low latency requires nodes close to your users. Providers with global endpoints reduce round-trip time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security and privacy&lt;/strong&gt;: Shared nodes may log requests. Dedicated nodes offer isolation and better control over data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost model&lt;/strong&gt;: Evaluate free tiers, pay-as-you-go, and flat-rate plans. Factor in overage charges for burst traffic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testnet support&lt;/strong&gt;: Ensure the provider offers Sepolia or Holesky endpoints for development and testing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is an Ethereum RPC node?
&lt;/h2&gt;

&lt;p&gt;An Ethereum RPC node is a server that runs an Ethereum client (e.g., Geth, Nethermind, Erigon) and exposes the JSON-RPC API. This API allows external applications—wallets, dApps, block explorers—to read blockchain data (balances, transaction receipts, logs) and submit transactions. The term "RPC" stands for Remote Procedure Call, a protocol that lets a program request a service from another program on a different machine.&lt;/p&gt;

&lt;p&gt;Every Ethereum node implements the same JSON-RPC specification, so you can use the same API methods regardless of the client software. Common methods include &lt;code&gt;eth_blockNumber&lt;/code&gt;, &lt;code&gt;eth_getBalance&lt;/code&gt;, &lt;code&gt;eth_sendRawTransaction&lt;/code&gt;, and &lt;code&gt;eth_call&lt;/code&gt;. The API is transport-agnostic but typically accessed over HTTP or WebSocket.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does JSON-RPC work?
&lt;/h2&gt;

&lt;p&gt;JSON-RPC is a lightweight protocol that uses JSON for data encoding. A request contains a method name, parameters, and an ID. The node responds with a result or error. Here's a simple example using &lt;code&gt;curl&lt;/code&gt; to get the latest block number:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://eth.drpc.org &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--data&lt;/span&gt; &lt;span class="s1"&gt;'{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Response:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"jsonrpc"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"2.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"result"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"0x134e2a0"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The result is hex-encoded. To use it in JavaScript with ethers.js:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ethers&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ethers&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;ethers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;JsonRpcProvider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://eth.drpc.org&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getBlockNumber&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Types of Ethereum RPC nodes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Full nodes
&lt;/h3&gt;

&lt;p&gt;A full node stores the entire blockchain and validates all blocks. It can serve current state data but prunes historical state older than a certain number of blocks (e.g., 128 blocks for Geth). Full nodes are sufficient for most dApps that need recent data.&lt;/p&gt;

&lt;h3&gt;
  
  
  Archive nodes
&lt;/h3&gt;

&lt;p&gt;Archive nodes retain all historical state, allowing queries like &lt;code&gt;eth_getBalance&lt;/code&gt; at any past block. They require significantly more storage (multiple TB) and are used by block explorers, analytics platforms, and services that need deep history.&lt;/p&gt;

&lt;h3&gt;
  
  
  Shared vs. dedicated nodes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Shared nodes&lt;/strong&gt;: Multiple users share the same node infrastructure. Providers rate-limit requests to ensure fairness. Suitable for development, low-traffic apps, and testing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dedicated nodes&lt;/strong&gt;: You get a private node with guaranteed resources. clear rate limitsing from other tenants, better performance consistency, and full control over the client configuration.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to choose an Ethereum RPC provider
&lt;/h2&gt;

&lt;p&gt;When evaluating providers, compare these criteria:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;What to check&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Throughput&lt;/td&gt;
&lt;td&gt;Maximum RPS, burst allowance&lt;/td&gt;
&lt;td&gt;Prevents throttling during traffic spikes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Uptime SLA&lt;/td&gt;
&lt;td&gt;reliability expectations percentage&lt;/td&gt;
&lt;td&gt;Ensures service reliability for production&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Latency&lt;/td&gt;
&lt;td&gt;Geographic endpoint distribution&lt;/td&gt;
&lt;td&gt;Reduces round-trip time for global users&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data retention&lt;/td&gt;
&lt;td&gt;Archive vs. full node support&lt;/td&gt;
&lt;td&gt;Needed for historical queries&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security&lt;/td&gt;
&lt;td&gt;Encryption, request logging&lt;/td&gt;
&lt;td&gt;Protects sensitive data and user privacy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pricing model&lt;/td&gt;
&lt;td&gt;Free tier, pay-as-you-go, flat rate&lt;/td&gt;
&lt;td&gt;Aligns cost with usage patterns&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Testnet availability&lt;/td&gt;
&lt;td&gt;Sepolia, Holesky endpoints&lt;/td&gt;
&lt;td&gt;Enables safe development and testing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Setting up your own Ethereum RPC node
&lt;/h2&gt;

&lt;p&gt;Running your own node gives you full control but requires technical expertise and infrastructure. Here's a minimal setup using Geth:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install Geth on a Linux server (recommended: Ubuntu 22.04+).&lt;/li&gt;
&lt;li&gt;Start the node with HTTP RPC enabled:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;geth &lt;span class="nt"&gt;--syncmode&lt;/span&gt; snap &lt;span class="nt"&gt;--http&lt;/span&gt; &lt;span class="nt"&gt;--http&lt;/span&gt;.addr 0.0.0.0 &lt;span class="nt"&gt;--http&lt;/span&gt;.port 8545 &lt;span class="nt"&gt;--http&lt;/span&gt;.api eth,net,web3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;The RPC endpoint will be &lt;code&gt;http://&amp;lt;your-server-ip&amp;gt;:8545&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Important considerations&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initial sync can take days and requires ~1TB of storage for a full node.&lt;/li&gt;
&lt;li&gt;You must keep the node updated and monitor its health.&lt;/li&gt;
&lt;li&gt;Security: restrict access via firewall and use TLS if exposed to the internet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For most teams, using a managed RPC service is more practical. OnFinality offers both shared and dedicated Ethereum RPC nodes with global endpoints, archive support, and flexible pricing. Check our &lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;supported RPC networks&lt;/a&gt; and &lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing&lt;/a&gt; for details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common pitfalls and troubleshooting
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rate limiting&lt;/strong&gt;: If you receive HTTP 429 errors, you've exceeded the provider's rate limit. Upgrade to a higher tier or use a dedicated node.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nonce errors&lt;/strong&gt;: When sending transactions, ensure the nonce is correct. Use &lt;code&gt;eth_getTransactionCount&lt;/code&gt; with the &lt;code&gt;pending&lt;/code&gt; block parameter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Block not found&lt;/strong&gt;: If querying a recent block, it may not yet be finalized. Use the &lt;code&gt;latest&lt;/code&gt; or &lt;code&gt;safe&lt;/code&gt; block tag as appropriate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WebSocket disconnections&lt;/strong&gt;: For real-time feeds, implement reconnection logic in your client.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;An Ethereum RPC node is the gateway for applications to interact with the blockchain.&lt;/li&gt;
&lt;li&gt;Choose between full and archive nodes based on your data needs.&lt;/li&gt;
&lt;li&gt;Shared nodes are cost-effective for low traffic; dedicated nodes offer consistent performance.&lt;/li&gt;
&lt;li&gt;Evaluate providers on throughput, latency, uptime, and pricing.&lt;/li&gt;
&lt;li&gt;Managed services simplify operations; OnFinality provides reliable Ethereum RPC endpoints for mainnet and testnets.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What is the difference between an Ethereum node and an RPC node?&lt;/strong&gt;&lt;br&gt;
An Ethereum node is the software that runs the blockchain protocol. An RPC node is a node that exposes the JSON-RPC API, allowing external applications to interact with it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I use a free Ethereum RPC node for production?&lt;/strong&gt;&lt;br&gt;
Free tiers are suitable for development and low-traffic apps. For production, consider a paid plan with guaranteed throughput and uptime.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do I find the best Ethereum RPC endpoint?&lt;/strong&gt;&lt;br&gt;
Compare providers based on latency, reliability, and features. Services like OnFinality offer multiple endpoints with automatic failover.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is an archive node?&lt;/strong&gt;&lt;br&gt;
An archive node stores the complete history of the Ethereum blockchain, enabling queries for any past state. It requires significant storage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do I switch RPC providers?&lt;/strong&gt;&lt;br&gt;
Update the RPC URL in your application configuration. If using a library like ethers.js, change the provider URL and test thoroughly.&lt;/p&gt;

&lt;p&gt;For more details, visit our &lt;a href="https://onfinality.io/api-service" rel="noopener noreferrer"&gt;Ethereum RPC API service&lt;/a&gt; or explore &lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;all supported networks&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/api-service" rel="noopener noreferrer"&gt;Ethereum RPC API Service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;Supported RPC Networks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC Pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Originally published at &lt;a href="https://onfinality.io/en/rpc-assistant/ethereum-rpc-node-guide" rel="noopener noreferrer"&gt;OnFinality&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>ethereum</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Acala Network Guide: RPC Endpoints, Architecture &amp; Developer Tips</title>
      <dc:creator>Zhuoxin Sun</dc:creator>
      <pubDate>Mon, 20 Jul 2026 03:04:50 +0000</pubDate>
      <link>https://dev.to/zhuoxin_sun_f2354597a82c2/acala-network-guide-rpc-endpoints-architecture-developer-tips-npp</link>
      <guid>https://dev.to/zhuoxin_sun_f2354597a82c2/acala-network-guide-rpc-endpoints-architecture-developer-tips-npp</guid>
      <description>&lt;h2&gt;
  
  
  Acala Network decision checklist
&lt;/h2&gt;

&lt;p&gt;Before integrating with the Acala Network, evaluate the following criteria to ensure your infrastructure aligns with your project's needs.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;What to check&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Network type&lt;/td&gt;
&lt;td&gt;Mainnet or testnet (e.g., Acala Mandala)&lt;/td&gt;
&lt;td&gt;Testnet is essential for development; mainnet for production.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RPC endpoint reliability&lt;/td&gt;
&lt;td&gt;Uptime, rate limits, and latency&lt;/td&gt;
&lt;td&gt;Unreliable endpoints cause transaction failures and poor user experience.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EVM compatibility&lt;/td&gt;
&lt;td&gt;Solidity support, precompiles&lt;/td&gt;
&lt;td&gt;Acala's EVM+ allows Ethereum tooling; verify compatibility with your contracts.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data archival depth&lt;/td&gt;
&lt;td&gt;Full, archive, or pruned node&lt;/td&gt;
&lt;td&gt;Archive nodes are needed for historical queries; full nodes suffice for most dApps.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Provider reputation&lt;/td&gt;
&lt;td&gt;Documentation, support, SLAs&lt;/td&gt;
&lt;td&gt;A responsive provider reduces downtime and troubleshooting effort.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pricing model&lt;/td&gt;
&lt;td&gt;Pay-as-you-go, subscription, or dedicated node&lt;/td&gt;
&lt;td&gt;Match cost structure to your traffic patterns and budget.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What is the Acala Network?
&lt;/h2&gt;

&lt;p&gt;Acala Network is a decentralized finance (DeFi) platform built on Polkadot. It functions as a parachain, meaning it leverages Polkadot's shared security and interoperability while maintaining its own execution environment. Acala provides a suite of DeFi primitives including a liquid staking protocol (Homa), a decentralized exchange (DEX), and a cross-chain stablecoin system (Honzon). It is EVM-compatible, allowing developers to deploy Solidity smart contracts with minimal changes.&lt;/p&gt;

&lt;p&gt;Key components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ACA token&lt;/strong&gt;: The native utility and governance token.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;aUSD (now AUSD)&lt;/strong&gt;: A decentralized, multi-collateral stablecoin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LDOT&lt;/strong&gt;: Liquid staked DOT, representing staked DOT plus staking rewards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Euphrates&lt;/strong&gt;: A unified liquid staking platform.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EVM+&lt;/strong&gt;: An enhanced Ethereum Virtual Machine with Substrate-native features.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Acala Network architecture
&lt;/h2&gt;

&lt;p&gt;Acala is built using the Substrate framework, which provides flexibility and modularity. It connects to the Polkadot Relay Chain via a parachain slot. The network uses collators to produce blocks and relay them to Polkadot validators for finalization. This design gives Acala high throughput, low fees, and the ability to customize its runtime.&lt;/p&gt;

&lt;h3&gt;
  
  
  EVM+ and Substrate dual environment
&lt;/h3&gt;

&lt;p&gt;Acala supports both Substrate-native pallets and Ethereum-compatible smart contracts. Developers can write contracts in Solidity and deploy them via MetaMask or Hardhat, while also accessing Substrate-specific features like on-chain governance and custom pallets.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to connect to the Acala Network
&lt;/h2&gt;

&lt;p&gt;To interact with Acala, you need an RPC endpoint. Below are examples of connecting using common tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using curl
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  https://acala-rpc.publicnode.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Using ethers.js
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ethers&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ethers&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;ethers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;providers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;JsonRpcProvider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://acala-rpc.publicnode.com&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getBlockNumber&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Using web3.py
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;web3&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Web3&lt;/span&gt;

&lt;span class="n"&gt;w3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Web3&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Web3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;HTTPProvider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://acala-rpc.publicnode.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;w3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;eth&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;block_number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Choosing an RPC provider for Acala
&lt;/h2&gt;

&lt;p&gt;When selecting an RPC provider, consider the following factors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reliability&lt;/strong&gt;: Look for providers with transparent uptime statistics and redundant infrastructure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rate limits&lt;/strong&gt;: Ensure the plan matches your request volume. Free tiers often have strict limits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Geographic distribution&lt;/strong&gt;: Low-latency endpoints improve user experience for global audiences.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Support&lt;/strong&gt;: Access to technical support can be critical during development and incidents.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OnFinality offers &lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;RPC endpoints&lt;/a&gt; for Acala mainnet and testnet, with flexible &lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;pricing&lt;/a&gt; options suitable for projects of all sizes. For high-traffic applications, a &lt;a href="https://onfinality.io/dedicated-node" rel="noopener noreferrer"&gt;dedicated node&lt;/a&gt; provides isolated resources and consistent performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common pitfalls and troubleshooting
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Incorrect chain ID
&lt;/h3&gt;

&lt;p&gt;Acala's chain ID is 787. Using the wrong chain ID in MetaMask or other wallets will cause transaction failures.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Insufficient gas for EVM transactions
&lt;/h3&gt;

&lt;p&gt;Acala uses a gas model similar to Ethereum. Ensure your account has enough ACA to cover gas costs. You can estimate gas using &lt;code&gt;eth_estimateGas&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Block finality delays
&lt;/h3&gt;

&lt;p&gt;Acala blocks are finalized after being included in a Polkadot relay chain block. This may take a few seconds longer than Ethereum. Use &lt;code&gt;eth_getTransactionReceipt&lt;/code&gt; to confirm finality.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Rate limiting on public endpoints
&lt;/h3&gt;

&lt;p&gt;Public RPC endpoints often have rate limits. For production dApps, consider a private endpoint or dedicated node to avoid throttling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Acala Network is a DeFi parachain on Polkadot with EVM compatibility.&lt;/li&gt;
&lt;li&gt;It offers liquid staking, a DEX, and a stablecoin protocol.&lt;/li&gt;
&lt;li&gt;Developers can connect using standard Ethereum tools via Acala's EVM+.&lt;/li&gt;
&lt;li&gt;Choosing a reliable RPC provider is crucial for dApp performance.&lt;/li&gt;
&lt;li&gt;OnFinality provides Acala RPC endpoints and dedicated node solutions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is the Acala Network RPC URL?
&lt;/h3&gt;

&lt;p&gt;The public RPC URL for Acala mainnet is &lt;code&gt;https://acala-rpc.publicnode.com&lt;/code&gt;. For testnet (Mandala), use &lt;code&gt;https://acala-mandala-rpc.publicnode.com&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is Acala EVM-compatible?
&lt;/h3&gt;

&lt;p&gt;Yes, Acala supports the Ethereum Virtual Machine (EVM+) with additional Substrate features. You can deploy Solidity contracts with minor adjustments.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I get ACA tokens for testnet?
&lt;/h3&gt;

&lt;p&gt;Use the Acala faucet available on their official website or community channels. Testnet tokens have no real value.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I run my own Acala node?
&lt;/h3&gt;

&lt;p&gt;Yes, you can run a full node using Substrate. However, for production dApps, using a managed RPC provider like OnFinality saves operational overhead.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the difference between Acala and Karura?
&lt;/h3&gt;

&lt;p&gt;Karura is the sister network of Acala on Kusama, serving as a canary network for experimental features. Acala is the mainnet on Polkadot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next steps
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Explore the &lt;a href="https://acala.network/developers" rel="noopener noreferrer"&gt;Acala documentation&lt;/a&gt; for detailed integration guides.&lt;/li&gt;
&lt;li&gt;Test your dApp on Acala Mandala testnet using a reliable RPC endpoint.&lt;/li&gt;
&lt;li&gt;Compare RPC providers on &lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;OnFinality's network page&lt;/a&gt; to find the best fit for your project.&lt;/li&gt;
&lt;li&gt;Consider a &lt;a href="https://onfinality.io/dedicated-node" rel="noopener noreferrer"&gt;dedicated node&lt;/a&gt; for high-throughput applications requiring consistent performance.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Related resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;Supported RPC Networks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC Pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Originally published at &lt;a href="https://onfinality.io/en/rpc-assistant/acala-network-guide" rel="noopener noreferrer"&gt;OnFinality&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Shared vs Dedicated Solana RPC: Cost Differences Explained</title>
      <dc:creator>Zhuoxin Sun</dc:creator>
      <pubDate>Mon, 20 Jul 2026 03:04:14 +0000</pubDate>
      <link>https://dev.to/zhuoxin_sun_f2354597a82c2/shared-vs-dedicated-solana-rpc-cost-differences-explained-1nip</link>
      <guid>https://dev.to/zhuoxin_sun_f2354597a82c2/shared-vs-dedicated-solana-rpc-cost-differences-explained-1nip</guid>
      <description>&lt;p&gt;When building on Solana, one of the first infrastructure decisions you face is whether to use a shared RPC endpoint or provision a dedicated node. The cost difference between these two options goes beyond the monthly bill—it affects performance predictability, scaling strategy, and operational overhead. This article breaks down the pricing models, hidden costs, and decision criteria so you can choose the right fit for your project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Solana RPC cost decision checklist
&lt;/h2&gt;

&lt;p&gt;Before diving into the numbers, use this checklist to evaluate your situation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Estimate your monthly request volume (getCurrentBlockheight, getProgramAccounts, sendTransaction, etc.)&lt;/li&gt;
&lt;li&gt;[ ] Identify peak traffic patterns and whether they are predictable&lt;/li&gt;
&lt;li&gt;[ ] Determine latency sensitivity: does a 50ms jitter affect your user experience?&lt;/li&gt;
&lt;li&gt;[ ] Check if you need custom Solana configuration (e.g., snapshot settings, Geyser plugins)&lt;/li&gt;
&lt;li&gt;[ ] Review provider pricing pages for shared tiers and dedicated node costs&lt;/li&gt;
&lt;li&gt;[ ] Consider data transfer costs (egress) if you stream large amounts of data&lt;/li&gt;
&lt;li&gt;[ ] Evaluate whether you need devnet/testnet access with the same provider&lt;/li&gt;
&lt;li&gt;[ ] Plan for scaling: can you start shared and migrate to dedicated later?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How shared Solana RPC pricing works
&lt;/h2&gt;

&lt;p&gt;Shared RPC nodes are multi-tenant infrastructure. The provider runs a cluster of Solana nodes and distributes traffic among all customers. Pricing is typically usage-based:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pay-as-you-go credits&lt;/strong&gt;: You buy a pool of credits (e.g., 1 credit = 1 request) and consume them monthly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tiered subscriptions&lt;/strong&gt;: Fixed monthly fee for a capped request volume (e.g., 10M requests/month).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overage charges&lt;/strong&gt;: Additional cost per extra request beyond the tier.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, a shared plan might cost $49/month for 10M requests, while a higher tier at $499/month offers 100M requests. The unit cost per request decreases as you move up tiers, but you still share the underlying node with other users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hidden costs of shared nodes&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rate limiting under heavy traffic from other tenants&lt;/li&gt;
&lt;li&gt;Variable latency (jitter) during peak hours&lt;/li&gt;
&lt;li&gt;No control over node configuration or software version&lt;/li&gt;
&lt;li&gt;Potential IP blacklisting if another tenant misbehaves&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How dedicated Solana RPC pricing works
&lt;/h2&gt;

&lt;p&gt;Dedicated Solana RPC nodes give you exclusive access to one or more full nodes. Pricing is typically a flat monthly fee that covers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hardware rental&lt;/strong&gt;: Cloud or bare-metal server costs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node management&lt;/strong&gt;: Monitoring, patching, and uptime maintenance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data transfer&lt;/strong&gt;: Often included up to a certain limit&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Support&lt;/strong&gt;: Faster response times and dedicated engineering contacts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dedicated node prices vary widely based on hardware specs (CPU, RAM, NVMe storage), network bandwidth, and geographic location. A basic dedicated Solana RPC node might start around $300–$500/month, while high-availability clusters with archive data can exceed $2,000/month.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you pay for&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resource isolation: no noisy neighbors&lt;/li&gt;
&lt;li&gt;Predictable latency and throughput&lt;/li&gt;
&lt;li&gt;Custom configuration (e.g., enable Geyser plugins, adjust snapshot intervals)&lt;/li&gt;
&lt;li&gt;Higher rate limits (often unlimited internal requests)&lt;/li&gt;
&lt;li&gt;Ability to run validator or RPC with custom flags&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cost comparison table
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;Shared RPC&lt;/th&gt;
&lt;th&gt;Dedicated RPC&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pricing model&lt;/td&gt;
&lt;td&gt;Usage-based (credits/tiers)&lt;/td&gt;
&lt;td&gt;Flat monthly fee&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Typical monthly cost (low usage)&lt;/td&gt;
&lt;td&gt;$0–$100&lt;/td&gt;
&lt;td&gt;$300–$500+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Typical monthly cost (high usage)&lt;/td&gt;
&lt;td&gt;$500–$2,000+&lt;/td&gt;
&lt;td&gt;$500–$2,000+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost predictability&lt;/td&gt;
&lt;td&gt;Variable with traffic&lt;/td&gt;
&lt;td&gt;Fixed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rate limits&lt;/td&gt;
&lt;td&gt;Yes, per tier&lt;/td&gt;
&lt;td&gt;No (or very high)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Latency jitter&lt;/td&gt;
&lt;td&gt;Possible during peaks&lt;/td&gt;
&lt;td&gt;Minimal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Configuration control&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Full&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data transfer costs&lt;/td&gt;
&lt;td&gt;Often metered&lt;/td&gt;
&lt;td&gt;Often included&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scaling cost&lt;/td&gt;
&lt;td&gt;Step-function (next tier)&lt;/td&gt;
&lt;td&gt;Linear (add more nodes)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  When shared RPC is more cost-effective
&lt;/h2&gt;

&lt;p&gt;Shared RPC is usually the better financial choice when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;You are in development or staging&lt;/strong&gt;: Low request volumes make shared plans very cheap or free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your traffic is low or sporadic&lt;/strong&gt;: Pay-as-you-go avoids paying for idle capacity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You don't need custom configuration&lt;/strong&gt;: Standard endpoints work fine for most dApps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You want to test the waters&lt;/strong&gt;: Start with a shared plan and upgrade when you hit limits.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example: A new DeFi dashboard serving 500 daily active users might generate 5M requests/month. A shared plan at $49/month covers this easily, while a dedicated node would be overkill.&lt;/p&gt;

&lt;h2&gt;
  
  
  When dedicated RPC is worth the cost
&lt;/h2&gt;

&lt;p&gt;Dedicated nodes become cost-justified when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Your traffic is high and predictable&lt;/strong&gt;: A dedicated node's flat fee may be lower than shared overage charges.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Latency is critical&lt;/strong&gt;: Trading bots, arbitrage, and real-time gaming need consistent sub-100ms responses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You need custom Solana features&lt;/strong&gt;: Geyser plugins, custom snapshot policies, or specific validator flags.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You run high-throughput applications&lt;/strong&gt;: NFT minting, DEX aggregators, or data indexing services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You require SLA-backed support&lt;/strong&gt;: Production outages cost more than the node itself.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example: A Solana NFT marketplace processing 50M requests/month might pay $1,750/month on a shared plan (25TB tier). A dedicated node with similar capacity could cost $1,500/month with better performance and clear rate limits.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to estimate your costs
&lt;/h2&gt;

&lt;p&gt;To compare shared vs dedicated costs for your use case, follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Measure your current usage&lt;/strong&gt;: Use a provider's dashboard or log your RPC calls for a week.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Project growth&lt;/strong&gt;: Estimate request volume for the next 3–6 months.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Get quotes&lt;/strong&gt;: Check shared pricing tiers and dedicated node pricing from providers like OnFinality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Include hidden costs&lt;/strong&gt;: Factor in engineering time for managing your own node vs. using a managed service.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test both&lt;/strong&gt;: Many providers offer trials or money-back guarantees. Run load tests on shared and dedicated endpoints.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Example: Using Solana RPC with curl
&lt;/h2&gt;

&lt;p&gt;Test a shared endpoint vs. a dedicated endpoint to see latency differences:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Shared endpoint (replace with your provider's URL)&lt;/span&gt;
curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://api.mainnet-beta.solana.com &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"jsonrpc":"2.0","id":1,"method":"getBlockHeight"}'&lt;/span&gt;

&lt;span class="c"&gt;# Dedicated endpoint (replace with your dedicated node URL)&lt;/span&gt;
curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://your-dedicated-node.example.com &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"jsonrpc":"2.0","id":1,"method":"getBlockHeight"}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Compare the response times. A difference of 20–50ms is normal; larger gaps indicate shared node congestion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common pitfalls when comparing costs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ignoring egress costs&lt;/strong&gt;: Some providers charge for data leaving their network. If you stream large account updates, this can add up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overlooking minimum commitments&lt;/strong&gt;: Dedicated nodes often require a 1-month or 3-month minimum.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assuming shared is always cheaper&lt;/strong&gt;: At very high volumes, dedicated can be more cost-effective per request.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forgetting about devnet/testnet&lt;/strong&gt;: If you need non-mainnet endpoints, check if they are included or cost extra.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not accounting for redundancy&lt;/strong&gt;: A single dedicated node is a single point of failure. High-availability setups cost more.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Shared Solana RPC is cost-efficient for low-to-medium traffic and development environments.&lt;/li&gt;
&lt;li&gt;Dedicated Solana RPC provides predictable performance and is cost-competitive at high volumes.&lt;/li&gt;
&lt;li&gt;The break-even point varies by provider, but typically falls between 50M–100M requests per month.&lt;/li&gt;
&lt;li&gt;Always measure your actual usage before committing to a plan.&lt;/li&gt;
&lt;li&gt;Consider total cost of ownership, including engineering time and redundancy.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Can I start with a shared plan and migrate to dedicated later?&lt;/strong&gt;&lt;br&gt;
Yes, most providers allow seamless upgrades. OnFinality, for example, lets you switch between shared and dedicated without downtime.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Do dedicated nodes include Solana devnet access?&lt;/strong&gt;&lt;br&gt;
Some providers bundle devnet access with dedicated plans; others charge separately. Check the &lt;a href="https://onfinality.io/networks/solana" rel="noopener noreferrer"&gt;Solana network page&lt;/a&gt; for details.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: How do I know if I'm hitting rate limits on a shared plan?&lt;/strong&gt;&lt;br&gt;
Monitor HTTP 429 responses. Many providers include rate limit headers in responses. Log these to identify patterns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Are there any hidden fees with dedicated nodes?&lt;/strong&gt;&lt;br&gt;
Common extras include data transfer overages, additional IP addresses, and managed backup services. Always read the fine print.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What about self-hosting a Solana node?&lt;/strong&gt;&lt;br&gt;
Self-hosting requires hardware, bandwidth, and ongoing maintenance. The monthly cost can be lower than a managed dedicated node, but the operational overhead is significant. For most teams, a managed service is more cost-effective.&lt;/p&gt;

&lt;p&gt;For more details on pricing and plans, visit the &lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing page&lt;/a&gt; and explore &lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;supported RPC networks&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;Solana RPC pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks/solana" rel="noopener noreferrer"&gt;Solana network page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/dedicated-node" rel="noopener noreferrer"&gt;Dedicated node overview&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Originally published at &lt;a href="https://onfinality.io/en/rpc-assistant/what-are-the-cost-differences-between-shared-and-dedicated-solana-rpc" rel="noopener noreferrer"&gt;OnFinality&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>solana</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Aleph Zero RPC Endpoints &amp; Provider Guide | OnFinality</title>
      <dc:creator>Zhuoxin Sun</dc:creator>
      <pubDate>Fri, 17 Jul 2026 04:14:54 +0000</pubDate>
      <link>https://dev.to/zhuoxin_sun_f2354597a82c2/aleph-zero-rpc-endpoints-provider-guide-onfinality-570m</link>
      <guid>https://dev.to/zhuoxin_sun_f2354597a82c2/aleph-zero-rpc-endpoints-provider-guide-onfinality-570m</guid>
      <description>&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Aleph Zero is a layer-1 blockchain that combines a Substrate-based core with an EVM-compatible layer, offering privacy, scalability, and instant finality. Developers building on Aleph Zero need reliable RPC endpoints to interact with the network—whether querying on-chain data, submitting transactions, or deploying smart contracts. This article provides the official RPC endpoints for Aleph Zero mainnet and testnet, configuration examples for common tools, and a structured checklist to help you choose an RPC provider that meets your performance and budget requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Aleph Zero RPC Decision Checklist
&lt;/h2&gt;

&lt;p&gt;Before selecting an RPC provider for Aleph Zero, evaluate the following criteria to ensure your infrastructure aligns with your project's needs.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;What to check&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Network coverage&lt;/td&gt;
&lt;td&gt;Does the provider support both mainnet and testnet?&lt;/td&gt;
&lt;td&gt;You need testnet for development and mainnet for production.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Endpoint type&lt;/td&gt;
&lt;td&gt;Are HTTPS and WSS endpoints available?&lt;/td&gt;
&lt;td&gt;WSS is required for real-time subscriptions (e.g., event listeners).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rate limits&lt;/td&gt;
&lt;td&gt;What is the requests-per-second (RPS) limit?&lt;/td&gt;
&lt;td&gt;High-throughput dApps need higher RPS to avoid throttling.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Latency&lt;/td&gt;
&lt;td&gt;Where are the provider's nodes located?&lt;/td&gt;
&lt;td&gt;Lower geographic distance reduces round-trip time.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pricing model&lt;/td&gt;
&lt;td&gt;Is it pay-as-you-go, subscription, or dedicated?&lt;/td&gt;
&lt;td&gt;Match the model to your expected call volume and budget.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reliability&lt;/td&gt;
&lt;td&gt;Does the provider publish uptime SLAs or status pages?&lt;/td&gt;
&lt;td&gt;Downtime can break your application.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Developer support&lt;/td&gt;
&lt;td&gt;Are there docs, SDKs, or community channels?&lt;/td&gt;
&lt;td&gt;Quick troubleshooting saves development time.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Additional features&lt;/td&gt;
&lt;td&gt;Does the provider offer archive data, trace APIs, or analytics?&lt;/td&gt;
&lt;td&gt;Archive nodes are needed for historical queries.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Aleph Zero Network Overview
&lt;/h2&gt;

&lt;p&gt;Aleph Zero is designed for high throughput and low fees, with a native privacy layer called Liminal. It has two execution environments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Substrate layer&lt;/strong&gt;: The core chain using Substrate framework, with its own RPC interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EVM layer&lt;/strong&gt;: A fully EVM-compatible sidechain that allows developers to deploy Solidity contracts and use Ethereum tooling.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most developers interact with the EVM layer for dApps, while the Substrate layer is used for staking, governance, and native asset transfers. RPC endpoints differ for each layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Aleph Zero RPC Endpoints
&lt;/h2&gt;

&lt;p&gt;Below are the official public RPC endpoints for Aleph Zero. Note that public endpoints often have rate limits and may not be suitable for production workloads.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mainnet
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;EVM Layer&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;HTTPS: &lt;code&gt;https://rpc.alephzero.raas.gelato.cloud&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;WSS: &lt;code&gt;wss://ws.alephzero.raas.gelato.cloud&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Substrate Layer&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;HTTPS: &lt;code&gt;https://rpc.alephzero.substrate.network&lt;/code&gt; (example, check official docs)&lt;/li&gt;
&lt;li&gt;WSS: &lt;code&gt;wss://rpc.alephzero.substrate.network&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Testnet (Sepolia-based)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;EVM Layer&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;HTTPS: &lt;code&gt;https://rpc.alephzero-testnet.gelato.digital&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;WSS: &lt;code&gt;wss://ws.alephzero-testnet.gelato.digital&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Substrate Layer&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;HTTPS: &lt;code&gt;https://rpc.alephzero-testnet.substrate.network&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;WSS: &lt;code&gt;wss://rpc.alephzero-testnet.substrate.network&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Chain IDs&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mainnet EVM: &lt;code&gt;41455&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Testnet EVM: &lt;code&gt;2039&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Connecting to Aleph Zero RPC
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Using curl (JSON-RPC)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://rpc.alephzero.raas.gelato.cloud &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Using ethers.js (JavaScript)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ethers&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ethers&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;ethers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;JsonRpcProvider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://rpc.alephzero.raas.gelato.cloud&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getBlockNumber&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;blockNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getBlockNumber&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Current block number:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;blockNumber&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;getBlockNumber&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Using web3.py (Python)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;web3&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Web3&lt;/span&gt;

&lt;span class="n"&gt;w3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Web3&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Web3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;HTTPProvider&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://rpc.alephzero.raas.gelato.cloud&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;w3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;eth&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;block_number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Adding to MetaMask
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open MetaMask and click the network dropdown.&lt;/li&gt;
&lt;li&gt;Click "Add Network" and fill in:

&lt;ul&gt;
&lt;li&gt;Network Name: Aleph Zero Mainnet&lt;/li&gt;
&lt;li&gt;RPC URL: &lt;code&gt;https://rpc.alephzero.raas.gelato.cloud&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Chain ID: &lt;code&gt;41455&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Currency Symbol: AZERO&lt;/li&gt;
&lt;li&gt;Block Explorer URL: &lt;code&gt;https://evm-explorer.alephzero.org&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click "Save".&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Choosing an RPC Provider for Aleph Zero
&lt;/h2&gt;

&lt;p&gt;Public endpoints are convenient for development but often insufficient for production due to rate limits and potential downtime. When evaluating RPC providers, consider the following factors:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Network Support
&lt;/h3&gt;

&lt;p&gt;Ensure the provider supports both mainnet and testnet for Aleph Zero. Some providers may only offer one or the other.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Performance and Reliability
&lt;/h3&gt;

&lt;p&gt;Look for providers with geographically distributed nodes to reduce latency. Check if they have a status page or SLA. For example, OnFinality offers Aleph Zero endpoints with transparent performance metrics.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Pricing
&lt;/h3&gt;

&lt;p&gt;Compare pricing models:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Free tier&lt;/strong&gt;: Good for prototyping but limited.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pay-as-you-go&lt;/strong&gt;: Flexible for variable usage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dedicated nodes&lt;/strong&gt;: Best for high-throughput or latency-sensitive applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OnFinality provides competitive pricing for Aleph Zero RPC access. See our &lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC pricing&lt;/a&gt; page for details.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Additional Features
&lt;/h3&gt;

&lt;p&gt;Some providers offer archive nodes, trace APIs, or WebSocket subscriptions. If your dApp requires historical data or real-time events, prioritize providers that support these features.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Pitfalls and Troubleshooting
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Rate Limiting
&lt;/h3&gt;

&lt;p&gt;Public endpoints often throttle requests. If you encounter "429 Too Many Requests", consider upgrading to a paid plan or using a dedicated node.&lt;/p&gt;

&lt;h3&gt;
  
  
  WebSocket Disconnections
&lt;/h3&gt;

&lt;p&gt;For WSS connections, ensure your client handles reconnection gracefully. Use libraries that support automatic reconnection.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wrong Chain ID
&lt;/h3&gt;

&lt;p&gt;Double-check the chain ID when adding the network to wallets. Using the wrong chain ID can cause transaction failures.&lt;/p&gt;

&lt;h3&gt;
  
  
  Testnet Faucet
&lt;/h3&gt;

&lt;p&gt;To get testnet AZERO, use the faucet at &lt;a href="https://drpc.org/faucet/alephzero" rel="noopener noreferrer"&gt;drpc.org/faucet/alephzero&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Aleph Zero has two layers: Substrate and EVM, each with separate RPC endpoints.&lt;/li&gt;
&lt;li&gt;Public endpoints are suitable for development but not for production.&lt;/li&gt;
&lt;li&gt;When choosing an RPC provider, evaluate network coverage, latency, pricing, and additional features.&lt;/li&gt;
&lt;li&gt;OnFinality supports Aleph Zero RPC with reliable infrastructure and transparent pricing. Check our &lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;supported networks&lt;/a&gt; for availability.&lt;/li&gt;
&lt;li&gt;Always test with testnet endpoints before deploying to mainnet.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is the Aleph Zero RPC URL for mainnet?
&lt;/h3&gt;

&lt;p&gt;The mainnet EVM RPC URL is &lt;code&gt;https://rpc.alephzero.raas.gelato.cloud&lt;/code&gt;. For the Substrate layer, refer to the official documentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I get testnet AZERO?
&lt;/h3&gt;

&lt;p&gt;Use the PoW faucet at &lt;a href="https://drpc.org/faucet/alephzero" rel="noopener noreferrer"&gt;drpc.org/faucet/alephzero&lt;/a&gt; or request tokens via the Aleph Zero Discord.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I use Aleph Zero RPC with MetaMask?
&lt;/h3&gt;

&lt;p&gt;Yes. Add the network with RPC URL &lt;code&gt;https://rpc.alephzero.raas.gelato.cloud&lt;/code&gt; and Chain ID &lt;code&gt;41455&lt;/code&gt; (mainnet) or &lt;code&gt;2039&lt;/code&gt; (testnet).&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the difference between Substrate and EVM RPC?
&lt;/h3&gt;

&lt;p&gt;The Substrate RPC exposes chain-specific methods (e.g., staking, governance), while the EVM RPC is compatible with Ethereum JSON-RPC for smart contract interactions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does OnFinality support Aleph Zero?
&lt;/h3&gt;

&lt;p&gt;Yes, OnFinality provides Aleph Zero RPC endpoints. Visit our &lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;networks page&lt;/a&gt; for details.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is the Aleph Zero RPC URL for mainnet?
&lt;/h3&gt;

&lt;p&gt;The mainnet EVM RPC URL is &lt;a href="https://rpc.alephzero.raas.gelato.cloud" rel="noopener noreferrer"&gt;https://rpc.alephzero.raas.gelato.cloud&lt;/a&gt;. For the Substrate layer, refer to the official documentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I get testnet AZERO?
&lt;/h3&gt;

&lt;p&gt;Use the PoW faucet at drpc.org/faucet/alephzero or request tokens via the Aleph Zero Discord.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I use Aleph Zero RPC with MetaMask?
&lt;/h3&gt;

&lt;p&gt;Yes. Add the network with RPC URL &lt;a href="https://rpc.alephzero.raas.gelato.cloud" rel="noopener noreferrer"&gt;https://rpc.alephzero.raas.gelato.cloud&lt;/a&gt; and Chain ID 41455 (mainnet) or 2039 (testnet).&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the difference between Substrate and EVM RPC?
&lt;/h3&gt;

&lt;p&gt;The Substrate RPC exposes chain-specific methods (e.g., staking, governance), while the EVM RPC is compatible with Ethereum JSON-RPC for smart contract interactions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does OnFinality support Aleph Zero?
&lt;/h3&gt;

&lt;p&gt;Yes, OnFinality provides Aleph Zero RPC endpoints. Visit our networks page for details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;Supported Networks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Originally published at &lt;a href="https://onfinality.io/en/rpc-assistant/aleph-zero-rpc-guide" rel="noopener noreferrer"&gt;OnFinality&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Starknet RPC Guide: Endpoints, Providers, and Best Practices</title>
      <dc:creator>Zhuoxin Sun</dc:creator>
      <pubDate>Fri, 17 Jul 2026 04:14:18 +0000</pubDate>
      <link>https://dev.to/zhuoxin_sun_f2354597a82c2/starknet-rpc-guide-endpoints-providers-and-best-practices-13l0</link>
      <guid>https://dev.to/zhuoxin_sun_f2354597a82c2/starknet-rpc-guide-endpoints-providers-and-best-practices-13l0</guid>
      <description>&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Starknet is a Layer 2 ZK-rollup on Ethereum that uses STARK validity proofs for scalable computation. To interact with Starknet, developers use JSON-RPC endpoints to query state, send transactions, and deploy contracts. This guide explains what Starknet RPC is, lists available endpoints, and provides a decision framework for selecting the right provider for your project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starknet RPC Decision Checklist
&lt;/h2&gt;

&lt;p&gt;Before integrating a Starknet RPC provider, consider these criteria:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;What to check&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Network support&lt;/td&gt;
&lt;td&gt;Mainnet, Sepolia testnet&lt;/td&gt;
&lt;td&gt;Ensure the provider supports the networks you need for development and production.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rate limits&lt;/td&gt;
&lt;td&gt;Requests per second (RPS) and daily cap&lt;/td&gt;
&lt;td&gt;High-traffic dApps require higher limits to avoid throttling.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reliability&lt;/td&gt;
&lt;td&gt;Uptime history, redundancy&lt;/td&gt;
&lt;td&gt;Downtime can disrupt your application; choose providers with proven reliability.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Latency&lt;/td&gt;
&lt;td&gt;Geographic distribution of nodes&lt;/td&gt;
&lt;td&gt;Lower latency improves user experience, especially for time-sensitive operations.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Archive data&lt;/td&gt;
&lt;td&gt;Access to historical state&lt;/td&gt;
&lt;td&gt;Needed for analytics, explorers, and certain dApp features.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pricing model&lt;/td&gt;
&lt;td&gt;Free tier, pay-as-you-go, or dedicated node&lt;/td&gt;
&lt;td&gt;Match the pricing to your usage pattern and budget.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API compatibility&lt;/td&gt;
&lt;td&gt;JSON-RPC methods supported&lt;/td&gt;
&lt;td&gt;Verify that the provider supports the methods your application requires.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security&lt;/td&gt;
&lt;td&gt;HTTPS, WebSocket support, privacy features&lt;/td&gt;
&lt;td&gt;Protect data in transit and consider privacy-focused relays if needed.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What is Starknet RPC?
&lt;/h2&gt;

&lt;p&gt;Starknet RPC (Remote Procedure Call) is the standard interface for communicating with the Starknet network. It allows wallets, dApps, and backend services to submit transactions, query account balances, read contract state, and interact with smart contracts. The RPC protocol follows the JSON-RPC 2.0 specification, with Starknet-specific methods defined in the Starknet API specification.&lt;/p&gt;

&lt;p&gt;Starknet uses a unique account abstraction model where every account is a smart contract. This means RPC interactions often involve deploying and invoking contracts through the &lt;code&gt;starknet_call&lt;/code&gt; and &lt;code&gt;starknet_sendTransaction&lt;/code&gt; methods.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starknet RPC Endpoints
&lt;/h2&gt;

&lt;p&gt;Starknet provides both public and private RPC endpoints. Public endpoints are free but often have rate limits and may not be suitable for production. Private endpoints offer higher limits, dedicated resources, and better reliability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Public Endpoints
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;https://public.1rpc.io/starknet&lt;/code&gt; (1RPC)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;https://starknet-rpc.publicnode.com&lt;/code&gt; (Allnodes)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;https://starknet.drpc.org&lt;/code&gt; (dRPC)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;https://rpc.starknet.lava.build&lt;/code&gt; (Lava)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;https://starknet.api.onfinality.io/public&lt;/code&gt; (OnFinality)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Private Endpoints (require API key)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;https://starknet-mainnet.g.alchemy.com/v2/&amp;lt;api-key&amp;gt;&lt;/code&gt; (Alchemy)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;https://starknet-mainnet.infura.io/v3/&amp;lt;api-key&amp;gt;&lt;/code&gt; (Infura)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;https://starknet.api.onfinality.io/v1/&amp;lt;api-key&amp;gt;&lt;/code&gt; (OnFinality)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Testnet (Sepolia)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;https://starknet-sepolia-rpc.publicnode.com&lt;/code&gt; (Allnodes)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;https://rpc.starknet-testnet.lava.build&lt;/code&gt; (Lava)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;https://starknet-sepolia.api.onfinality.io/public&lt;/code&gt; (OnFinality)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to Use Starknet RPC
&lt;/h2&gt;

&lt;p&gt;To connect to Starknet, you need an RPC URL and a JSON-RPC client. Below is an example using &lt;code&gt;curl&lt;/code&gt; to query the latest block number.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://starknet.api.onfinality.io/public &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--data&lt;/span&gt; &lt;span class="s1"&gt;'{
    "jsonrpc": "2.0",
    "method": "starknet_blockNumber",
    "params": [],
    "id": 1
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For JavaScript (using ethers or starknet.js):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Provider&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;starknet&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Provider&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;rpc&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;nodeUrl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://starknet.api.onfinality.io/public&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;blockNumber&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getBlockNumber&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;blockNumber&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Choosing a Starknet RPC Provider
&lt;/h2&gt;

&lt;p&gt;When selecting a provider, consider the following factors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Network Support&lt;/strong&gt;: Ensure the provider supports Starknet mainnet and testnet (Sepolia).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rate Limits&lt;/strong&gt;: Free tiers typically allow 10-100 requests per second. For high-traffic dApps, look for paid plans or dedicated nodes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliability&lt;/strong&gt;: Check uptime history and whether the provider offers redundancy across multiple data centers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Latency&lt;/strong&gt;: Providers with global node distribution can offer lower latency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Archive Data&lt;/strong&gt;: Some providers offer access to historical state, which is essential for analytics and explorers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pricing&lt;/strong&gt;: Compare free tiers, pay-as-you-go, and dedicated node pricing. OnFinality offers transparent pricing for Starknet RPC.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a detailed comparison of RPC providers, see our &lt;a href="https://onfinality.io/rpc-assistant/how-to-choose-an-rpc-provider" rel="noopener noreferrer"&gt;guide on choosing an RPC provider&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Pitfalls and Troubleshooting
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Rate Limiting
&lt;/h3&gt;

&lt;p&gt;Public endpoints often have strict rate limits. If you receive HTTP 429 errors, consider upgrading to a private endpoint or using a dedicated node.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Incorrect Network ID
&lt;/h3&gt;

&lt;p&gt;Starknet mainnet chain ID is &lt;code&gt;0x534e5f4d41494e&lt;/code&gt; (SN_MAIN). Sepolia testnet chain ID is &lt;code&gt;0x534e5f5345504f4c4941&lt;/code&gt; (SN_SEPOLIA). Double-check your configuration.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Unsupported Methods
&lt;/h3&gt;

&lt;p&gt;Not all providers support every JSON-RPC method. For example, &lt;code&gt;starknet_getStateUpdate&lt;/code&gt; may be unavailable on some public endpoints. Check the provider's documentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. WebSocket Connections
&lt;/h3&gt;

&lt;p&gt;For real-time updates, use WebSocket endpoints. Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;wss://starknet.api.onfinality.io/public/ws
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. Transaction Failures
&lt;/h3&gt;

&lt;p&gt;Starknet transactions can fail due to insufficient fees, invalid nonce, or contract errors. Use &lt;code&gt;starknet_getTransactionReceipt&lt;/code&gt; to debug.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starknet RPC vs. Other Networks
&lt;/h2&gt;

&lt;p&gt;Starknet's RPC differs from Ethereum's in several ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Account abstraction&lt;/strong&gt;: Every account is a contract; transactions are invoked via &lt;code&gt;starknet_addInvokeTransaction&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fee model&lt;/strong&gt;: Starknet uses a separate fee token (STRK) and a unique fee calculation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Block time&lt;/strong&gt;: Blocks are produced every 20-60 seconds, faster than Ethereum.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Starknet RPC is essential for interacting with the Starknet network.&lt;/li&gt;
&lt;li&gt;Choose a provider based on network support, rate limits, reliability, and pricing.&lt;/li&gt;
&lt;li&gt;Public endpoints are suitable for development; private endpoints are recommended for production.&lt;/li&gt;
&lt;li&gt;Always test with a testnet before deploying to mainnet.&lt;/li&gt;
&lt;li&gt;OnFinality provides scalable Starknet RPC endpoints with transparent pricing. Check our &lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;supported networks&lt;/a&gt; and &lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;pricing&lt;/a&gt; for more details.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is the Starknet RPC URL?
&lt;/h3&gt;

&lt;p&gt;Public Starknet mainnet RPC URLs include &lt;code&gt;https://starknet.api.onfinality.io/public&lt;/code&gt;, &lt;code&gt;https://public.1rpc.io/starknet&lt;/code&gt;, and &lt;code&gt;https://starknet.drpc.org&lt;/code&gt;. Private endpoints require an API key.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I get a Starknet RPC endpoint?
&lt;/h3&gt;

&lt;p&gt;You can use a public endpoint for free or sign up with a provider like OnFinality to get a private endpoint with higher rate limits and dedicated support.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is Starknet RPC compatible with MetaMask?
&lt;/h3&gt;

&lt;p&gt;No, MetaMask only supports EVM-compatible chains. Starknet uses a different virtual machine (Cairo VM), so you need a Starknet-compatible wallet like Argent X or Braavos.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the difference between Starknet mainnet and Sepolia testnet?
&lt;/h3&gt;

&lt;p&gt;Mainnet is the production network with real assets. Sepolia is a testnet for development and testing. Both have separate RPC endpoints.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I choose between public and private RPC?
&lt;/h3&gt;

&lt;p&gt;Use public endpoints for prototyping and low-traffic applications. For production dApps with high traffic, choose a private endpoint or dedicated node to ensure reliability and performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is the Starknet RPC URL?
&lt;/h3&gt;

&lt;p&gt;Public Starknet mainnet RPC URLs include &lt;a href="https://starknet.api.onfinality.io/public" rel="noopener noreferrer"&gt;https://starknet.api.onfinality.io/public&lt;/a&gt;, &lt;a href="https://public.1rpc.io/starknet" rel="noopener noreferrer"&gt;https://public.1rpc.io/starknet&lt;/a&gt;, and &lt;a href="https://starknet.drpc.org" rel="noopener noreferrer"&gt;https://starknet.drpc.org&lt;/a&gt;. Private endpoints require an API key.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I get a Starknet RPC endpoint?
&lt;/h3&gt;

&lt;p&gt;You can use a public endpoint for free or sign up with a provider like OnFinality to get a private endpoint with higher rate limits and dedicated support.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is Starknet RPC compatible with MetaMask?
&lt;/h3&gt;

&lt;p&gt;No, MetaMask only supports EVM-compatible chains. Starknet uses a different virtual machine (Cairo VM), so you need a Starknet-compatible wallet like Argent X or Braavos.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the difference between Starknet mainnet and Sepolia testnet?
&lt;/h3&gt;

&lt;p&gt;Mainnet is the production network with real assets. Sepolia is a testnet for development and testing. Both have separate RPC endpoints.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I choose between public and private RPC?
&lt;/h3&gt;

&lt;p&gt;Use public endpoints for prototyping and low-traffic applications. For production dApps with high traffic, choose a private endpoint or dedicated node to ensure reliability and performance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/pricing/rpc" rel="noopener noreferrer"&gt;RPC Pricing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://onfinality.io/networks" rel="noopener noreferrer"&gt;Supported Networks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Originally published at &lt;a href="https://onfinality.io/en/rpc-assistant/starknet-rpc-guide" rel="noopener noreferrer"&gt;OnFinality&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
