> For the complete documentation index, see [llms.txt](https://docs.qr.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.qr.xyz/qr-hi/under-the-hood/erc-4337.md).

# ERC-4337 गहराई से

> अकाउंट एब्स्ट्रैक्शन मानक — वह तकनीक जो क्रिप्टो को सरल बनाती है।

***

## ERC-4337 क्या है?

**ERC-4337** है, के लिए एक एथेरियम मानक **अकाउंट एब्स्ट्रैक्शन**. यह Ethereum प्रोटोकॉल में कोई बदलाव किए बिना, विस्तारित कार्यक्षमता वाले "स्मार्ट वॉलेट" (स्मार्ट अकाउंट्स) सक्षम बनाता है।

ERC-4337 से पहले, वॉलेट साधारण थे — एक कुंजी एक लेनदेन पर हस्ताक्षर करती थी, लेनदेन का भुगतान ETH में होता था। ERC-4337 के साथ, वॉलेट बन जाता है **प्रोग्रामेबल**.

***

## मुख्य घटक

### UserOperation

नियमित लेनदेन के बजाय, उपयोगकर्ता एक **UserOperation** — वह विवरण कि वे क्या करना चाहते हैं:

```
UserOperation {
  sender         स्मार्ट अकाउंट का पता
  nonce          ऑपरेशन अनुक्रम संख्या
  initCode       SA बनाने का कोड (यदि अभी तक तैनात नहीं है)
  callData       क्या निष्पादित करना है (ट्रांसफर, स्वैप, आदि)

  callGasLimit           निष्पादन के लिए गैस सीमा
  verificationGasLimit   सत्यापन के लिए गैस सीमा
  preVerificationGas     सत्यापन से पहले गैस
  maxFeePerGas           अधिकतम गैस मूल्य
  maxPriorityFeePerGas   प्राथमिकता शुल्क

  paymasterAndData   पेमास्टर डेटा (यदि प्रायोजित)
  signature          मालिक के हस्ताक्षर
}
```

### EntryPoint

यह **एकल प्रवेश बिंदु** — एक स्मार्ट कॉन्ट्रैक्ट जो:

1. Bundler से UserOperations प्राप्त करता है
2. मालिक के हस्ताक्षर की पुष्टि करता है
3. स्मार्ट अकाउंट के माध्यम से ऑपरेशन निष्पादित करता है
4. पेमास्टर के साथ गैस का निपटान करता है

EntryPoint सभी EVM नेटवर्क्स पर वही कॉन्ट्रैक्ट है (मानकीकृत पता)।

### Bundler

यह **पैकेजिंग सेवा** — उपयोगकर्ताओं से UserOperations एकत्र करता है और उन्हें EntryPoint तक एक सामान्य लेनदेन के रूप में ब्लॉकचेन पर सबमिट करता है।

### Paymaster

यह **गैस प्रायोजक** — एक स्मार्ट कॉन्ट्रैक्ट जो उपयोगकर्ता के लिए गैस का भुगतान कर सकता है। अनुमति पर हस्ताक्षर करता है `paymasterAndData`, और EntryPoint उससे गैस वसूलता है।

***

## लेनदेन प्रवाह

```
┌──────────┐     ┌──────────┐     ┌──────────┐     ┌──────────┐
│          │     │          │     │          │     │          │
│  वॉलेट  │────▶│ पेमास्टर│────▶│ बंडलर  │────▶│EntryPoint│
│  ऐप     │     │          │     │          │     │(ऑन-चेन) │
│          │     │          │     │          │     │          │
└──────────┘     └──────────┘     └──────────┘     └──────────┘
                                                        │
  1. बनाएँ        2. गैस +     3. mempool में   4. सत्यापित करें
     UserOp          पेमास्टर       सबमिट करें       और निष्पादित करें
                     डेटा
```

### विस्तार से:

1. **वॉलेट ऐप** एक UserOperation बनाता है जिसमें `callData` (क्या करना है) और `nonce`
2. **Paymaster** गैस डेटा और अपना हस्ताक्षर जोड़ता है (`paymasterAndData`)
3. वॉलेट ऐप **हस्ताक्षर करता है** UserOp हैश पर EOA कुंजी से
4. **Bundler** साइन किए गए UserOp को स्वीकार करता है और उसे ब्लॉकचेन पर सबमिट करता है
5. **EntryPoint** हस्ताक्षर सत्यापित करता है → callData निष्पादित करता है → गैस के लिए पेमास्टर से शुल्क लेता है

***

## लेट डिप्लॉयमेंट

स्मार्ट अकाउंट को पहले से बनाने की आवश्यकता नहीं है। पहले लेनदेन पर, `initCode` UserOperation में तैनाती निर्देश होता है:

```
पहला लेनदेन:
  initCode = [factory.createAccount(owner, salt)]  ← SA तैनात करें
  callData = [transfer(to, amount)]                ← और तुरंत ट्रांसफर निष्पादित करें
```

Bundler और EntryPoint दोनों क्रियाओं को एक ही लेनदेन में संभालते हैं।

***

## CREATE2 — नियतात्मक पता

स्मार्ट अकाउंट का पता निकाला जाता है **गणितीय रूप से**, बनने से पहले:

```
SA_address = CREATE2(factory, keccak256(owner + salt))
```

समान पैरामीटर = समान पता पर **किसी भी** EVM नेटवर्क। इसी कारण आपका SA पता Base, Arbitrum, Polygon और सभी अन्य पर समान है।

***

## बैच ऑपरेशन्स

स्मार्ट अकाउंट निष्पादित कर सकता है **एकाधिक कॉल** एक ही UserOperation में:

```
UserOperation.callData = executeBatch([
  approve(USDC, spender, amount),
  swap(USDC, ETH, amount),
  collectFee(treasury, feeAmount)
])
```

तीन ऑपरेशन — एक हस्ताक्षर, एक लेनदेन, एक गैस भुगतान।

***

## ERC-4337 के लाभ

| विशेषता             | सामान्य वॉलेट (EOA) | स्मार्ट अकाउंट (ERC-4337) |
| ------------------- | :-----------------: | :-----------------------: |
| गैस भुगतान          |       केवल ETH      |    ETH, USDC, या मुफ्त    |
| बैच ऑपरेशन्स        |         नहीं        |            हाँ            |
| कस्टम लॉजिक         |         नहीं        |            हाँ            |
| रिकवरी              |   केवल सीड फ़्रेज़  |  सोशल रिकवरी (भविष्य में) |
| सभी चेन पर समान पता |         हाँ         |       हाँ (CREATE2)       |
| प्रायोजन            |         नहीं        |         Paymaster         |
