# New JSON-RPC API mega Q&A

**URL:** <https://forum.polkadot.network/t/new-json-rpc-api-mega-q-a/3048>\
**Category:** Tech Talk\
**Tags:** rpc\
**Created:** [June 6, 2023, 9:43am UTC](https://forum.polkadot.network/t/new-json-rpc-api-mega-q-a/3048 "2023-06-06T09:43:39Z")\
**Posts on this page:** 1\
**Page:** 2

<div class="post-metadata">

**Author:** ![mhrsalehi](https://dub1.discourse-cdn.com/flex005/user_avatar/forum.polkadot.network/mhrsalehi/32/11356_2.png) [@mhrsalehi](https://forum.polkadot.network/u/mhrsalehi)\
**Post date:** [May 6, 2026, 12:54pm UTC](https://forum.polkadot.network/t/new-json-rpc-api-mega-q-a/3048/21 "2026-05-06T12:54:18Z")

</div>

As a library developer working with Substrate/Polkadot, I’ve been digging into the new JSON‑RPC spec, and overall I like it. It’s definitely more work for client library authors, but the separation between runtime‑specific types and the RPC interface is a what I liked more.

With the old RPCs, methods like chain\_getHeader were always a bit messy, you’d get a JSON object whose actual structure depended on the runtime, with some fields turned into JSON while others were still SCALE‑encoded. You still needed metadata to fully decode it, which made the whole thing feel inconsistent.

With the new RPCs, for example chainHead\_v1\_header, you now get the full runtime header as SCALE, claenly and consistently. Much nicer to work with.

I’m currently migrating my project, [Substrate4j](https://substrate4j.org/) (a Java library for Substrate/Polkadot — not released yet, but will be soon!), to the new RPCs.

[Previous page](https://forum.polkadot.network/t/new-json-rpc-api-mega-q-a/3048.md?page=1)
