> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tenderly.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Node RPC

> Tenderly Node RPC के साथ JSON-RPC और WebSocket पर 80+ EVM नेटवर्क्स तक पहुंचें। transactions भेजें, simulate करें, और trace करें और chain डेटा पढ़ें, कोई node चलाने की आवश्यकता नहीं।

Node RPC एक तेज़ और विश्वसनीय production node है जो RPC के माध्यम से 80 से अधिक ब्लॉकचेन नेटवर्क्स तक पहुंच सक्षम बनाता है। यह आपको transactions भेजने, स्मार्ट कॉन्ट्रैक्ट्स डिप्लॉय करने, ब्लॉकचेन डेटा query करने या अन्य ऑपरेशन्स करने की अनुमति देता है, अपना खुद का node चलाने या बुनियादी ढांचे को प्रबंधित किए बिना।

<Note>
  Node RPC paid प्लान पर उपलब्ध है। अपने अकाउंट के लिए इसे सक्षम करने के लिए, [हमारी sales टीम से संपर्क करें](https://tenderly.co/contact-us)।
</Note>

Node RPC समर्थन करता है:

* बहु-क्षेत्रीय बुनियादी ढांचा (EU & US) स्थान-स्वतंत्र low latency सुनिश्चित करता है
* `http` और [WebSocket](#websockets) प्रोटोकॉल के माध्यम से पहुंच
* [Request batching](#batching-json-rpc-requests)
* [Node Extensions](#node-extensions) के माध्यम से कस्टम RPC मेथड्स बनाना
* Tenderly के डेवलपमेंट टूलिंग तक पहुंच

<img src="https://mintcdn.com/tenderly/UcIYT1E5TsGcI0yz/images/node/list.webp?fit=max&auto=format&n=UcIYT1E5TsGcI0yz&q=85&s=6a24f4cd601b49400657e42decd307c7" alt="" width="1600" height="585" data-path="images/node/list.webp" />

## कस्टम RPC मेथड्स

मानक EVM मेथड्स को सपोर्ट करने के अलावा, Node RPC `tenderly_` namespace में Tenderly के कस्टम RPC मेथड्स को उजागर करता है।

Simulation, gas estimation, और tracing मेथड्स समर्पित पृष्ठों पर प्रलेखित हैं:

* [`tenderly_simulateTransaction`](/node-rpc/guides/simulate-json-rpc) signing से पहले transaction के परिणाम को simulate करने के लिए।
* [`tenderly_estimateGas`](/node-rpc/guides/simulate-json-rpc#tenderly_estimategas) transaction के लिए सटीक gas अनुमान प्राप्त करने के लिए।
* [`tenderly_simulateBundle`](/node-rpc/guides/simulate-bundle-json-rpc) एक ही request में कई transactions को simulate करने के लिए।
* [`tenderly_estimateGasBundle`](/node-rpc/guides/simulate-bundle-json-rpc#tenderly_estimategasbundle) transactions के एक bundle के लिए सटीक gas अनुमान प्राप्त करने के लिए।
* [`tenderly_traceTransaction`](/node-rpc/guides/trace-json-rpc) एक मौजूदा transaction का डिकोडेड trace प्राप्त करने के लिए।

Decoding और signature लुकअप मेथड्स [RPC reference](/node-rpc/rpc-reference) में उपलब्ध हैं:

* [`tenderly_decodeInput`](/node-rpc/rpc-reference?network=ethereum-mainnet\&method=tenderly_decodeInput) बाहरी function कॉल्स को heuristically decode करने के लिए।
* [`tenderly_decodeError`](/node-rpc/rpc-reference?network=ethereum-mainnet\&method=tenderly_decodeError) कस्टम errors को heuristically decode करने के लिए।
* [`tenderly_decodeEvent`](/node-rpc/rpc-reference?network=ethereum-mainnet\&method=tenderly_decodeEvent) उत्सर्जित events को heuristically decode करने के लिए।
* [`tenderly_functionSignatures`](/node-rpc/rpc-reference?network=ethereum-mainnet\&method=tenderly_functionSignatures) 4-byte function selector के आधार पर function interface प्राप्त करने के लिए।
* [`tenderly_errorSignatures`](/node-rpc/rpc-reference?network=ethereum-mainnet\&method=tenderly_errorSignatures) 4-byte selector के आधार पर event interface प्राप्त करने के लिए।
* [`tenderly_eventSignature`](/node-rpc/rpc-reference?network=ethereum-mainnet\&method=tenderly_eventSignature) 32-byte event signature के आधार पर event interface प्राप्त करने के लिए।

## Node RPCs का प्रबंधन

Dashboard में लॉग इन करें और [Node RPCs पृष्ठ पर जाएं](https://dashboard.tenderly.co/register?redirectTo=gateways) जहां आप नए Node RPCs बना सकते हैं और मौजूदा को प्रबंधित कर सकते हैं।

### Node RPC बनाना

एक नया Node RPC बनाने के लिए, इन चरणों का पालन करें:

* **Create Node** बटन पर क्लिक करें
* वह नेटवर्क चुनें जिसे आप एक्सेस करना चाहते हैं
* Node के लिए एक नाम प्रदान करें
* **Create** पर क्लिक करें

<Note>
  आप जो भी Node बनाते हैं उसका एक अद्वितीय URL होगा।
</Note>

<img src="https://mintcdn.com/tenderly/UcIYT1E5TsGcI0yz/images/node/create.webp?fit=max&auto=format&n=UcIYT1E5TsGcI0yz&q=85&s=0029808adcd1ce23a034f9ec5f517ea5" alt="" width="1600" height="800" data-path="images/node/create.webp" />

### Node RPCs कॉन्फ़िगर करना

एक बार Node RPC बन जाने के बाद, आप इसे **Settings** में कॉन्फ़िगर कर सकते हैं। वहां से, आप कर सकते हैं:

* Node RPC URL रीसेट करें
* Node नाम बदलें
* Node हटाएं

<img src="https://mintcdn.com/tenderly/UcIYT1E5TsGcI0yz/images/node/settings.webp?fit=max&auto=format&n=UcIYT1E5TsGcI0yz&q=85&s=5db0db3b1d26bcf89fdca2cab1ad45ec" alt="" width="1600" height="875" data-path="images/node/settings.webp" />

### Node RPC को MetaMask में जोड़ें

एक क्लिक से Node RPC को अपने MetaMask wallet में जोड़ें। node का **Overview** पृष्ठ खोलें, **Add to Wallet** बटन पर क्लिक करें, और MetaMask में कार्रवाई की पुष्टि करें।

Node RPC जोड़ने के लिए MetaMask में **Approve** पर क्लिक करें।

<img src="https://mintcdn.com/tenderly/UcIYT1E5TsGcI0yz/images/node/add-to-wallet.webp?fit=max&auto=format&n=UcIYT1E5TsGcI0yz&q=85&s=4da4ccd4520739b23ceb0093cb1787c8" alt="Node RPC" width="1600" height="264" data-path="images/node/add-to-wallet.webp" />

## WebSockets

Node RPC HTTPS के अलावा WebSocket (`wss://`) पर भी सुलभ है। एक WebSocket कनेक्शन persistent और bidirectional है, और subscription मेथड्स `eth_subscribe` और `eth_unsubscribe` के लिए आवश्यक है।

WebSocket endpoint प्राप्त करने के लिए, [Dashboard](https://dashboard.tenderly.co/?redirectTo=gateways) में node का **Overview** पृष्ठ खोलें और **WSS** URL कॉपी करें।

<img src="https://mintcdn.com/tenderly/UcIYT1E5TsGcI0yz/images/node/websockets-1.webp?fit=max&auto=format&n=UcIYT1E5TsGcI0yz&q=85&s=f7c990000fec802c3d6b9a67bab86e4f" alt="" width="626" height="86" data-path="images/node/websockets-1.webp" />

आप `wscat` कमांड-लाइन टूल के साथ कनेक्शन का परीक्षण कर सकते हैं:

```bash title="example" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
wscat -c wss://mainnet.gateway.tenderly.co/$TENDERLY_NODE_ACCESS_KEY
```

एक बार कनेक्ट होने के बाद, socket पर JSON-RPC requests भेजें और वास्तविक समय में responses प्राप्त करें:

```json title="request.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}
```

```json title="response.json" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{"jsonrpc":"2.0","id":1,"result":"0x657330"}
```

## JSON-RPC requests को batch करना

JSON-RPC request batching आपको एक ही HTTPS कॉल के भीतर कई JSON-RPC method आह्वान भेजने की अनुमति देता है। एक batch request में व्यक्तिगत JSON-RPC requests की एक array होती है, और response batch से प्रत्येक request के अनुरूप क्रम में परिणामों की एक array होती है।

आप batching का उपयोग कर सकते हैं:

* **सीधे**, एक HTTPS request भेजकर जिसमें व्यक्तिगत JSON-RPC कॉल्स की एक array हो,
* **[Ethers का उपयोग करके](/node-rpc/libraries/ethers)**, **`JsonRpcBatchProvider`** को इंस्टैंशिएट करके,
* **[Viem का उपयोग करके](/node-rpc/libraries/viem)**, **`createPublicClient`** के माध्यम से client बनाते समय **`batch`** parameter को कॉन्फ़िगर करके।

यदि कोई विशेष request विफल हो जाता है, तो batch request अभी भी `200 OK` HTTP status लौटाता है, और विफल JSON-RPC कॉल के अनुरूप response object error रखता है।

<Note>
  Request batching केवल `HTTPS` पर समर्थित है। `WSS` पर कोई batching समर्थन नहीं है। एक batch के अंदर प्रत्येक request को अलग-अलग गिना और चार्ज किया जाता है; [Node RPC pricing](/node-rpc/pricing) देखें।
</Note>

```bash title="batch-call.sh" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
curl https://mainnet.gateway.tenderly.co/$TENDERLY_NODE_ACCESS_KEY \
-X POST \
-H "Content-Type: application/json" \
-d '[
  {"jsonrpc": "2.0", "id": 1, "method": "eth_blockNumber", "params": []},
  {"jsonrpc": "2.0", "id": 2, "method": "eth_gasPrice", "params": []},
  {"jsonrpc": "2.0", "id": 3, "method": "eth_getBalance", "params": ["0xd8da6bf26964af9d7eed9e03e53415d37aa96045", "latest"]}
]'
```

Viem के साथ, batching client स्तर पर कॉन्फ़िगर की जाती है:

```js title="batch-calls.ts" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
const client = createPublicClient({
  chain: mainnet,
  transport: http(
    `https://mainnet.gateway.tenderly.co/${process.env.TENDERLY_NODE_ACCESS_KEY}`,
    {
      batch: true,
    }
  ),
});

const [blockNumber, balance, ensName] = await Promise.all([
  client.getBlockNumber(),
  client.getBalance({ address: "0xd2135CfB216b74109775236E36d4b433F1DF507B" }),
  client.getEnsName({ address: "0xd2135CfB216b74109775236E36d4b433F1DF507B" }),
]);
```

## RPC Request Builder

RPC Request Builder आपको अपने ब्राउज़र से किसी भी समर्थित RPC मेथड को निष्पादित करने देता है। प्रत्येक request सीधे Node RPC को भेजा जाता है। Builder आपको मौजूदा collections का उपयोग करने या अपने स्वयं के requests बनाने की अनुमति भी देता है।

समर्थित सभी RPC मेथड्स की सूची [RPC reference](/node-rpc/rpc-reference) में देखें।

<img src="https://mintcdn.com/tenderly/UcIYT1E5TsGcI0yz/images/node/request-builder.webp?fit=max&auto=format&n=UcIYT1E5TsGcI0yz&q=85&s=17d59340fe914e0f588460ac0f92e2b6" alt="" width="1600" height="745" data-path="images/node/request-builder.webp" />

## Node Extensions

Node Extensions आपको JavaScript या TypeScript का उपयोग करके अपने dapp, protocol, या विशिष्ट आवश्यकताओं के अनुरूप कस्टम RPC मेथड्स के साथ Node RPC की कार्यक्षमता को विस्तारित करने की अनुमति देते हैं। Node Extensions के रूप में बनाए गए RPC मेथड्स में **`extension_`** prefix होता है और उन्हें Node RPC के माध्यम से निष्पादित किया जाता है।

<img src="https://mintcdn.com/tenderly/UcIYT1E5TsGcI0yz/images/node/extensions/node-ex-1.webp?fit=max&auto=format&n=UcIYT1E5TsGcI0yz&q=85&s=570531d5b0ad53c61669e319b5c64c0a" alt="Node Extensions" width="1600" height="890" data-path="images/node/extensions/node-ex-1.webp" />

आप [Dashboard](https://dashboard.tenderly.co/register?redirectTo=node-extensions) में **Node Extensions** टैब से कई तरीकों से एक Node Extension बना सकते हैं:

* **शुरुआत से बनाएं**: **Create Custom Extension** पर क्लिक करें, RPC मेथड का नाम रखें, और प्रत्येक कॉल पर निष्पादित होने वाला JavaScript/TypeScript function लिखें।
* **Web3 Action का पुनः उपयोग करें**: extension के function के रूप में गैर-प्रमाणीकृत webhook trigger वाले मौजूदा [Web3 Action](/monitoring/web3-actions/introduction) के source code का पुनः उपयोग करें।
* **लाइब्रेरी से डिप्लॉय करें**: [public Node Extensions library](https://github.com/Tenderly/node-extensions-library) से तैयार-निर्मित extension को सक्रिय करने के लिए **Add From Library** पर क्लिक करें। लाइब्रेरी extensions को edit नहीं किया जा सकता।
* **CLI के माध्यम से डिप्लॉय करें**: [Tenderly CLI](https://github.com/Tenderly/tenderly-cli) का उपयोग करके `tenderly node-extensions init` के साथ `tenderly.yaml` में extensions परिभाषित करें और `tenderly node-extensions deploy` के साथ उन्हें भेजें।

यदि आपका extension API keys या अन्य संवेदनशील मान का उपयोग करता है, तो उन्हें [Web3 Action Secrets](/monitoring/web3-actions/references/context#secrets) के रूप में स्टोर करें और उन्हें कोड में `await context.secrets.get('API_KEY')` के साथ पढ़ें। extension पर JSON-RPC पेलोड भेजने और request और response का पूर्वावलोकन करने के लिए **Test** बटन का उपयोग करें।

## संसाधन

Node RPC के साथ शुरुआत करें या इन संसाधनों के साथ यह कैसे काम करता है के बारे में सीखना जारी रखें।

<CardGroup cols={2}>
  <Card title="Simulations & Gas Estimation" href="/node-rpc/guides/simulate-json-rpc">
    JSON-RPC के माध्यम से transactions को simulate करें और सटीक gas अनुमान प्राप्त करें।
  </Card>

  <Card title="RPC Reference" href="/node-rpc/rpc-reference">
    Node RPC पर समर्थित RPC मेथड्स की विस्तृत सूची देखें।
  </Card>

  <Card title="Supported Networks" href="/platform/supported-networks">
    Node RPC पर समर्थित नेटवर्क्स की पूरी सूची देखें।
  </Card>

  <Card title="Pricing" href="/node-rpc/pricing">
    RPC मेथड्स को निष्पादित करने के लिए उपयोग किए गए compute power के आधार पर बिलिंग को समझें।
  </Card>
</CardGroup>
