# Graphics for RPCs - [ ] What is an RPC? - [ ] An RPC is a Remote Procedure Call. This is a protocol that enables one computer or program to communicate with another computer or program. A blockchain RPC allows users to access data from blockchains - it is the connection to the blockchain. You can think of it as a portal to interface and communicate with the blockchain or connect to the network. - [ ] The RPC is initiated by the client (requester), sending a request to a remote server (receiver). The server receives the request and sends a response to the client. - [ ] The RPC call is represented by sending a **Request** Object to a server. In this example, we'll use a cURL Request: - `curl -X POST https://rpc.ankr.com/eth -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'` 1. `jsonrpc` - a String specifying the version of the JSON-RPC protocol. It must be `"2.0"` 2. `method` - a String containing the name of the method to be invoked 3. `params` - a Structured value that holds the parameters used to invoke the method 4. `id` - an identifier established by the client - [ ] The RPC **Response** Object: - `{"jsonrpc":"2.0","id":1,"result":"0xe7140a"}` 1. `jsonrpc` - a String specifying the version of the JSON-RPC protocol. It must be `"2.0"` 2. `result` - this is required on successful request 3. `error` - this is required on error 4. `id` - this is required. it must match the same value of the id on the Request Object - [ ] The JSON-RPC API is a bridge that allows dApps to connect to RPC Nodes - dApps need to interact with a blockchain to read blockchain data and to send transactions to the network - [ ] What are the top use cases for RPCs? 1. Creating decentralized applications (dApps) 2. Querying blockchain data without access to your own node 3. Simplifying the building process 4. Creating WebSockets to view real-time transaction data 5. Send requests to access a massive amount of information