Glossary · Blockchain development
Published 23 May 2025 · Updated 21 Oct 2026 · 14 min read
RPC (remote procedure call) is a model for calling a function on another computer across a network. In blockchain applications, wallets, dApps, and backends use it to communicate with blockchain full nodes, which verify transactions and blocks. These programs read chain data or submit signed transactions. Smart contracts do not make these calls.
Birrell and Nelson described this model in February 1984. The idea had already been discussed since at least 1976. A local call enters a stub, which passes work across a network to server code. The result travels back through the same layers. Network failures create uncertainty that local syntax cannot hide. Their paper explains that a failed call may have run once or not at all. Concrete protocols implement the model, including ONC RPC, JSON-RPC 2.0, and gRPC.
Application code makes an RPC call through a stub. The stub packages arguments for a server instead of running the procedure locally. The server-stub calls the real procedure.
A JSON-RPC 2.0 request contains jsonrpc, method, an id, and optional params. The jsonrpc value is "2.0". gRPC instead uses protocol buffers. JSON-RPC itself does not require a particular transport.
An Ethereum node receives calls over HTTP, WebSocket, or IPC. gRPC runs over HTTP/2. A batch array groups several JSON-RPC requests, but transport does not remove failure risks.
A JSON-RPC response matches the id and contains result or error, never both. Error code -32601 means "Method not found". A notification has no id and receives no reply.
Ethereum execution clients expose a standard JSON-RPC API, documented in the execution-apis repository using OpenRPC. The eth_ methods handle chain reads, contract calls, and transaction submission. Common RPC calls include eth_getBalance, eth_call, eth_getLogs, and eth_sendRawTransaction. The specification also covers net_, debug_, and txpool_. The trace_ namespace belongs to clients such as Reth and Erigon, not this standard. The June 2026 specification adds eth_capabilities to describe the history a node can serve.
Run totalSupply() on the USDC contract without sending a transaction.
{ "jsonrpc": "2.0", "id": 1, "method": "eth_call", "params": [ { "to": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "data": "0x18160ddd" }, "0x1906d9f" ]}{ "jsonrpc": "2.0", "id": 1, "result": "0x00000000000000000000000000000000000000000000000000ab06ec868a33a0"}The eth_call method evaluates contract code without sending a transaction. The eth_estimateGas method estimates gas, and the measured 1 wei transfer needs 21,000 gas.
The page team sent these requests to public endpoints from one browser in Europe on 21 October 2026. Responses are shortened.
A block tag selects the state to read. The latest block may be reorganized out. A finalized block cannot be reorganized except by manual intervention coordinated by the community. Other tags include safe, pending, and earliest. A block hash identifies a block through EIP-1898. A Geth full node retains the latest 128 block states, according to documentation checked on 21 October 2026. An archive node preserves historical state that a pruned node no longer serves. Keeping old blocks alone does not establish historical state availability.
The eth_subscribe method uses WebSocket or IPC, not plain HTTP. Logs removed after a reorganization carry removed: true. The Engine API connects execution and consensus clients on port 8551 with JWT authentication and is not a user API. The Beacon API uses REST over HTTP and needs additional protection before public exposure. At the wallet layer, EIP-1193 defines request() and events such as chainChanged. Under EIP-3085, a wallet signs only with the chain ID submitted when adding the network, never one from eth_chainId.
An RPC node exposes a chain-specific interface with its own methods, transports, and authorization rules. A familiar RPC URL does not imply that Ethereum tooling works elsewhere. The table separates the interface from connection details and read semantics. Canton uses a participant-specific view rather than a public interface for the entire ledger.
| Chain | API | Port and access | Worth knowing |
|---|---|---|---|
| Ethereum | APIThe execution API uses JSON-RPC 2.0 requests and responses encoded as JSON | Port and accessMost clients serve HTTP on localhost port 8545, with Geth WebSocket on 8546 | Worth knowingA block tag selects latest, safe, finalized, pending, or earliest state |
| Bitcoin | APIBitcoin Core supports JSON-RPC 2.0 since version 28.0, released in October 2024 | Port and accessbitcoind enables RPC by default on port 8332 with cookie authentication | Worth knowingThe authenticated interface has no encryption and should not face the public Internet |
| Solana | APIThe Solana interface uses JSON-RPC over HTTP and supports subscriptions over WebSocket | Port and accessPublic endpoints are available, with request limits enforced per client IP address | Worth knowingMany reads accept processed, confirmed, or finalized commitment, typically defaulting to finalized |
| Canton | APIThe Canton Ledger API offers gRPC and JSON interfaces, not a ledger-wide public JSON-RPC interface | Port and accessJWT authentication connects a client to its own Canton participant node | Worth knowingEach participant node holds only the contracts that its parties can see |
A node provider runs distributed node clients so application teams do not maintain RPC infrastructure themselves. Ethereum documentation describes this as centralizing the product's infrastructure. Billing units also differ. In the plan snapshot checked on 21 October 2026, Infura uses credits, Alchemy uses compute units, and Chainstack uses request units. These labels are not interchangeable measures of work. Infura counts eth_call as 80 credits and eth_getLogs as 255 credits in that snapshot.
eth_getBalance for one address at block 1,048,576, from 23 February 2016.
MEV Blocker and dRPC return the February 2016 balance. PublicNode asks for a token, two services report pruned state, and Cloudflare returns an internal error.
The page team tested free endpoints without API keys from one browser in Europe on 21 October 2026. Results change often.
A rate limit is only one restriction. In plans checked on 21 October 2026, Alchemy allows 10 blocks per free eth_getLogs query, while QuickNode's trial allows five. Archive node access, trace methods, and WebSocket access can also be excluded. Public RPC endpoints are shared infrastructure behind load balancers. A shared URL can return different software or capabilities between calls. This snapshot describes observed behavior, not a lasting service promise.
A request exposes more than a method name. The eth_getBalance method names an address, while eth_call carries a contract and calldata that can identify a token holder. The eth_getLogs method exposes contracts and topics. The eth_sendRawTransaction method delivers the full signed transaction before others see it. The RPC operator also receives the caller's IP address. It can log requests, enforce limits, block service, or return false data. EIP-3085 tells wallets to warn users about this exposure.
A public provider receives request data and the caller's IP address. Visibility is not the same as retention, which depends on policy.
This comparison uses provider privacy policies and documentation checked on 21 October 2026, rather than independent traffic measurements.
MetaMask uses the Infura provider by default, according to documentation checked on 21 October 2026. Its network settings allow a different RPC URL. In December 2022, Consensys said it did not store wallet addresses for read requests. For writes, it collected wallet and IP information without storing them together. Consensys said it was working on narrowing retention to seven days. Its statement also warned that self-hosting a node could make accounts easier to associate with an IP address.
Bots watch the public mempool for front-running and sandwich opportunities. MEV protection addresses maximal extractable value risks by changing transaction routing. Documentation checked on 21 October 2026 describes private routes in Flashbots Protect and MEV Blocker. Flashbots says Protect does not track IP addresses. A Chainlist notice for MEV Blocker says it stores no IP data. Neither claim is independently verified. Private routing also does not prove displayed balances. In April 2024, SlowMist described a spoofed RPC scam that showed a deposit that never happened.
A valid response can still describe the wrong chain or an old head. Access failures can also originate outside the blockchain itself. These incidents separate protocol availability from the infrastructure that applications reach through an RPC endpoint. They include software faults, mistaken restrictions, and regional service failures.
Infura nodes running old Geth versions hit a consensus bug and followed a minority chain. Its post-mortem covers about seven hours and 15 minutes of disruption.
Infura mistakenly blocked Venezuelan users while applying sanctions rules for Donetsk and Luhansk. MetaMask noted that users could change their default endpoint.
An Infura service fault stopped MetaMask from working for most users. Service returned the same day, but the cause was not disclosed.
An AWS us-east-1 outage lasted about 14.5 hours. Reports described zero MetaMask balances when Infura could not retrieve data, while the blockchain kept producing blocks.
Alchemy reported a stalled block number in its US East region for about 18 minutes. A stalled head can return valid but old data with no error, so freshness needs its own check.
RPC availability checks and correctness checks solve different problems. Failover can restore a connection without proving an answer, while cryptographic checks need trusted reference data. The approaches below range from independent validation to agreement between node providers. Each changes the trust boundary. Only your own node keeps read queries away from third parties.
Your node verifies transactions and blocks against consensus rules. That independence requires disk, bandwidth, and upkeep, with recent state and historical state imposing different storage needs.
A blockchain light client checks signed headers. Helios verifies data from an upstream RPC node. Ethereum documentation checked on 21 October 2026 does not consider these clients production-ready.
The eth_getProof method returns Merkle proofs for an account and its storage. An application checks the value against a trusted block header's state root, rather than accepting a response from a node.
viem's fallback transport tries another provider after failure, while ethers v6 can require quorum. The wallet development cost guide explains why teams often add a second provider after an incident.
Reliable access starts with the application's data needs, not just a connection URL. We plan reads, transaction submission, and historical queries as separate backend requirements. That makes it possible to define what happens when a request is slow, rejected, or stale. RPC setup belongs in the same plan as indexers, APIs, event listeners, databases, monitoring, and DevOps.
We set up RPC and indexing through our Web3 development service. We built and run the CC View API for Canton data over REST and WebSocket. Our Canton wallet development connects wallet backends to participant nodes through the Ledger API, with synchronizers keeping those nodes in sync across environments.
Plan RPC access around your application's needs
We can discuss your chain, data requirements, and failure cases, then outline the backend work those choices involve.
Discuss RPC requirementsGet updates about blockchain, technologies and our company
We will process the personal data you provide in accordance with our Privacy policy. You can unsubscribe or change your preferences at any time by clicking the link in any email.Services
Blockchain
Blockchain consultingStrategy, architecture, feasibility
Crypto wallet developmentSelf-custody, MPC, cards on top
Cryptocurrency exchange developmentTrading venues, liquidity and protocols
Tokenization servicesRWA, funds, collateral
Crypto payments developmentAccept, settle and pay out in crypto
Smart contracts developmentDesign, build, audit
Blockchain integration dApp development DeFi development NFTs Tokens Web3 development All blockchain services All servicesNetworks
Canton developmentDaml apps, wallets, settlement, validators
Official Partner
Ethereum developmentSmart contracts, L2s and dApps
Solana developmentHigh-throughput programs and dApps
TON developmentMini apps, wallets, Telegram ecosystem
Official Partner
Hedera developmentHashgraph apps and token services
Exclusive Partner
Hyperledger developmentPermissioned networks for enterprises
Certified Partner
Cardano Algorand Stellar Avalanche Bitcoin Polygon All networks All servicesAI & ML
AI agents developmentConnect tools and automate multi-step workflows
RAG developmentFind answers across your company’s documents and systems
AI copilot developmentAdd useful assistance to your product or internal tools
LLM developmentCustom and fine-tuned models for your domain
Private AI deploymentRun models in your own environment
AI consultingUse cases, feasibility and a roadmap
Generative AI development Machine learning development Computer vision Chatbot development ChatGPT integration Deep learning development All AI services All servicesData & analytics
Data engineeringPipelines that keep your data reliable
Data platform developmentOne source of truth for analytics
Analytics & dashboards developmentBI your teams actually use
Predictive analyticsForecasts built on your own history
Data strategyWhere data can pay off first
Data visualizationDashboards and visual stories from your data
Data science development Development of data marts All data services All servicesSoftware
Product discoveryValidate scope and cost before you build
MVP developmentA launch-ready first release
Web application developmentPlatforms, portals and internal tools
Mobile app developmentiOS, Android and cross-platform
SaaS developmentMulti-tenant products that scale
Software integrationConnect the systems you already run
Infrastructure & cloud cost UI/UX design IT consulting QA & software testing R&D Serverless development All software services All servicesSecurity & compliance
Smart contract auditsFind vulnerabilities before launch
Transaction monitoring developmentIntercepta inside your systems and processes
Security assessmentsTest apps, infrastructure and processes
Data security servicesProtect sensitive data across its lifecycle
Cloud security servicesSecure cloud workloads and configurations
DAML smart contract auditReview DAML contracts before they go live
All security services All servicesSolutions
Products, APIs and platforms
New
Products and engineering to build and operate on Canton.
In production 55M API requests served in 8 months
Crypto APIBlockchain data for your applications.
Power in numbers 6 TB Data storage. 500K Tokens indexed
RWA platformA foundation for your asset tokenization platform.
Time to launch 2–4 weeks Branding & setup. 90% more cost-efficient
DocFlowBlockchain-based document management.
Use case & value 100% Secure workflows. Zero third-party risks.
OTC Hawk Arbitrage Bot Book a solution consultWork
450+ projects. 250+ clients. 3 unicorns in portfolio
The first non-custodial wallet built natively for Canton
TON ecosystemA series of improvements for The Open Network
Mining platformEnvironmentally friendly web platform for Bitcoin pool mining
Mantra DAOCommunity-governed DeFi: 60+ staking pools, $23M TVL
Canton TON Web3 & DeFi Digital Assets & Tokenization AI & Data Intelligence IoT & Edge Computing Consulting See all projectsIndustries
Trusted by startups, small businesses, and enterprises
Banking, payments, lending, insurance, capital markets
Real estate software developmentInvestment, property operations, tokenization
Retail & commerce software developmentCommerce, loyalty and fulfillment
Supply chain software developmentTraceability and connected operations
Healthcare software developmentPatient services, data and connected systems
Banking software developmentCore banking, digital channels, payments
Fitness Education Oil & Gas Insurance Construction TravelCompany
From R&D to launch, we bring any of your ideas to life
Engineering partner. Product builder. Since 2007.
Technical experience 19+ years All competencies on board. Scalable team.
AchievementsIndustry recognition & awards.
Delivering real value 4.9 Clutch ratings. 150+ awards
Contact usDiscuss your project.
Quick response 30 min Average reply time. Offices in 6 countries
BlogDive into the latest software trends.
Fresh insights 500+ Articles in blockchain, AI, big data, AR/VR
Team Careers Social responsibility Glossary