## Node API Homepage The Node API is our implementation of the standard [JSON-RPC API defined by Ethereum](https://ethereum.org/en/developers/docs/apis/json-rpc/). It also supports reading and writing data for non-EVM chains like Solana and Bitcoin. Use the Node API if you want to access the standard low-level interface for reading and writing to the blockchain of your choosing. For specific use cases and higher levels of abstraction, Alchemy also offers: - indexed speciality endpoints (ie. NFTs, Tokens, Transfers), use our Data API. - account abstraction and smart wallet flows, use our [Wallet API](https://www.alchemy.com/docs/wallets). # Components of Node API - [Chain APIs](https://www.alchemy.com/docs/reference/api-overview): read/write interface for all blockchains supported by Alchemy. - [Websockets](https://www.alchemy.com/docs/reference/subscription-api): otherwise known as our Subscription API, for subscribing to pending transactions, log events, new blocks and more. - [Trace API](https://www.alchemy.com/docs/reference/trace-api-quickstart): for insights into transactions processing and onchain activity. - [Debug API](https://www.alchemy.com/docs/reference/debug-api-quickstart): access to non-standard RPC methods for inspecting and debugging transactions. # When Should I Use the Node API? Use the Node API when your app needs direct, low-level access to blockchain data and functionality *without* relying on Alchemy's smart wallet abstractions or indexed data services. ## Writing to a Blockchain Use the Node API if: - Your users are sending transactions, and you're not using Alchemy Smart Wallets. - If You are using our wallets, check out the Wallet API, which supports: - `sendUserOp` - `estimateUserOpGas` - and more account abstraction features ### Examples of Node API *write* use cases - Sending ETH and ERC-20 tokens to/from users - Buying/selling NFTs in a marketplace - Simulating and inspecting transactions - Writing custom smart contract interactions ### Key Node API endpoints - `eth_sendRawTransaction` - Submits a raw transaction (serialized and signed) for broadcasting to the network. ## Reading from a Blockchain If your use case requires raw blockchain data, not indexed data like in our Data API, then the Node API is what you want: ### Examples of Node API *read* use cases - Reading token balances - Polling logs and events ### Key endpoints - `eth_getBalance` - Returns the balance of the account of a given address. - `eth_getLogs` - Returns an array of all logs matching the specified filter. - `eth_estimateGas` - Generates and returns an estimate of how much gas is necessary to allow the transaction to complete. - `eth_call` - Executes a new message call immediately without creating a transaction on the blockchain. # Summary The Node API is right for you if you are looking for a low-level way to: - Send and/or simulate transactions - Read raw blockchain state - Build tools or apps close to node-level logic Otherwise, consider the following APIs more optimized for higher-level abstractions: - Data API: for fast, enriched, indexed queries (ie. historical token balances) - Wallet API: for smart account flows (ie. account abstraction)