36 में से अध्याय 36
संक्षिप्त संस्करण
28 अप्रैल, 2026 को, Polymarket ने Polygon पर अपने सेटलमेंट कोलैटरल को USDC.e (ब्रिज किया गया USDC टोकन, कॉन्ट्रैक्ट 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) से बदलकर pUSD कर दिया, जो Polymarket द्वारा जारी एक स्टेबलकॉइन है और native USDC के लिए 1:1 रिडीमेबल है। वेब-ऐप ट्रेडर्स को कुछ भी नहीं करना पड़ा - स्नैपशॉट ब्लॉक पर बैलेंस और पोज़िशन अपने आप कन्वर्ट हो गए। API और बॉट ऑपरेटरों को अपडेट करना होगा: हर CLOB ऑर्डर सिग्नेचर के अंदर कोलैटरल एसेट पता बदल गया, USDC.e के खिलाफ साइन किए गए पुराने ऑर्डर रद्द कर दिए गए, और py-clob-client 0.40 या नया आवश्यक है। यह गाइड उस सटीक कोड, कॉन्ट्रैक्ट, और अप्रूवल बदलावों के माध्यम से ले जाती है जो कटओवर के दौरान और उसके बाद भी बॉट को चलाए रखने के लिए चाहिए।
भाग 1: तीन स्टेबलकॉइन, एक Polygon
माइग्रेशन से पहले, Polygon पर Polymarket के दायरे में तीन USD स्टेबलकॉइन मौजूद थे। अंतर समझना यह जानने का पहला कदम है कि Polymarket ने venues क्यों बदले।
| Token | Issuer | Contract on Polygon | Reserve type |
|---|---|---|---|
| USDC.e | Polygon PoS bridge | 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 | Ethereum mainnet से ब्रिज किया गया |
| USDC (native) | Circle | 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 | नेटिव, सीधे Polygon पर जारी किया गया |
| pUSD | Polymarket Treasury | See docs.polymarket.com/pusd | नेटिव USDC द्वारा 1:1 समर्थित, मासिक attestation |
Polymarket ने मूल रूप से USDC.e को इसलिए चुना क्योंकि 2020 में लॉन्च के समय Polygon पर यही प्रमुख USDC वेरिएंट था। बाद में Circle ने Polygon पर सीधे नेटिव USDC जारी किया और ब्रिज किए गए वेरिएंट के अंततः चरणबद्ध हटाए जाने का संकेत दिया। हर market को USDC.e में settle करना जारी रखने से Polymarket को bridge के अचानक बंद होने के दीर्घकालिक जोखिम का सामना करना पड़ता। Polymarket-नियंत्रित स्टेबलकॉइन पर माइग्रेट करने से यह समस्या हल होती है और भविष्य की product features (जैसे perps margin, vault deposits, cross-chain receipts) सक्षम होती हैं, जो एक ही unit of account साझा करती हैं।
भाग 2: pUSD क्या है (और क्या नहीं है)
pUSD एक मानक Polygon पर ERC-20 टोकन (चेन आईडी 137) है, 6 दशमलव के साथ, जो USDC जैसी ही सटीकता रखता है। इसे केवल Polymarket Treasury कॉन्ट्रैक्ट द्वारा mint किया जा सकता है और यह किसी भी समय native USDC के लिए 1:1 पर redeemable है, conversion पर कोई fee नहीं (network gas still applies)। pUSD को backing देने वाला reserve segregated accounts में रखा जाता है और third-party attestation के साथ monthly reported किया जाता है।
pUSD नहीं है एक algorithmic स्टेबलकॉइन (stablecoin), crypto के साथ over-collateralized नहीं है, और yield-bearing भी नहीं है। यदि आप Polymarket के बाहर pUSD रखते हैं, तो आपको इसे native USDC के लिए Polymarket-issued IOU के रूप में सोचना चाहिए - platform के अंदर उपयोगी, demand पर redeemable, लेकिन external wallet में long-term रखने का कोई लाभ नहीं।
docs.polymarket.com/pusd-audit पर प्रकाशित किए जाते हैं। बड़े balances को long-term रखने से पहले दोनों की verify करें।भाग 3: वेब-ऐप ट्रेडरों ने क्या देखा
अगर आप केवल polymarket.com के माध्यम से ट्रेड करते हैं, तो माइग्रेशन दिखाई ही नहीं दिया। 28 अप्रैल, 2026 के स्नैपशॉट ब्लॉक पर:
- Polymarket प्रॉक्सी वॉलेट में रखी हर USDC.e बैलेंस को 1:1 पर एटॉमिक रूप से pUSD में बदल दिया गया।
- ओपन पोज़िशनों ने वही डॉलर मूल्य, वही आउटकम ऑड्स, और वही समाप्ति बनाए रखी। कंडीशनल टोकन IDs नहीं बदले।
- USDC.e में अंकित रेस्टिंग ऑर्डर स्नैपशॉट पर रद्द कर दिए गए। माइग्रेशन के बाद नए ऑर्डर अपने-आप pUSD के खिलाफ साइन होते हैं।
- बाहरी वॉलेट्स में निकासी USDC.e भेजने से बदलकर नेटिव USDC भेजने पर आ गई (या, अनुरोध पर, रॉ pUSD - अधिकांश उपयोगकर्ताओं को इसकी कभी आवश्यकता नहीं पड़ेगी)।
किसी सिग्नेचर, ट्रांज़ैक्शन, या सेटिंग्स बदलाव की आवश्यकता नहीं थी। जो रेस्टिंग लिमिट ऑर्डर आपके लिए महत्वपूर्ण थे, उन्हें माइग्रेशन के बाद मैन्युअल रूप से फिर से लगाना चाहिए; रद्दीकरण एक बार की घटना थी।
भाग 4: API और Bot Operators - महत्वपूर्ण परिवर्तन
यह वह हिस्सा है जो आप कार्रवाई नहीं करेंगे तो bot को तोड़ देगा।
0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174)। migration के बाद, यह pUSD है। पुराने address के खिलाफ signed order CLOB पर signature verification में fail होगा और "invalid मेकर (maker) asset" या "signature mismatch" error लौटाएगा।py-clob-client अपग्रेड करें
Polymarket ने cutover से दो हफ्ते पहले पूर्ण pUSD support के साथ py-clob-client 0.40.0 प्रकाशित किया। migration के अगले दिन 0.34.x line को retire कर दिया गया।
# pUSD-aware release पर bump करें
pip install --upgrade "py-clob-client>=0.40.0"
# wired collateral asset सत्यापित करें
python -c "from py_clob_client.constants import POLYGON; \
print('pUSD address:', POLYGON.get('collateral'))"
नया SDK startup पर chain configuration से कोलैटरल (collateral) address खींचता है, इसलिए आपको कुछ hard-code करने की ज़रूरत नहीं है। अगर आपने किसी पुराने version को fork या pin किया है, तो सबसे सुरक्षित कदम है lockfile हटाना, latest constants module के साथ reinstall करना, और अपना test suite फिर से चलाना।
allowances फिर से approve करें
आपके Polymarket proxy wallet को आपके trading account → CTF Exchange contract से pUSD token के लिए ERC-20 allowance चाहिए। USDC.e के लिए पुराना allowance अभी भी on-chain मौजूद है, लेकिन पूरी तरह बेकार है: CLOB उसका उपयोग नहीं करेगा। नए pUSD allowance के बिना, हर order "INSUFFICIENT_ALLOWANCE" लौटाता है।
from py_clob_client.client import ClobClient
client = ClobClient(
host="https://clob.polymarket.com",
chain_id=137,
key=os.environ["POLY_PRIVATE_KEY"],
funder=os.environ["POLY_FUNDER"],
signature_type=1, # Magic-link accounts के लिए POLY_PROXY
)
client.set_api_creds(client.create_or_derive_api_creds())
# One-time: CTF Exchange contract के लिए pUSD approve करें
# (Helper py-clob-client 0.40 में जोड़ा गया)
client.update_balance_allowance(asset_type="COLLATERAL")
API credentials refresh करें
मौजूदा API keys काम करती रहेंगी, लेकिन अगर आपने 1 अप्रैल से पहले credentials derive किए थे तो precaution के तौर पर उन्हें rotate करना चाहिए: अब L1 ECDSA signature एक domain से bind होती है जिसमें नया collateral address शामिल है। सबसे सरल तरीका:
creds = client.create_or_derive_api_creds() # idempotent re-derive
client.set_api_creds(creds)
# अपने .env में persist करें
print(creds.api_key, creds.api_secret, creds.api_passphrase)
भाग 5: माइग्रेशन के बाद अपने बॉट की सत्यापन
किसी भी साइजिंग लॉजिक को असली पैसे पर लागू करने से पहले यह न्यूनतम स्मोक टेस्ट चलाएँ:
# 1. प्रॉक्सी वॉलेट पर pUSD बैलेंस की पुष्टि करें
from py_clob_client.client import ClobClient
client = ClobClient(...) # जैसा ऊपर
balance = client.get_balance_allowance(params={"asset_type": "COLLATERAL"})
print("pUSD बैलेंस (raw):", balance["balance"])
print("एक्सचेंज के लिए अलाउंस:", balance["allowance"])
# 2. टच से काफी दूर $1 का लिमिट ऑर्डर लगाएँ
from py_clob_client.clob_types import OrderArgs
order = client.create_order(OrderArgs(
token_id=test_token_id,
price=0.05, # बाजार के कहीं भी पास नहीं
size=20, # $0.05 पर $1 का notional
side="BUY",
))
resp = client.post_order(order)
print(resp)
# 3. रद्द करें और पुष्टि करें
client.cancel(order_id=resp["orderID"])
यदि तीनों कॉल सफल हो जाती हैं, तो आपकी वायरिंग ठीक है: SDK ने pUSD के विरुद्ध साइन किया, अलाउंस पहचाना गया, और ऑर्डर लेजर सुसंगत है। धीरे-धीरे फिर से स्केल अप करें।
भाग 6: सामान्य त्रुटियाँ और सुधार
| त्रुटि या लक्षण | कारण | सुधार |
|---|---|---|
signature verification failed | ऑर्डर USDC.e EIP-712 डोमेन के विरुद्ध साइन किया गया | py-clob-client को 0.40+ पर अपग्रेड करें; constants module को फिर से लोड करें |
हर ऑर्डर पर INSUFFICIENT_ALLOWANCE | आपके proxy से CTF Exchange को कोई pUSD allowance नहीं | update_balance_allowance(asset_type="COLLATERAL") एक बार चलाएँ |
invalid maker asset | हार्ड-कोड किया गया USDC.e पता अभी भी आपकी config में है | किसी भी हार्ड-कोड किए गए collateral address को SDK constant से बदलें |
| वॉलेट migration के बाद USDC.e balance > 0 दिखाता है | तीसरे पक्ष के transfer से बचे हुए "dust" tokens | USDC.e को Circle के CCTP पर वापस native USDC में bridge करें, या उसे वैसे ही छोड़ दें |
| WebSocket reconnect से empty book बनता है | पुराने subscription ने snapshot से पहले की stale market state का उपयोग किया था | local cache हटाएँ, REST book फिर से fetch करें, फिर resubscribe करें |
| external wallet में withdraw करने पर USDC के बजाय pUSD दिखता है | आपने withdraw modal में "USDC" की बजाय "pUSD" चुना | "USDC" चुनें - bridge pUSD → native USDC को 1:1 पर convert करता है |
भाग 7: कंडीशनल टोकन, ऑर्डर आईडी, और अन्य चीजें जो नहीं बदलीं
रीफैक्टर के दायरे को ईमानदार रखने के लिए, यहां उन पहचानकर्ताओं की सूची है जो माइग्रेशन के दौरान स्थिर हैं:
- Conditional Token contract (CTF): समान पता। आपकी YES / NO ERC-1155 पोज़िशन अपरिवर्तित हैं।
- condition_id and question_id: मार्केट पैरामीटर से निर्धारित; कोलेटरल स्वैप से प्रभावित नहीं।
- token_id (outcome): condition_id + outcome index से व्युत्पन्न; अपरिवर्तित।
- Polymarket प्रॉक्सी वॉलेट पता: वही पता; वही Gnosis Safe-style कोड।
- API key, API secret, API passphrase: अभी भी मान्य (घुमाने की सिफारिश; आवश्यक नहीं)।
- WebSocket schemas: समान; नया
assetफ़ील्ड fill events में "USDC.e" के बजाय "pUSD" पढ़ता है। - Gamma और Data APIs: अनऑथेंटिकेटेड, अपरिवर्तित। उन्होंने कभी कोलेटरल टोकन का सीधे संदर्भ नहीं दिया।
भाग 8: कर और बहीखाता के निहितार्थ
अधिकांश न्यायक्षेत्रों में USDC.e का pUSD में स्वत: रूपांतरण USD-आधारित स्टेबलकॉइन का 1:1 अनुपात में समान-प्रकार स्वैप होता है और इससे कोई कर योग्य घटना नहीं बनती। आपका लागत आधार और होल्डिंग अवधि आगे भी बनी रहती है।
फिर भी, दो बहीखाता संबंधी बातों पर ध्यान देना चाहिए:
- अपने लेजर स्कीमा को अपडेट करें। कोई भी कर टूल, SQLite लेजर, या अकाउंटेंट एक्सपोर्ट जो Polygon लेनदेन को USDC.e कॉन्ट्रैक्ट के आधार पर फ़िल्टर करता है, वह माइग्रेशन के बाद के हर लेनदेन को चुपचाप मिस कर देगा। pUSD कॉन्ट्रैक्ट पते को एक उपनाम के रूप में जोड़ें।
- स्नैपशॉट रूपांतरण को एनोटेट करें। भले ही अधिकांश व्यवस्थाओं में यह कर योग्य न हो, फिर भी अपने रिकॉर्ड में रूपांतरण को स्पष्ट रूप से लॉग करें: राशि, ब्लॉक, टाइमस्टैम्प, और एक नोट कि यह 1:1 स्टेबलकॉइन माइग्रेशन है। अगर आपका न्यायक्षेत्र बाद में इस पर प्रश्न करता है, तो आप एक साफ ऑडिट ट्रेल चाहते हैं।
इज़राइली ट्रेडर्स को ITA-विशिष्ट रिपोर्टिंग के लिए Tax Guide से परामर्श करना चाहिए; माइग्रेशन स्वयं मानक उपचार को नहीं बदलता, लेकिन कॉन्ट्रैक्ट-पता परिवर्तन स्वचालित रिपोर्टिंग टूल्स के लिए महत्वपूर्ण है।
भाग 9: परिवर्तन को जीने वाले ऑपरेटर्स से प्रो टिप्स
- requirements.txt में py-clob-client को
>=0.40,<0.50पर पिन करें। 0.40 लाइन वह न्यूनतम है जो pUSD ऑर्डरों पर सही तरीके से साइन करती है; ऊपरी सीमा पिन करने से भविष्य के किसी breaking change से सुरक्षा मिलती है। - कम-वॉल्यूम वाले विंडो के दौरान allowances को फिर से approve करें।
update_balance_allowanceकॉल एक Polygon ट्रांज़ैक्शन है; इसे तेज़ market move के दौरान करना गैस spike को न्योता देना है। - 28 अप्रैल से पहले अपने USDC.e balance का snapshot लें। भले ही conversion automatic हो, एक verifiable pre-snapshot balance किसी भी reconciliation issue पर dispute करने का सबसे साफ़ तरीका है।
- snapshot से पहले resting orders को manually cancel करें। वैसे भी venue ने उन्हें cancel कर दिया होता; खुद ऐसा करने से "system cancel" लाइन की बजाय आपके पास एक साफ़ ledger entry होती है।
- stale dashboards पर नज़र रखें। तीसरे-पक्ष के Polymarket dashboards (PolymarketAnalytics, Polynance, आदि) को pUSD events को फिर से parse करने में दो से तीन दिन लगे। आपका bot का local DB कुछ दिनों तक public dashboards से आगे हो सकता है।
- USDC.e dust को अपने शेड्यूल पर bridge करें। ज़्यादातर खातों में पुराने fee rebates या peer transfers से कुछ सेंट का बचा हुआ USDC.e होता है। Circle के CCTP या standard Polygon Portal bridge का उपयोग करें - कोई जल्दी नहीं।
- अपने block-explorer alerts में पुराना USDC.e address बनाए रखें। अगर migration के बाद कभी आपके proxy से USDC.e में कुछ भी sweep होता है, तो वह एक red flag है जिसकी तुरंत जाँच करनी चाहिए।
अब क्या?
- Polymarket API गाइड - पूर्ण API गाइड, pUSD के लिए अपडेट किया गया
- डिपॉज़िट गाइड - USDC जमा करना और ऐप के अंदर pUSD प्राप्त करना
- विड्रॉ गाइड - pUSD को मूल USDC के रूप में बाहरी वॉलेट में निकालना
- टूल्स & संसाधन - तीसरे पक्ष के डैशबोर्ड अब pUSD के लिए अपडेट किए गए हैं
- शब्दावली - यहाँ उपयोग किए गए हर शब्द की सरल हिंदी में परिभाषाएँ
मुख्य निष्कर्ष
Polymarket pUSD माइग्रेशन किसी भी ऐसे ऑपरेटर के लिए, जो पहले से Polymarket बॉट चलाता है, कम जोखिम वाला एक बार का रिफैक्टर है। py-clob-client को 0.40+ पर अपग्रेड करें, pUSD अलाउंस को फिर से अप्रूव करें, $1 का स्मोक टेस्ट चलाएँ, और फिर से शुरू करें। नीचे की इन्फ्रास्ट्रक्चर (CTF, कंडीशन IDs, टोकन IDs, API keys) नहीं बदली है, इसलिए दायरा छोटा है और रोलबैक की प्रक्रिया साफ है।











