Logo
New RPC users get 35% off their first monthView the offer
RPC Assistant

Base RPC API: Endpoint Settings, Marketplace Alternatives, and Production Setup

Summary

Base RPC is the JSON-RPC interface to the Base L2 network, used to read state, send transactions, and subscribe to events. This page covers the public endpoint, chain settings, and how to evaluate marketplace-style RPC listings for production workloads. You will also find a practical checklist for choosing between shared public endpoints and dedicated node infrastructure, plus debugging steps for common Base RPC failures.

If you are looking for a Base RPC endpoint, the fastest path is to connect to a public URL, confirm the chain ID, and send a test request. This page gives you the exact settings, a working example, and a practical way to decide whether a shared public endpoint is enough or whether you need dedicated node infrastructure for your workload.

Quick start: connect to Base in under a minute

Base is an Ethereum L2 built on the OP Stack. It uses the standard Ethereum JSON-RPC interface, so any Ethereum-compatible tooling works once you point it at a Base endpoint.

SettingValue
Network nameBase
Chain ID8453
Native currencyETH (18 decimals)
Block explorerhttps://basescan.org
Public RPC (OnFinality)https://base.api.onfinality.io/public
TransportHTTP

Add Base to a wallet or client with these values:

{
  "chainId": "0x2105",
  "chainName": "Base",
  "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 },
  "rpcUrls": ["https://base.api.onfinality.io/public"],
  "blockExplorerUrls": ["https://basescan.org"]
}

Note that 0x2105 is the hex form of decimal 8453. Wallets expect the hex value; most JavaScript libraries accept the decimal chain ID.

When a public endpoint is enough — and when it is not

A public Base RPC endpoint is fine for development, scripts, dashboards, and low-volume reads. It is not designed for high request rates, large log queries, or workloads that need consistent throughput under load.

Use this table to decide what fits your situation.

Your workloadPublic endpointDedicated node
Local development and testingGood fitOverkill
Low-traffic dApp readsUsually fineOptional
High-frequency eth_getLogs or indexingLikely to hit limitsRecommended
Trading bots or latency-sensitive callsNot suitableRecommended
Archive or historical state queriesNot guaranteedRecommended
Production apps with SLAsNot suitableRecommended

If you are unsure, start on the public endpoint, measure your request volume and error rate, and move to a dedicated node when you see throttling, timeouts, or inconsistent responses. OnFinality offers both shared RPC API and dedicated nodes for Base and other networks.

Base RPC methods you will actually use

Base supports the standard Ethereum JSON-RPC method set. The methods below cover most application needs.

MethodWhat it doesTypical use
eth_chainIdReturns the chain IDVerify you are on Base
eth_blockNumberLatest block numberHealth checks, sync status
eth_getBalanceAccount balanceWallets, dashboards
eth_callRead-only contract callToken metadata, contract state
eth_getLogsQuery event logsIndexers, analytics
eth_sendRawTransactionBroadcast a signed transactionSending transactions
eth_getTransactionReceiptTransaction statusConfirmation tracking
eth_estimateGasGas estimationTransaction building

If you need trace or debug methods (debug_traceTransaction, trace_block), check provider support first. These are not always available on shared endpoints and may require a dedicated node with the right client configuration.

Sending your first request

A simple curl call confirms connectivity and chain identity:

curl -X POST https://base.api.onfinality.io/public \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "eth_chainId",
    "params": [],
    "id": 1
  }'

A correct response returns "result":"0x2105". If you get a different chain ID, you are pointed at the wrong network. If you get an error, check the URL and your request body.

In JavaScript with viem:

import { createPublicClient, http } from 'viem';
import { base } from 'viem/chains';

const client = createPublicClient({
  chain: base,
  transport: http('https://base.api.onfinality.io/public')
});

const blockNumber = await client.getBlockNumber();
console.log('Latest Base block:', blockNumber);

For WebSocket subscriptions (new heads, logs), confirm that your provider exposes a wss:// endpoint. The OnFinality public Base endpoint is HTTP; WebSocket access is available on dedicated and managed plans. See RPC pricing for details.

How to evaluate a Base RPC marketplace listing

Marketplace-style RPC listings aggregate many providers under one interface. That can be convenient, but it hides important details. Before you commit, check the following.

What to verifyWhy it matters
Chain ID and networkPrevents sending transactions to the wrong chain
Transport support (HTTP, WebSocket)Determines whether subscriptions work
Archive data availabilityNeeded for historical state queries
Trace/debug method supportRequired for some debugging and analytics tools
Rate limits and burst behaviorAffects reliability under load
Failover and redundancyReduces downtime risk
Pricing modelShared vs dedicated changes cost structure
Support and SLA termsMatters for production incidents

A marketplace listing is a starting point, not a guarantee. If your application depends on Base RPC availability, test the endpoint under realistic load before you rely on it.

Base Sepolia for testing

Use Base Sepolia to test contracts and transactions before mainnet. The settings are similar but the chain ID and endpoint differ.

SettingValue
Network nameBase Sepolia
Chain ID84532
Native currencySepolia Ether (ETH, 18 decimals)
Block explorerhttps://sepolia.basescan.org
Public RPC (OnFinality)https://base-sepolia.api.onfinality.io/public

You can get testnet ETH from a Base Sepolia faucet to pay for test transactions. See the Base Sepolia network page for details.

Common Base RPC errors and how to fix them

Most Base RPC issues fall into a few categories. This table maps symptoms to likely causes.

SymptomLikely causeFix
429 Too Many RequestsRate limit hitReduce request rate, batch calls, or move to a dedicated plan
-32000 or timeout errorsEndpoint overloaded or request too heavyRetry with backoff, narrow eth_getLogs block range
Wrong chain ID in responseEndpoint points to a different networkVerify the URL and chain ID
eth_getLogs returns emptyBlock range too wide or filter mismatchReduce range, check topic filters
Transaction not foundNode not synced or wrong networkCheck eth_blockNumber and chain ID
WebSocket disconnectsConnection limits or idle timeoutAdd reconnect logic, use heartbeat

For eth_getLogs, a common mistake is querying a very large block range in one call. Break the range into smaller chunks and paginate. This reduces load on the node and avoids timeouts.

Production readiness checklist

Before you move a Base application to production, confirm the following.

  • Chain ID and endpoint verified with eth_chainId
  • Failover endpoint configured in your client
  • Retry logic with exponential backoff implemented
  • Request batching or caching for high-volume reads
  • eth_getLogs queries paginated by block range
  • WebSocket reconnect logic if using subscriptions
  • Monitoring for error rates and latency
  • Archive or trace requirements confirmed with your provider

If any of these are missing, address them before launch. Most production incidents on Base RPC come from rate limits, missing failover, or unpaginated log queries.

Shared RPC vs dedicated nodes for Base

Shared RPC is the right default for most teams. It is fast to set up, requires no infrastructure management, and scales with your request volume up to the plan limits.

Dedicated nodes make sense when you need:

  • Consistent throughput under heavy load
  • Archive data or trace methods
  • WebSocket subscriptions at scale
  • Isolation from other tenants
  • Custom client configuration

OnFinality provides both options for Base. You can start on the shared RPC API and move to a dedicated node when your workload demands it. Review RPC pricing to compare plans, and see the full list of supported RPC networks if you operate across multiple chains.

Key Takeaways

  • Base uses chain ID 8453 and the standard Ethereum JSON-RPC interface.
  • The OnFinality public Base endpoint is https://base.api.onfinality.io/public (HTTP).
  • Base Sepolia uses chain ID 84532 for testing.
  • Public endpoints suit development and low-volume reads; dedicated nodes suit high-throughput, archive, trace, and WebSocket workloads.
  • Always verify chain ID, configure failover, and paginate eth_getLogs before going to production.
  • Marketplace listings are a starting point — verify transport, archive, trace, limits, and support terms yourself.

Frequently Asked Questions

What is the Base RPC endpoint? The OnFinality public Base RPC endpoint is https://base.api.onfinality.io/public. It supports HTTP JSON-RPC. For WebSocket or archive access, use a dedicated or managed plan.

What is Base's chain ID? Base mainnet uses chain ID 8453 (hex 0x2105). Base Sepolia uses 84532.

Is the Base public RPC free to use? Public endpoints are suitable for development and low-volume use. For production workloads with higher request rates, review RPC pricing and consider a dedicated plan.

Does Base RPC support WebSocket? WebSocket support depends on the provider and plan. The OnFinality public Base endpoint is HTTP; WebSocket access is available on dedicated and managed plans.

Can I use Base RPC for eth_getLogs at scale? Yes, but paginate your block ranges and confirm your provider's limits. Large unpaginated queries are a common cause of timeouts.

How do I test on Base without spending real ETH? Use Base Sepolia (chain ID 84532) and get testnet ETH from a faucet. See the Base Sepolia network page.

RPC Knowledge Base

Related RPC details

Never Worry about Infrastructure Again

OnFinality takes away the heavy lifting of DevOps so you can build smarter and faster.

Get Started