---
title: "Web3 वापरून व्यवहार पाठवणे"
description: "Web3 वापरून इथेरियम व्यवहार पाठवण्यासाठी हे नवशिक्यांसाठी अनुकूल मार्गदर्शक आहे. इथेरियम ब्लॉकचेनवर व्यवहार पाठवण्यासाठी तीन मुख्य टप्पे आहेत: तयार करणे, स्वाक्षरी करणे आणि प्रसारित करणे. आपण या तिन्ही टप्प्यांबद्दल जाणून घेऊ."
author: "एलन हॅल्पर्न"
tags: ["व्यवहार", "web3.js", "Alchemy"]
skill: beginner
breadcrumb: "व्यवहार पाठवा"
lang: mr
published: 2020-11-04
source: Alchemy docs
sourceUrl: https://www.alchemy.com/docs/how-to-send-transactions-on-ethereum
---

Web3 वापरून इथेरियम व्यवहार पाठवण्यासाठी हे नवशिक्यांसाठी अनुकूल मार्गदर्शक आहे. इथेरियम ब्लॉकचेनवर व्यवहार पाठवण्यासाठी तीन मुख्य टप्पे आहेत: तयार करणे, स्वाक्षरी करणे आणि प्रसारित करणे. आपण या तिन्ही टप्प्यांबद्दल जाणून घेऊ, आशा आहे की तुमच्या सर्व प्रश्नांची उत्तरे मिळतील! या ट्युटोरियलमध्ये, आपण इथेरियम चेनवर आपले व्यवहार पाठवण्यासाठी [Alchemy](https://www.alchemy.com/) वापरणार आहोत. तुम्ही [येथे मोफत Alchemy खाते तयार करू शकता](https://auth.alchemy.com/signup).

**टीप:** हे मार्गदर्शक तुमच्या ॲपच्या _बॅकएंडवर_ तुमच्या व्यवहारांवर स्वाक्षरी करण्यासाठी आहे. जर तुम्हाला फ्रंटएंडवर तुमच्या व्यवहारांवर स्वाक्षरी करणे समाकलित करायचे असेल, तर [ब्राउझर प्रदाता सोबत Web3](https://docs.alchemy.com/reference/api-overview#with-a-browser-provider) समाकलित करणे तपासा.

## मूलभूत गोष्टी {#the-basics}

बहुतेक ब्लॉकचेन डेव्हलपर्स जेव्हा पहिल्यांदा सुरुवात करतात, तेव्हा तुम्ही व्यवहार कसा पाठवायचा (जे खूप सोपे असायला हवे) यावर काही संशोधन केले असेल आणि तुम्हाला अनेक मार्गदर्शक सापडले असतील, जे प्रत्येक वेगळ्या गोष्टी सांगत असतील आणि तुम्हाला थोडे भारावून आणि गोंधळात टाकतील. जर तुम्ही त्या परिस्थितीत असाल, तर काळजी करू नका; आपण सर्वजण कधीतरी तिथे होतो! तर, आपण सुरुवात करण्यापूर्वी, काही गोष्टी स्पष्ट करूया:

### 1\. Alchemy तुमच्या खाजगी की साठवत नाही {#alchemy-does-not-store-your-private-keys}

- याचा अर्थ असा की Alchemy तुमच्या वतीने व्यवहारांवर स्वाक्षरी करू शकत नाही आणि पाठवू शकत नाही. याचे कारण सुरक्षितता हे आहे. Alchemy तुम्हाला तुमची खाजगी की शेअर करण्यास कधीही सांगणार नाही, आणि तुम्ही तुमची खाजगी की होस्ट केलेल्या नोडसोबत (किंवा कोणाशीही) कधीही शेअर करू नये.
- तुम्ही Alchemy च्या मुख्य API चा वापर करून ब्लॉकचेनवरून वाचू शकता, परंतु त्यावर लिहिण्यासाठी तुम्हाला Alchemy द्वारे पाठवण्यापूर्वी तुमच्या व्यवहारांवर स्वाक्षरी करण्यासाठी दुसरे काहीतरी वापरावे लागेल (हे इतर कोणत्याही [नोड सेवेसाठी](/developers/docs/nodes-and-clients/nodes-as-a-service/) समान आहे).

### 2\. साइनर म्हणजे काय? {#what-is-a-signer}

- साइनर्स तुमची खाजगी की वापरून तुमच्यासाठी व्यवहारांवर स्वाक्षरी करतील. या ट्युटोरियलमध्ये आपण आपल्या व्यवहारावर स्वाक्षरी करण्यासाठी [Alchemy Web3](https://github.com/alchemyplatform/alchemy-web3) वापरणार आहोत, परंतु तुम्ही इतर कोणतीही Web3 लायब्ररी देखील वापरू शकता.
- फ्रंटएंडवर, साइनरचे एक उत्तम उदाहरण म्हणजे [मेटामास्क](https://metamask.io/) असेल, जे तुमच्या वतीने व्यवहारांवर स्वाक्षरी करेल आणि पाठवेल.
### 3\. मला माझ्या व्यवहारांवर स्वाक्षरी करण्याची आवश्यकता का आहे? {#why-do-i-need-to-sign-my-transactions}

- इथेरियम नेटवर्कवर व्यवहार पाठवू इच्छिणाऱ्या प्रत्येक वापरकर्त्याने व्यवहारावर स्वाक्षरी करणे आवश्यक आहे (त्यांची खाजगी की वापरून), जेणेकरून व्यवहाराचा उगम तोच आहे ज्याचा तो दावा करतो हे प्रमाणित करता येईल.
- या खाजगी की चे संरक्षण करणे अत्यंत महत्त्वाचे आहे, कारण त्यात प्रवेश मिळाल्यास तुमच्या इथेरियम खात्यावर पूर्ण नियंत्रण मिळते, ज्यामुळे तुम्हाला (किंवा प्रवेश असलेल्या कोणालाही) तुमच्या वतीने व्यवहार करण्याची परवानगी मिळते.

### 4\. मी माझ्या खाजगी की चे संरक्षण कसे करू? {#how-do-i-protect-my-private-key}

- तुमची खाजगी की संरक्षित करण्याचे आणि व्यवहार पाठवण्यासाठी तिचा वापर करण्याचे अनेक मार्ग आहेत. या ट्युटोरियलमध्ये आपण `.env` फाईल वापरणार आहोत. तथापि, तुम्ही खाजगी की साठवणारा वेगळा प्रदाता देखील वापरू शकता, कीस्टोअर फाईल वापरू शकता किंवा इतर पर्याय वापरू शकता.

### 5\. `eth_sendTransaction` आणि `eth_sendRawTransaction` मध्ये काय फरक आहे? {#difference-between-send-and-send-raw}

`eth_sendTransaction` आणि `eth_sendRawTransaction` हे दोन्ही इथेरियम API फंक्शन्स आहेत जे इथेरियम नेटवर्कवर व्यवहार प्रसारित करतात जेणेकरून तो भविष्यातील ब्लॉकमध्ये जोडला जाईल. ते व्यवहारांच्या स्वाक्षरी हाताळण्याच्या पद्धतीत भिन्न आहेत.

- [`eth_sendTransaction`](https://docs.web3js.org/api/web3-eth/function/sendTransaction) चा वापर _स्वाक्षरी नसलेले_ व्यवहार पाठवण्यासाठी केला जातो, याचा अर्थ असा की तुम्ही ज्या नोडला पाठवत आहात त्याने तुमची खाजगी की व्यवस्थापित केली पाहिजे जेणेकरून तो चेनवर प्रसारित करण्यापूर्वी व्यवहारावर स्वाक्षरी करू शकेल. Alchemy वापरकर्त्यांच्या खाजगी की ठेवत नसल्यामुळे, ते या पद्धतीला समर्थन देत नाहीत.
- [`eth_sendRawTransaction`](https://www.alchemy.com/docs/chains/ethereum/ethereum-api-endpoints/eth-send-raw-transaction) चा वापर आधीच स्वाक्षरी केलेल्या व्यवहारांना प्रसारित करण्यासाठी केला जातो. याचा अर्थ तुम्हाला प्रथम [`signTransaction(tx, private_key)`](https://docs.web3js.org/api/web3-eth-accounts/function/signTransaction) वापरावे लागेल, त्यानंतर त्याचा परिणाम `eth_sendRawTransaction` मध्ये पास करावा लागेल.

Web3 वापरताना, [web3.eth.sendSignedTransaction](https://docs.web3js.org/api/web3-eth/function/sendSignedTransaction) फंक्शन कॉल करून `eth_sendRawTransaction` ॲक्सेस केले जाते.

या ट्युटोरियलमध्ये आपण हेच वापरणार आहोत.

### 6\. Web3 लायब्ररी म्हणजे काय? {#what-is-the-web3-library}

- Web3.js ही मानक जेसॉन-आरपीसी कॉल्सभोवती एक रॅपर लायब्ररी आहे जी इथेरियम डेव्हलपमेंटमध्ये वापरण्यासाठी अगदी सामान्य आहे.
- वेगवेगळ्या भाषांसाठी अनेक Web3 लायब्ररी आहेत. या ट्युटोरियलमध्ये आपण [Alchemy Web3](https://github.com/alchemyplatform/alchemy-web3) वापरणार आहोत जे JavaScript मध्ये लिहिलेले आहे. तुम्ही [Ethers.js](https://docs.ethers.org/v5/) सारखे इतर पर्याय [येथे](/developers/docs/apis/javascript/) तपासू शकता.

ठीक आहे, आता आपण यापैकी काही प्रश्नांची उत्तरे मिळवली आहेत, तर आपण ट्युटोरियलकडे वळूया. Alchemy च्या [डिस्कॉर्ड्](https://discord.gg/gWuC7zB) मध्ये कधीही प्रश्न विचारण्यास संकोच करू नका!

### 7\. सुरक्षित, गॅस-ऑप्टिमाइझ केलेले आणि खाजगी व्यवहार कसे पाठवायचे? {#how-to-send-secure-gas-optimized-and-private-transactions}

- [Alchemy कडे व्यवहार संसाधनांचा एक संच आहे](https://www.alchemy.com/docs/sending-transactions). तुम्ही यांचा वापर व्यवहार पाठवण्यासाठी, व्यवहार होण्यापूर्वी त्यांचे अनुकरण (simulate) करण्यासाठी, खाजगी व्यवहार पाठवण्यासाठी आणि गॅस-ऑप्टिमाइझ केलेले व्यवहार पाठवण्यासाठी करू शकता.
- जेव्हा तुमचा व्यवहार मेमपूलमधून काढला जातो आणि चेनमध्ये जोडला जातो तेव्हा सूचना मिळवण्यासाठी तुम्ही [Alchemy webhooks](https://www.alchemy.com/docs/reference/webhooks-overview) देखील वापरू शकता.

**टीप:** या मार्गदर्शकासाठी Alchemy खाते, इथेरियम पत्ता किंवा मेटामास्क वॉलेट, Node.js आणि npm स्थापित असणे आवश्यक आहे. नसल्यास, या पायऱ्यांचे अनुसरण करा:

1.  [मोफत Alchemy खाते तयार करा](https://auth.alchemy.com/signup)
2.  [मेटामास्क खाते तयार करा](https://metamask.io/) (किंवा इथेरियम पत्ता मिळवा)
3.  [Node.js आणि npm स्थापित करा](https://nodejs.org/en/download/)
## तुमचा व्यवहार पाठवण्याच्या पायऱ्या {#steps-to-sending-your-transaction}

### 1\. Sepolia टेस्टनेटवर Alchemy ॲप तयार करा {#create-an-alchemy-app-on-the-sepolia-testnet}

तुमच्या [Alchemy डॅशबोर्डवर](https://dashboard.alchemy.com/) जा आणि तुमच्या नेटवर्कसाठी Sepolia (किंवा इतर कोणतेही टेस्टनेट) निवडून नवीन ॲप तयार करा.

### 2\. Sepolia फॉसेटमधून ETH ची विनंती करा {#request-eth-from-sepolia-faucet}

ETH प्राप्त करण्यासाठी [Alchemy Sepolia फॉसेटवरील](https://www.sepoliafaucet.com/) सूचनांचे पालन करा. तुमचा **Sepolia** इथेरियम पत्ता (मेटामास्क मधून) समाविष्ट केल्याची खात्री करा आणि दुसऱ्या नेटवर्कचा नाही. सूचनांचे पालन केल्यानंतर, तुम्हाला तुमच्या वॉलेटमध्ये ETH प्राप्त झाले आहे का ते पुन्हा तपासा.

### 3\. नवीन प्रोजेक्ट डिरेक्टरी तयार करा आणि त्यात `cd` करा {#create-a-new-project-direction}

कमांड लाईनवरून (मॅकसाठी टर्मिनल) नवीन प्रोजेक्ट डिरेक्टरी तयार करा आणि त्यात जा:

```
mkdir sendtx-example
cd sendtx-example
```

### 4\. Alchemy Web3 (किंवा कोणतीही Web3 लायब्ररी) स्थापित करा {#install-alchemy-web3}

[Alchemy Web3](https://github.com/alchemyplatform/alchemy-web3) स्थापित करण्यासाठी तुमच्या प्रोजेक्ट डिरेक्टरीमध्ये खालील कमांड चालवा:

लक्षात घ्या, जर तुम्हाला Ethers.js लायब्ररी वापरायची असेल, तर [येथील सूचनांचे पालन करा](https://www.alchemy.com/docs/how-to-send-transactions-on-ethereum).

```
npm install @alch/alchemy-web3
```

### 5\. dotenv स्थापित करा {#install-dotenv}

आपली API की आणि खाजगी की सुरक्षितपणे साठवण्यासाठी आपण `.env` फाईल वापरू.

```
npm install dotenv --save
```

### 6\. `.env` फाईल तयार करा {#create-the-dotenv-file}

तुमच्या प्रोजेक्ट डिरेक्टरीमध्ये `.env` फाईल तयार करा आणि खालील गोष्टी जोडा ("`your-api-url`" आणि "`your-private-key`" बदलून)

- तुमची Alchemy API URL शोधण्यासाठी, तुम्ही तुमच्या डॅशबोर्डवर नुकत्याच तयार केलेल्या ॲपच्या ॲप तपशील पृष्ठावर जा, वरच्या उजव्या कोपऱ्यात "View Key" वर क्लिक करा आणि HTTP URL घ्या.
- मेटामास्क वापरून तुमची खाजगी की शोधण्यासाठी, हे [मार्गदर्शक](https://metamask.zendesk.com/hc/en-us/articles/360015289632-How-to-Export-an-Account-Private-Key) तपासा.

```
API_URL = "your-api-url"
PRIVATE_KEY = "your-private-key"
```

<Alert variant="warning">
<AlertContent>
<AlertDescription>
<code>.env</code> कमिट करू नका! कृपया तुमची <code>.env</code> फाईल कोणाशीही शेअर किंवा उघड न करण्याची खात्री करा, कारण असे केल्याने तुम्ही तुमची गुपिते धोक्यात आणत आहात. जर तुम्ही व्हर्जन कंट्रोल वापरत असाल, तर तुमची <code>.env</code> एका <a href="https://git-scm.com/docs/gitignore">gitignore</a> फाईलमध्ये जोडा.
</AlertDescription>
</AlertContent>
</Alert>

### 7\. `sendTx.js` फाईल तयार करा {#create-sendtx-js}

उत्तम, आता आपला संवेदनशील डेटा `.env` फाईलमध्ये सुरक्षित असल्याने, आपण कोडिंग सुरू करूया. आपल्या व्यवहार पाठवण्याच्या उदाहरणासाठी, आपण Sepolia फॉसेटला ETH परत पाठवणार आहोत.

एक `sendTx.js` फाईल तयार करा, जिथे आपण आपला उदाहरणादाखल व्यवहार कॉन्फिगर करू आणि पाठवू, आणि त्यात खालील कोडच्या ओळी जोडा:

```
async function main() {
    require('dotenv').config();
    const { API_URL, PRIVATE_KEY } = process.env;
    const { createAlchemyWeb3 } = require("@alch/alchemy-web3");
    const web3 = createAlchemyWeb3(API_URL);
    const myAddress = '0x610Ae88399fc1687FA7530Aac28eC2539c7d6d63' //TODO: हा पत्ता तुमच्या स्वतःच्या सार्वजनिक पत्त्याने बदला

    const nonce = await web3.eth.getTransactionCount(myAddress, 'latest'); // नॉन्स 0 पासून मोजणे सुरू करतो

    const transaction = {
     'to': '0x31B98D14007bDEe637298086988A0bBd31184523', // eth परत करण्यासाठी फॉसेट पत्ता
     'value': 1000000000000000000, // 1 ETH
     'gas': 30000,
     'nonce': nonce,
     // संदेश पाठवण्यासाठी किंवा स्मार्ट कॉन्ट्रॅक्ट कार्यान्वित करण्यासाठी पर्यायी डेटा फील्ड
    };

    const signedTx = await web3.eth.accounts.signTransaction(transaction, PRIVATE_KEY);

    web3.eth.sendSignedTransaction(signedTx.rawTransaction, function(error, hash) {
    if (!error) {
      console.log("🎉 The hash of your transaction is: ", hash, "\n Check Alchemy's Mempool to view the status of your transaction!");
    } else {
      console.log("❗Something went wrong while submitting your transaction:", error)
    }
   });
}

main();
```

**ओळ 6** वरील पत्ता तुमच्या स्वतःच्या सार्वजनिक पत्त्याने बदलण्याची खात्री करा.

आता, हा कोड चालवण्यापूर्वी, आपण येथील काही घटकांबद्दल बोलूया.

- `nonce` : नॉन्स स्पेसिफिकेशनचा वापर तुमच्या पत्त्यावरून पाठवलेल्या व्यवहारांच्या संख्येचा मागोवा ठेवण्यासाठी केला जातो. सुरक्षिततेच्या उद्देशाने आणि रिप्ले हल्ले (replay attacks) टाळण्यासाठी आपल्याला याची आवश्यकता असते. तुमच्या पत्त्यावरून पाठवलेल्या व्यवहारांची संख्या मिळवण्यासाठी आपण [getTransactionCount](https://www.alchemy.com/docs/chains/ethereum/ethereum-api-endpoints/eth-get-transaction-count) वापरतो.
- `transaction`: व्यवहार ऑब्जेक्टमध्ये काही पैलू आहेत जे आपल्याला निर्दिष्ट करणे आवश्यक आहे
  - `to`: हा तो पत्ता आहे ज्यावर आपल्याला ETH पाठवायचे आहे. या प्रकरणात, आपण सुरुवातीला ज्या [Sepolia फॉसेटमधून](https://sepoliafaucet.com/) विनंती केली होती, त्यालाच ETH परत पाठवत आहोत.
  - `value`: ही ती रक्कम आहे जी आपण पाठवू इच्छितो, जी Wei मध्ये निर्दिष्ट केली आहे जिथे 10^18 Wei = 1 ETH
  - `gas`: तुमच्या व्यवहारासोबत समाविष्ट करण्यासाठी गॅसची योग्य रक्कम ठरवण्याचे अनेक मार्ग आहेत. Alchemy [webhooks](https://www.alchemy.com/docs/reference/webhooks-overview) ला समर्थन देते जे तुम्हाला ऑनचेन क्रियाकलापांबद्दल सूचित करू शकतात. मुख्यनेट व्यवहारांसाठी, समाविष्ट करण्यासाठी गॅसची योग्य रक्कम ठरवण्यासाठी सध्याच्या गॅस परिस्थिती तपासणे ही एक चांगली सवय आहे. इथेरियमवरील ऑपरेशनसाठी किमान 21000 गॅस वापरला जातो, त्यामुळे आपला व्यवहार कार्यान्वित होईल याची खात्री करण्यासाठी आपण येथे 30000 टाकतो.
  - `nonce`: वरील नॉन्सची व्याख्या पहा. नॉन्स 0 पासून मोजणे सुरू करतो.
  - [पर्यायी] data: तुमच्या हस्तांतरणासोबत अतिरिक्त माहिती पाठवण्यासाठी, किंवा स्मार्ट कॉन्ट्रॅक्ट कॉल करण्यासाठी वापरला जातो, शिल्लक हस्तांतरणासाठी आवश्यक नाही, खालील टीप तपासा.
- `signedTx`: आपल्या व्यवहार ऑब्जेक्टवर स्वाक्षरी करण्यासाठी आपण आपल्या `PRIVATE_KEY` सोबत `signTransaction` पद्धत वापरू
- `sendSignedTransaction`: एकदा आपल्याकडे स्वाक्षरी केलेला व्यवहार आला की, आपण `sendSignedTransaction` वापरून तो पुढील ब्लॉकमध्ये समाविष्ट करण्यासाठी पाठवू शकतो

**डेटावरील एक टीप**
इथेरियममध्ये पाठवले जाऊ शकणारे दोन मुख्य प्रकारचे व्यवहार आहेत.

- शिल्लक हस्तांतरण: एका पत्त्यावरून दुसऱ्या पत्त्यावर ETH पाठवणे. कोणत्याही डेटा फील्डची आवश्यकता नाही, तथापि, जर तुम्हाला तुमच्या व्यवहारासोबत अतिरिक्त माहिती पाठवायची असेल, तर तुम्ही ती माहिती या फील्डमध्ये HEX फॉरमॅटमध्ये समाविष्ट करू शकता.
  - उदाहरणार्थ, समजा आपल्याला एखाद्या IPFS दस्तऐवजाचा हॅश इथेरियम चेनवर लिहायचा आहे जेणेकरून त्याला एक अपरिवर्तनीय टाइमस्टॅम्प देता येईल. तेव्हा आपले डेटा फील्ड असे दिसायला हवे data: `web3.utils.toHex(‘IPFS hash‘)`. आणि आता कोणीही चेनवर क्वेरी करू शकतो आणि तो दस्तऐवज कधी जोडला गेला हे पाहू शकतो.
- स्मार्ट कॉन्ट्रॅक्ट व्यवहार: चेनवर काही स्मार्ट कॉन्ट्रॅक्ट कोड कार्यान्वित करणे. या प्रकरणात, डेटा फील्डमध्ये तुम्ही कार्यान्वित करू इच्छित असलेले स्मार्ट फंक्शन, कोणत्याही पॅरामीटर्ससह असावे.
  - व्यावहारिक उदाहरणासाठी, [हॅलो वर्ल्ड स्मार्ट कॉन्ट्रॅक्ट ट्युटोरियल](/developers/tutorials/hello-world-smart-contract/) तपासा.
### 8\. `node sendTx.js` वापरून कोड चालवा {#run-the-code-using-node-sendtx-js}

तुमच्या टर्मिनल किंवा कमांड लाईनवर परत जा आणि चालवा:

```
node sendTx.js
```

### 9\. मेमपूलमध्ये तुमचा व्यवहार पहा {#see-your-transaction-in-the-mempool}

तुमच्या Alchemy डॅशबोर्डमध्ये [मेमपूल पृष्ठ](https://dashboard.alchemy.com/mempool) उघडा आणि तुमचा व्यवहार शोधण्यासाठी तुम्ही तयार केलेल्या ॲपनुसार फिल्टर करा. येथे आपण आपला व्यवहार प्रलंबित (pending) स्थितीमधून माईंड (mined) स्थितीत (यशस्वी झाल्यास) किंवा अयशस्वी झाल्यास वगळलेल्या (dropped) स्थितीत जाताना पाहू शकतो. ते "All" वर ठेवण्याची खात्री करा जेणेकरून तुम्ही "mined", "pending", आणि "dropped" व्यवहार कॅप्चर करू शकाल. तुम्ही `0x31b98d14007bdee637298086988a0bbd31184523` या पत्त्यावर पाठवलेले व्यवहार शोधून देखील तुमचा व्यवहार शोधू शकता.

एकदा तुम्हाला तुमचा व्यवहार सापडल्यानंतर त्याचे तपशील पाहण्यासाठी, tx हॅश निवडा, जे तुम्हाला अशा दिसणाऱ्या दृश्याकडे घेऊन जाईल:

![मेमपूल वॉचर स्क्रीनशॉट](./mempool.png)

तेथून तुम्ही लाल वर्तुळ केलेल्या आयकॉनवर क्लिक करून तुमचा व्यवहार Etherscan वर पाहू शकता!

**यिप्पी! तुम्ही नुकताच Alchemy वापरून तुमचा पहिला इथेरियम व्यवहार पाठवला आहे 🎉**

_या मार्गदर्शकाबद्दल अभिप्राय आणि सूचनांसाठी, कृपया Alchemy च्या [डिस्कॉर्ड्](https://discord.gg/A39JVCM) वर Elan ला संदेश पाठवा!_

_मूळतः Alchemy द्वारे प्रकाशित._
