> ## 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 Access

> Node RPC के माध्यम से Mainnet तक पहुँच के साथ Web3 Action सेट अप करना सीखें।

आप अपने Web3 Action functions से सीधे [Node RPC](/node-rpc/overview) तक पहुँच सकते हैं। यह आपको Web3 Actions के माध्यम से स्वचालित रूप से Mainnet या testnets पर transactions भेजने और on-chain data पढ़ने की अनुमति देता है।

blockchain तक पहुँचने के लिए Web3 Actions सेट अप करने के लिए न्यूनतम setup की आवश्यकता होती है, एक single Javascript variable। RPC URLs को copy/paste करने, secret keys प्रबंधित करने आदि की चिंता करने की आवश्यकता नहीं है। Tenderly पृष्ठभूमि में आपके लिए यह सब संभालता है।

इस गाइड में, आप सीखेंगे कि Mainnet तक पहुँच के लिए Tenderly के production node का उपयोग करने के लिए अपने Web3 Action function code को कैसे कॉन्फ़िगर करें।

## Context में Node RPC

Web3 Actions में, Tenderly के node तक पहुँच `context` object के माध्यम से सक्षम है। यहाँ [Web3 Actions Context](/monitoring/web3-actions/references/context) के बारे में अधिक जानें।

`context` object में `gateways` नामक एक property होती है जो आपको `getGateway()` method तक पहुँच देती है। इस method के लिए एक argument `Network` की आवश्यकता होती है, जिसका उपयोग उस network को निर्दिष्ट करने के लिए किया जाता है जिसे आप access करना चाहते हैं।

`Network` argument भी एक object है जो आपको Node RPC में सभी समर्थित networks तक पहुँच देता है:

* `Network.MAINNET`
* `Network.GOERLI`
* `Network.SEPOLIA`
* `Network.HOLESKY`
* `Network.POLYGON`
* `Network.MUMBAI`
* `Network.OPTIMISTIC`
* `Network.OPTIMISTIC_GOERLI`
* `Network.ARBITRUM_SEPOLIA`
* `Network.BASE`
* `Network.BASE_GOERLI`
* `Network.BOBA_ETHEREUM`
* `Network.BOBA_GOERLI`
* `Network.BOBA_BINANCE`
* `Network.BOBA_BINANCE_RIALTO`

आप **@tenderly/actions** npm package में network list [यहाँ](https://github.com/Tenderly/tenderly-actions/blob/main/packages/actions/src/actions.ts) देख सकते हैं।

यह प्रदर्शित करने के लिए कि यह सब कैसे एक साथ आता है, यहाँ एक उदाहरण Javascript variable है जो Mainnet तक पहुँचने के लिए कॉन्फ़िगर किया गया है:

```jsx title="example.jsx" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
const defaultGatewayURL = context.gateways.getGateway(Network.MAINNET);
```

## Mainnet तक पहुँचने के लिए उदाहरण Web3 Action function

आइए एक simple Web3 Action बनाएँ जो Mainnet पर एक नया block mine होने पर हर बार trigger होगा। हर बार जब कोई block mine होगा, Web3 Action custom code, जिसे "function" भी कहा जाता है, execute करेगा। यहाँ [Web3 Action functions](/monitoring/web3-actions/references/functions-events-triggers#action-functions) के बारे में अधिक पढ़ें।

सरलता के लिए, नीचे दिया गया उदाहरण function mine किए गए latest block का block number प्राप्त करेगा और इसे console में log करेगा।

आप code की प्रत्येक line क्या करती है, यह समझने के लिए comments पढ़ सकते हैं।

```jsx title="example.jsx" showLineNumbers theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
// Required libraries that must be included for the code to work
const ethers = require('ethers');
const { Network } = require('@tenderly/actions');

// Do not change the default 'actionFn' name.
const actionFn = async (context, blockEvent) => {
  // Setting a variable that will store the Node RPC RPC URL and secret key
  const defaultGatewayURL = context.gateways.getGateway(Network.MAINNET);

  // Using the Ethere.js provider class to call the RPC URL
  const provider = new ethers.providers.JsonRpcProvider(defaultGatewayURL);

  // Logging the block number of the latest mined block
  console.log(await provider.getBlockNumber());
};

// Exporting the default module. Do not change this.
module.exports = { actionFn };
```

इसके बाद, **Dashboard** → **Web3 Actions** → **Add Action** पर जाएँ।

<Frame caption="Web3 Action set up wizard">
  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/web3-actions/web3-gateway-access-1.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=cd389b5d5a1b03614749f8109efc0564" alt="Web3 Action set up wizard" width="924" height="516" data-path="images/web3-actions/web3-gateway-access-1.webp" />
</Frame>

* Trigger Type के लिए, **Block** चुनें।
* **Function** textbox में, ऊपर दिए गए उदाहरण से code पेस्ट करें और **Next** पर क्लिक करें।

<Frame caption="Custom code that is executed when the Web3 Action is triggered">
  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/web3-actions/web3-gateway-access-2.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=59de42e2f199d74202869440163cd350" alt="Custom code that is executed when the Web3 Action is triggered" width="924" height="516" data-path="images/web3-actions/web3-gateway-access-2.webp" />
</Frame>

* network का चयन करके **Trigger** सेट करें। हमारे मामले में, वह **Mainnet** है।
* साथ ही, Tenderly को Web3 Action function को कितनी बार execute करना है, यह बताने के लिए **Block Period** सेट करें। उदाहरण के लिए, यदि आप 1 डालते हैं, तो प्रत्येक block mine होने पर एक बार Web3 Action execute होगी।
* **Info** fields में, Web3 Action के लिए **एक नाम जोड़ें** और वैकल्पिक विवरण।
* आप एक **Destination** भी सेट कर सकते हैं जहाँ आप Web3 Action के विफल executions के बारे में [notifications प्राप्त करेंगे](/monitoring/web3-actions/references/notifications)।
* अंत में, Web3 Action को deploy करने के लिए **Create पर क्लिक करें**।

**Execution History** पेज से, हम देख सकते हैं कि Web3 Action सफलतापूर्वक execute हो रहा है।

<Frame caption="Web3 Action execution history">
  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/web3-actions/web3-gateway-access-3.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=6c237dfe44b6ec64d1f793d57b05d224" alt="Web3 Action execution history" width="924" height="516" data-path="images/web3-actions/web3-gateway-access-3.webp" />
</Frame>

आप execute की गई Web3 Action और JSON में payload के बारे में विवरण देखने के लिए **Execution ID** पर क्लिक कर सकते हैं।

### उपयोगी संसाधन

अपनी Web3 Actions को प्रबंधित करने और execution errors की निगरानी करने के तरीके के बारे में अधिक जानकारी के लिए, निम्न guides पढ़ें:

* [Web3 Actions का प्रबंधन](/monitoring/web3-actions/references/lifecycle)
* [Web3 Actions के लिए Error Reporting](/monitoring/web3-actions/references/error-reporting)
