{"id":3349,"date":"2025-12-05T12:00:25","date_gmt":"2025-12-05T12:00:25","guid":{"rendered":"https:\/\/drpc.org\/blog\/?p=3349"},"modified":"2025-11-27T06:19:21","modified_gmt":"2025-11-27T06:19:21","slug":"rpc-vs-rest","status":"publish","type":"post","link":"https:\/\/drpc.org\/blog\/rpc-vs-rest\/","title":{"rendered":"RPC vs REST: Which Is Best for Blockchain Applications?"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"3349\" class=\"elementor elementor-3349\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2edf193 e-con-full e-flex e-con e-parent\" data-id=\"2edf193\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2cb4b1e elementor-widget elementor-widget-text-editor\" data-id=\"2cb4b1e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2><strong>Introduction<\/strong><\/h2><p class=\"p1\">APIs act as the communication layer between applications and the systems they interact with. In blockchain development, APIs allow dApps, services, scripts, and backend components to communicate with nodes to retrieve state, broadcast transactions, or read contract data.<\/p><p class=\"p1\">Two of the most widely used API architectures are <span class=\"s1\"><b>REST (Representational State Transfer)<\/b><\/span> and <span class=\"s1\"><b>RPC (Remote Procedure Call)<\/b><\/span>. Although both serve the purpose of connecting applications to external services, they operate differently \u2014 especially in environments where performance, precision, and <a href=\"https:\/\/drpc.org\/docs\/specs\/balancing\/rating#:~:text=but%20not%20substantially.-,Performance%20prediction,%23,-The%20prediction%20algorithm\" target=\"_blank\" rel=\"noopener\"><strong>low-latency data access<\/strong><\/a> matter.<\/p><p class=\"p1\">In blockchain contexts, the choice between <span class=\"s1\"><b>RPC vs REST<\/b><\/span> has significant implications for speed, correctness, and scalability. This guide provides a clear, technical comparison and explains why <span class=\"s1\"><b>JSON-RPC<\/b><\/span> is the dominant standard for Ethereum, BNB Chain, Polygon, and other networks \u2014 especially when paired with decentralized RPC providers like <span class=\"s1\"><b>dRPC<\/b><\/span>. This guide provides a clear developer-focused comparison of <strong>RPC vs REST<\/strong> to help you choose the right API model for blockchain workloads.<\/p><p class=\"p1\">dRPC provides decentralized RPC endpoints across 180+ networks: <span style=\"text-decoration: underline;\"><a href=\"https:\/\/drpc.org\"><b>https:\/\/drpc.org<\/b><\/a><\/span><b><\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eea6953 elementor-widget elementor-widget-text-editor\" data-id=\"eea6953\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2><strong>Understanding APIs in Blockchain Development<\/strong><\/h2><p class=\"p1\">APIs allow blockchain applications to communicate directly with network nodes. Every blockchain node exposes an interface through which developers can:<\/p><ul><li><p class=\"p1\">Query account balances<\/p><\/li><li><p class=\"p1\">Fetch block data<\/p><\/li><li><p class=\"p1\">Broadcast signed transactions<\/p><\/li><li><p class=\"p1\">Query contract events<\/p><\/li><li><p class=\"p1\">Simulate smart contract calls<\/p><\/li><\/ul><p class=\"p1\">While REST and RPC both enable <a href=\"https:\/\/drpc.org\/docs\/web-api\/overview\" target=\"_blank\" rel=\"noopener\">API communication<\/a>, they differ in structure and performance characteristics.<\/p><p class=\"p1\">In blockchain development, <span class=\"s2\"><b>speed and precision<\/b><\/span> are critical. A dApp might need to compute on-chain data every block, update UI states rapidly, or retrieve events without delay. This is why the underlying API architecture matters.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a0616c0 elementor-widget elementor-widget-text-editor\" data-id=\"a0616c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2><strong>What is REST API?<\/strong><\/h2><p class=\"p1\">REST is an architectural style built around <span class=\"s1\"><b>resources<\/b><\/span> and standard HTTP verbs:<\/p><ul><li><p class=\"p1\">GET \/user\/123<\/p><\/li><li><p class=\"p1\">POST \/orders<\/p><\/li><li><p class=\"p1\">DELETE \/resource\/abc<\/p><\/li><\/ul><p class=\"p1\">It is stateless, human-readable, and widely used for web applications.<\/p><h3><b>Key Characteristics<\/b><\/h3><ul><li><p class=\"p1\">Uses HTTP verbs (GET\/POST\/PUT\/DELETE)<\/p><\/li><li><p class=\"p1\">Resource-based URL structures<\/p><\/li><li><p class=\"p1\">Predictable, simple design<\/p><\/li><li><p class=\"p1\">Highly compatible with typical SaaS and backend systems<\/p><\/li><\/ul><h3><b>Advantages<\/b><\/h3><ul><li><p class=\"p1\">Easy to understand<\/p><\/li><li><p class=\"p1\">Widely supported<\/p><\/li><li><p class=\"p1\">Strong ecosystem tooling<\/p><\/li><li><p class=\"p1\">Good for general web services<\/p><\/li><\/ul><h3><b>Limitations in Blockchain<\/b><\/h3><p class=\"p1\">REST is not optimized for high-frequency or low-latency data retrieval because:<\/p><ul><li><p class=\"p1\">Every query involves multiple layers of interpretation<\/p><\/li><li><p class=\"p1\">REST responses are verbose<\/p><\/li><li><p class=\"p1\">It works poorly when requests must be repeated every block<\/p><\/li><\/ul><p class=\"p1\">Blockchain workloads are inherently <span class=\"s1\"><b>method-centric<\/b><\/span>, not resource-centric \u2014 making REST a mismatch for typical node operations.<\/p><p class=\"p1\"><span class=\"s1\"><b>Developer note:<\/b><\/span> A REST API to fetch the current Ethereum block number might require accessing multiple endpoints or composed resources. In contrast, RPC exposes a single method: <a href=\"https:\/\/drpc.org\/docs\/ethereum-api\" target=\"_blank\" rel=\"noopener\"><strong><span class=\"s3\">eth_blockNumber<\/span><\/strong><\/a>.<\/p><p class=\"p1\">Learn more about REST fundamentals from the official Mozilla documentation:<\/p><p><span style=\"text-decoration: underline;\"><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/REST\" target=\"_blank\" rel=\"noopener\"><b>https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/REST<\/b><\/a><\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9de101d elementor-widget elementor-widget-text-editor\" data-id=\"9de101d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2><strong>What is RPC (remote procedure call)?<\/strong><\/h2><p class=\"p1\">RPC is a communication model where a client directly calls methods\/functions on a remote server \u2014 similar to calling a local function in code.<\/p><p class=\"p1\">Instead of treating data as \u201cresources,\u201d RPC treats node operations as <span class=\"s1\"><b>methods<\/b><\/span>:<\/p><ul><li><p class=\"p1\">eth_getBalance<\/p><\/li><li><p class=\"p1\">eth_call<\/p><\/li><li><p class=\"p1\">eth_blockNumber<\/p><\/li><li><p class=\"p1\">eth_sendRawTransaction<\/p><\/li><\/ul><p class=\"p1\">In the blockchain world, the most common implementation is <span class=\"s1\"><b>JSON-RPC<\/b><\/span>.<\/p><h3><b>JSON-RPC Example<\/b><\/h3><p class=\"p1\">Request:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1be114b elementor-widget elementor-widget-code-highlight\" data-id=\"1be114b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>{\n  \"jsonrpc\": \"2.0\",\n  \"method\": \"eth_blockNumber\",\n  \"params\": [],\n  \"id\": 1\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3c90ada elementor-widget elementor-widget-text-editor\" data-id=\"3c90ada\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">Response:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2bcbf6b elementor-widget elementor-widget-code-highlight\" data-id=\"2bcbf6b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"result\": \"0x10d4f\"\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-402a4d8 elementor-widget elementor-widget-text-editor\" data-id=\"402a4d8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>For a deeper walkthrough of interacting with contracts using JSON-RPC, see our guide: <b>How to Interact with Web3 Smart Contracts Using Decentralized RPC<\/b><\/p><p><b><\/b><span style=\"text-decoration: underline;\"><a href=\"https:\/\/drpc.org\/blog\/web3-smart-contract-interaction-decentralized-rpc\">https:\/\/drpc.org\/blog\/web3-smart-contract-interaction-decentralized-rpc<\/a><\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9447085 elementor-widget elementor-widget-text-editor\" data-id=\"9447085\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h3><b>Advantages for Blockchain<\/b><\/h3><ul><li><p class=\"p1\">Lightweight<\/p><\/li><li><p class=\"p1\">Direct method invocation<\/p><\/li><li><p class=\"p1\">Lower latency than REST<\/p><\/li><li><p class=\"p1\">Minimal overhead<\/p><\/li><li><p class=\"p1\">Designed for repetitive queries<\/p><\/li><li><p class=\"p1\">Enables precise, atomic blockchain interactions<\/p><\/li><\/ul><p class=\"p3\">This makes RPC ideal for dApps, explorers, wallets, indexers, and backend processors. When comparing <span class=\"s1\"><b>rpc vs rest<\/b><\/span> architectures, RPC aligns more closely with how blockchain nodes operate, because nearly all interactions are method-based rather than resource-based.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5f18a06 elementor-widget elementor-widget-text-editor\" data-id=\"5f18a06\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h3><b>In short:\u00a0<\/b><\/h3><p class=\"p3\"><strong>REST<\/strong> is a resource-based API design that uses HTTP verbs to retrieve and manipulate data. Common for traditional web apps but less efficient for blockchain synchronization and state queries.<\/p><p class=\"p3\"><strong>RPC<\/strong> is a method-based communication protocol enabling direct function calls on a remote server. JSON-RPC is the primary interface for blockchain nodes, optimized for speed and precision.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ddf691f elementor-widget elementor-widget-text-editor\" data-id=\"ddf691f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2><strong>What is the Difference Between RPC and REST?<\/strong><\/h2><p class=\"p1\">Below is a detailed comparison tailored specifically for blockchain workloads.<\/p><h3><b>RPC vs REST Comparison Table<\/b><\/h3>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-033bdfc e-grid e-con-full e-con e-child\" data-id=\"033bdfc\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-418e49a elementor-widget elementor-widget-heading\" data-id=\"418e49a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\"><b>FEATURE<\/b><\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-63de899 elementor-widget elementor-widget-heading\" data-id=\"63de899\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\"><b>REST<\/b><\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0bf519a elementor-widget elementor-widget-heading\" data-id=\"0bf519a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\"><p><b>RPC \/ JSON-RPC<\/b><\/p><\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ed3ad89 elementor-widget elementor-widget-text-editor\" data-id=\"ed3ad89\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Architecture<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c5cf6b8 elementor-widget elementor-widget-text-editor\" data-id=\"c5cf6b8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Resource-based<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8447377 elementor-widget elementor-widget-text-editor\" data-id=\"8447377\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Method-based<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fc9c5f0 elementor-widget elementor-widget-text-editor\" data-id=\"fc9c5f0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\"><b>Usage pattern<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bc29a72 elementor-widget elementor-widget-text-editor\" data-id=\"bc29a72\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">GET\/POST on URLs<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3908dcf elementor-widget elementor-widget-text-editor\" data-id=\"3908dcf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Direct method calls<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-efe98f8 elementor-widget elementor-widget-text-editor\" data-id=\"efe98f8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Typical format<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3b5adf0 elementor-widget elementor-widget-text-editor\" data-id=\"3b5adf0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>JASON over HTTP<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d2b6c4b elementor-widget elementor-widget-text-editor\" data-id=\"d2b6c4b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">JSON-RPC over HTTP\/WebSocket<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1c837f9 elementor-widget elementor-widget-text-editor\" data-id=\"1c837f9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Overhead<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-83c4cf0 elementor-widget elementor-widget-text-editor\" data-id=\"83c4cf0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">Higher (HTTP stack, routing)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9eb6e7f elementor-widget elementor-widget-text-editor\" data-id=\"9eb6e7f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Low (direct method execution)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9d0b28a elementor-widget elementor-widget-text-editor\" data-id=\"9d0b28a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Latency<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-085d359 elementor-widget elementor-widget-text-editor\" data-id=\"085d359\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Moderate to high<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-174849f elementor-widget elementor-widget-text-editor\" data-id=\"174849f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Low<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-572f96b elementor-widget elementor-widget-text-editor\" data-id=\"572f96b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\"><b>Ideal use case<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f6c7bde elementor-widget elementor-widget-text-editor\" data-id=\"f6c7bde\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">CRUD apps, microservices<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-738665b elementor-widget elementor-widget-text-editor\" data-id=\"738665b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Blockchain node operations<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-69d39c0 elementor-widget elementor-widget-text-editor\" data-id=\"69d39c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Batch requests<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d6a7c80 elementor-widget elementor-widget-text-editor\" data-id=\"d6a7c80\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Rare<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6a5b1d3 elementor-widget elementor-widget-text-editor\" data-id=\"6a5b1d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">Native (JSON-RPC batching)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9743a48 elementor-widget elementor-widget-text-editor\" data-id=\"9743a48\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Websocket support<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fa9952 elementor-widget elementor-widget-text-editor\" data-id=\"4fa9952\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Limited<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f1d61ea elementor-widget elementor-widget-text-editor\" data-id=\"f1d61ea\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">First-class (subscribe to new blocks\/events)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-285f496 elementor-widget elementor-widget-text-editor\" data-id=\"285f496\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\"><b>Blockchain compatibility<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8c40ff0 elementor-widget elementor-widget-text-editor\" data-id=\"8c40ff0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Poor<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cb9345d elementor-widget elementor-widget-text-editor\" data-id=\"cb9345d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Native standard<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b5b08f9 elementor-widget elementor-widget-text-editor\" data-id=\"b5b08f9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\"><b>Performance under load<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f504110 elementor-widget elementor-widget-text-editor\" data-id=\"f504110\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Degrades faster<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6b268a4 elementor-widget elementor-widget-text-editor\" data-id=\"6b268a4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">Optimized for repetitive calls<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ee840bd elementor-widget elementor-widget-text-editor\" data-id=\"ee840bd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Event streaming<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1f6e75f elementor-widget elementor-widget-text-editor\" data-id=\"1f6e75f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Needs custom solutions<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-44a4067 elementor-widget elementor-widget-text-editor\" data-id=\"44a4067\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">Supported via <span class=\"s1\">eth_subscribe<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1e99df7 elementor-widget elementor-widget-text-editor\" data-id=\"1e99df7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Data accuracy<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9ed4671 elementor-widget elementor-widget-text-editor\" data-id=\"9ed4671\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">Multi-step queries<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c6bb793 elementor-widget elementor-widget-text-editor\" data-id=\"c6bb793\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Single precise call<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-902e260 elementor-widget elementor-widget-text-editor\" data-id=\"902e260\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Examples<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ffc57ee elementor-widget elementor-widget-text-editor\" data-id=\"ffc57ee\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>RESTful backend APIs<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6f222e7 elementor-widget elementor-widget-text-editor\" data-id=\"6f222e7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">Ethereum JSON-RPC, BNB RPC, Polygon RPC<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fe9c99a elementor-widget elementor-widget-image\" data-id=\"fe9c99a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"350\" height=\"350\" src=\"https:\/\/drpc.org\/blog\/wp-content\/uploads\/2025\/11\/Untitled-design.webp\" class=\"attachment-large size-large wp-image-3354 not-transparent\" alt=\"RPC vs REST\" srcset=\"https:\/\/drpc.org\/blog\/wp-content\/uploads\/2025\/11\/Untitled-design.webp 350w, https:\/\/drpc.org\/blog\/wp-content\/uploads\/2025\/11\/Untitled-design-300x300.webp 300w, https:\/\/drpc.org\/blog\/wp-content\/uploads\/2025\/11\/Untitled-design-150x150.webp 150w\" sizes=\"(max-width: 350px) 100vw, 350px\" data-has-transparency=\"false\" data-dominant-color=\"eeeeee\" style=\"--dominant-color: #eeeeee\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2706338 elementor-widget elementor-widget-text-editor\" data-id=\"2706338\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">In blockchain workloads, <span class=\"s1\"><b>RPC is universally superior<\/b><\/span> due to its direct execution model and lightweight data exchange.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cdea988 elementor-widget elementor-widget-text-editor\" data-id=\"cdea988\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2><strong>Why RPC Is Better for Blockchain Applications<\/strong><\/h2><p>When comparing <span class=\"s1\"><b>rpc vs rest<\/b><\/span>, blockchain workloads favor RPC because most node operations map directly to method calls rather than resource endpoints.<\/p><p class=\"p1\">Blockchain nodes continuously process new data every block. A dApp may need to update state rapidly:<\/p><ul><li><p class=\"p1\">Query updated token balances<\/p><\/li><li><p class=\"p1\">Fetch new block headers<\/p><\/li><li><p class=\"p1\">Simulate contract calls<\/p><\/li><li><p class=\"p1\">Poll events<\/p><\/li><li><p class=\"p1\">Broadcast transactions<\/p><\/li><\/ul><p class=\"p1\">REST introduces overhead and latency that become bottlenecks.<\/p><h3><b>RPC is Method-Centric<\/b><\/h3><p class=\"p1\">Blockchain operations map naturally to methods:<\/p><ul><li><p class=\"p1\">eth_getBalance<\/p><\/li><li><p class=\"p1\">eth_estimateGas<\/p><\/li><li><p class=\"p1\">eth_getTransactionReceipt<\/p><\/li><\/ul><p class=\"p1\">REST forces these into unnatural resource structures.<\/p><h3><b>Lower Latency<\/b><\/h3><p class=\"p1\">RPC eliminates URL routing and resource abstraction, enabling:<\/p><ul><li><p class=\"p1\">Faster response times<\/p><\/li><li><p class=\"p1\">Higher request throughput<\/p><\/li><li><p class=\"p1\">Better performance during congested network periods<\/p><\/li><\/ul><h3><b>Precise, Atomic Results<\/b><\/h3><p class=\"p1\">RPC returns exactly the requested data (e.g., a block header), not a composed REST resource.<\/p><h3><b>Native Support Across Blockchains<\/b><\/h3><p class=\"p1\">All major chains rely on JSON-RPC:<\/p><ul><li><p class=\"p1\">Ethereum<\/p><\/li><li><p class=\"p1\">BNB Chain<\/p><\/li><li><p class=\"p1\">Polygon<\/p><\/li><li><p class=\"p1\">Avalanche<\/p><\/li><li><p class=\"p1\">Base<\/p><\/li><li><p class=\"p1\">Arbitrum<\/p><\/li><li><p class=\"p1\">Optimism<\/p><\/li><\/ul><h3><b>Multi-Chain Scalability<\/b><\/h3><p class=\"p1\">RPC makes it straightforward for dApps to support multiple chains with consistent method signatures.<\/p><h3 class=\"p1\"><strong>Conclusion<\/strong><\/h3><p class=\"p1\">For blockchain applications, RPC is not just faster \u2014 it\u2019s the architecture the ecosystem is built on.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e1a6e24 elementor-widget elementor-widget-text-editor\" data-id=\"e1a6e24\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2><strong>JSON-RPC: The Core of Blockchain Communication<\/strong><\/h2><p class=\"p1\">JSON-RPC is a lightweight, stateless remote procedure call protocol used universally by blockchain nodes. This is one of the key reasons why <span class=\"s1\"><b>rpc vs rest<\/b><\/span> decisions in blockchain development almost always favor JSON-RPC over REST-based designs.<\/p><h3><b>Key Characteristics<\/b><\/h3><ul><li><p class=\"p1\">Minimal JSON payload<\/p><\/li><li><p class=\"p1\">Language-agnostic<\/p><\/li><li><p class=\"p1\">Transport-agnostic (HTTP or WebSocket)<\/p><\/li><li><p class=\"p1\">Batch requests supported<\/p><\/li><li><p class=\"p1\">Errors structured cleanly<\/p><\/li><\/ul><h3><b>Example: Fetch Latest Block Number<\/b><\/h3><p class=\"p1\">Request:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-080e9a4 elementor-widget elementor-widget-code-highlight\" data-id=\"080e9a4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>{\n \"jsonrpc\": \"2.0\",\n \"method\": \"eth_blockNumber\",\n \"params\": [],\n \"id\": 1\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1b7bbc3 elementor-widget elementor-widget-text-editor\" data-id=\"1b7bbc3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Response<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ec5d48f elementor-widget elementor-widget-code-highlight\" data-id=\"ec5d48f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"result\": \"0x10d4f\"\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5893bef elementor-widget elementor-widget-text-editor\" data-id=\"5893bef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2><strong>Real-World Example: Querying Chain Data via RPC<\/strong><\/h2><h3><b>Why JSON-RPC is Ideal for Blockchain<\/b><\/h3><ul><li><p class=\"p1\">Extremely fast<\/p><\/li><li><p class=\"p1\">Minimal overhead<\/p><\/li><li><p class=\"p1\">Works well with continuous polling<\/p><\/li><li><p class=\"p1\">Directly aligned with node functionality<\/p><\/li><\/ul><p class=\"p3\">See: <span class=\"s2\"><b>Ethereum JSON-RPC docs<\/b><\/span> \u2192 <span style=\"text-decoration: underline;\"><a href=\"https:\/\/ethereum.org\/en\/developers\/docs\/apis\/json-rpc\/\" target=\"_blank\" rel=\"noopener\">https:\/\/ethereum.org\/en\/developers\/docs\/apis\/json-rpc\/<\/a><\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-da92370 elementor-widget elementor-widget-text-editor\" data-id=\"da92370\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">A simple example using <span class=\"s1\"><b>web3.js<\/b><\/span>:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1dc9111 elementor-widget elementor-widget-code-highlight\" data-id=\"1dc9111\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>const Web3 = require(\"web3\");\nconst web3 = new Web3(\"https:\/\/lb.drpc.live\/eth\");\n\nasync function run() {\n  const block = await web3.eth.getBlockNumber();\n  console.log(\"Latest block:\", block);\n}\nrun();<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-50957fd elementor-widget elementor-widget-text-editor\" data-id=\"50957fd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"p1\">The same call via REST (if it existed) would require multiple endpoints, aggregation logic, and conversion steps \u2014 much slower and less efficient.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b2d0d84 elementor-widget elementor-widget-text-editor\" data-id=\"b2d0d84\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2><strong>Why Developers Prefer dRPC for JSON-RPC Connections<\/strong><\/h2><p class=\"p2\"><a href=\"http:\/\/drpc.org\" target=\"_blank\" rel=\"noopener\">dRPC<\/a> provides high-performance, decentralized RPC endpoints for blockchain workloads.<\/p><h3><b>Benefits<\/b><\/h3><ul><li><p class=\"p1\"><b>Decentralized architecture<\/b><span class=\"s1\"> reduces downtime<\/span><\/p><\/li><li><p class=\"p1\"><span class=\"s1\"><b>Global low-latency routing<\/b><\/span> ensures faster RPC responses<\/p><\/li><li><p class=\"p1\"><b>Consistent multi-chain interface<\/b><b><\/b><\/p><\/li><li><p class=\"p1\"><span class=\"s1\"><b>High throughput<\/b><\/span> for repetitive queries<\/p><\/li><li><p class=\"p1\"><b>Automatic failover<\/b><span class=\"s1\"> across providers<\/span><\/p><\/li><\/ul><p class=\"p2\">Developers can interact with dozens of networks using the same base URL.<\/p><p class=\"p4\"><span style=\"text-decoration: underline;\"><a href=\"https:\/\/drpc.org\/chainlist\"><b>Try querying blockchain data faster with dRPC\u2019s JSON-RPC endpoints.<\/b><\/a><\/span><b><\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e4cfa89 elementor-widget elementor-widget-text-editor\" data-id=\"e4cfa89\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2><strong>FAQs<\/strong><\/h2><h3><b>What is the difference between RPC and REST?<\/b><\/h3><p class=\"p3\">REST is a resource-based API design using HTTP verbs. RPC is a method-based interface where clients call functions directly on a server. Blockchain nodes use RPC for speed and precision.<\/p><h3><b>Why is RPC faster than REST for blockchain APIs?<\/b><\/h3><p class=\"p3\">RPC avoids resource abstraction and reduces data overhead, directly invoking node methods. This leads to lower latency and more efficient queries.<\/p><h3><b>What is JSON-RPC and how does it work?<\/b><\/h3><p class=\"p3\">JSON-RPC is a lightweight protocol for performing remote method calls using JSON. It is the primary interface to blockchain nodes such as Ethereum and BNB Chain.<\/p><h3><b>Can REST be used for blockchain applications?<\/b><\/h3><p class=\"p3\">REST can be used in auxiliary services, but it is not optimal for node communication due to higher overhead and slower data retrieval.<\/p><h3><b>Why is dRPC ideal for JSON-RPC connections?<\/b><\/h3><p class=\"p3\">dRPC offers decentralized node providers, automatic failover, and globally optimized routing \u2014 providing faster and more reliable RPC access.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-488019c elementor-widget elementor-widget-text-editor\" data-id=\"488019c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2><strong>Take-Away<\/strong><\/h2><p>When looking at <span class=\"s1\"><b>rpc vs rest<\/b><\/span>, it becomes clear that REST excels in traditional web systems while RPC is built for blockchain performance.<\/p><p class=\"p2\">While REST is a great fit for traditional web applications, it is not optimized for high-frequency, low-latency blockchain workloads. Blockchain operations are method-centric and data-intensive, making <span class=\"s1\"><b>RPC \u2014 specifically JSON-RPC \u2014 the best communication model<\/b><\/span>.<\/p><p class=\"p2\">RPC enables faster queries, more precise data retrieval, and efficient handling of repetitive node operations. When combined with a <span class=\"s1\"><b>decentralized RPC provider<\/b><\/span> like <span class=\"s1\"><b>dRPC<\/b><\/span>, developers gain even greater reliability, uptime, and performance across multiple networks.<\/p><p class=\"p3\"><b>Connect to decentralized RPC endpoints today at <a href=\"http:\/\/drpc.org\" target=\"_blank\" rel=\"noopener\">dRPC<\/a>.<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Introduction APIs act as the communication layer between applications and the systems they interact with. In blockchain development, APIs allow dApps, services, scripts, and backend components to communicate with nodes to retrieve state, broadcast transactions, or read contract data. Two of the most widely used API architectures are REST (Representational State Transfer) and RPC (Remote [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":3358,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[215,203],"tags":[219,220],"class_list":["post-3349","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-education","category-insights","tag-rest","tag-rpc-vs-rest"],"_links":{"self":[{"href":"https:\/\/drpc.org\/blog\/wp-json\/wp\/v2\/posts\/3349","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/drpc.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/drpc.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/drpc.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/drpc.org\/blog\/wp-json\/wp\/v2\/comments?post=3349"}],"version-history":[{"count":16,"href":"https:\/\/drpc.org\/blog\/wp-json\/wp\/v2\/posts\/3349\/revisions"}],"predecessor-version":[{"id":3531,"href":"https:\/\/drpc.org\/blog\/wp-json\/wp\/v2\/posts\/3349\/revisions\/3531"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/drpc.org\/blog\/wp-json\/wp\/v2\/media\/3358"}],"wp:attachment":[{"href":"https:\/\/drpc.org\/blog\/wp-json\/wp\/v2\/media?parent=3349"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/drpc.org\/blog\/wp-json\/wp\/v2\/categories?post=3349"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/drpc.org\/blog\/wp-json\/wp\/v2\/tags?post=3349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}