> For the complete documentation index, see [llms.txt](https://bootcamp.openguild.wtf/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bootcamp.openguild.wtf/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/substrate/runtime-api-and-rpc.md).

# Runtime API and RPC

Substrate nodes consist of <mark style="background-color:orange;">**outer node services and a runtime**</mark> and this separation of responsibilities is an important concept for designing Substrate-based chains and building upgradeable logic. However, the outer node services and the runtime must communicate with each other to complete many critical operations, <mark style="color:blue;">**including reading and writing data and performing state transitions**</mark>. \
\
The outer node services communicate with the runtime by calling **runtime application programming interfaces (Runtime API)** to perform specific tasks.

<figure><img src="/files/EysbmeB7vgjI11tuPq3S" alt=""><figcaption><p>How Runtime and Outer Node Services communicate mutually?</p></figcaption></figure>
