36 میں سے 36واں باب
مختصر ورژن
28 اپریل، 2026 کو Polymarket نے Polygon پر اپنے تصفیہ کولیٹرل کو USDC.e (بریج کیا ہوا USDC ٹوکن، کنٹریکٹ 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) سے pUSD میں منتقل کر دیا، جو Polymarket کا جاری کردہ اسٹیبل کوائن ہے اور native USDC کے بدلے 1:1 ریڈی ایم کیا جا سکتا ہے۔ ویب ایپ کے ٹریڈرز نے کچھ نہیں کیا - بیلنس اور پوزیشنز snapshot block پر خودکار طور پر convert ہو گئیں۔ API اور bot operators کو اپ ڈیٹ کرنا ہوگا: ہر CLOB order signature کے اندر ضمانت (collateral) asset address بدل گیا، پرانے آرڈرز جو USDC.e کے خلاف sign کیے گئے تھے cancel ہو گئے، اور py-clob-client 0.40 یا اس سے نئی ورژن درکار ہے۔ یہ گائیڈ اس exact code, contract, اور approval تبدیلیوں سے گزرتی ہے جو ایک bot کو cutover کے دوران اور بعد میں چلتا رکھنے کے لیے درکار ہیں۔
حصہ 1: تین اسٹیبل کوائن، ایک Polygon
مهاجرت سے پہلے، Polymarket کے دائرہ کار میں Polygon پر تین امریکی ڈالر اسٹیبل کوائن موجود تھے۔ ان کے درمیان فرق جاننا یہ سمجھنے کی پہلی منزل ہے کہ Polymarket نے مقام کیوں بدلا۔
| ٹوکن | جاری کنندہ | Polygon پر کنٹریکٹ | ریزرو کی قسم |
|---|---|---|---|
| USDC.e | Polygon PoS bridge | 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 | Ethereum mainnet سے bridge کیا گیا |
| USDC (native) | Circle | 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 | نیٹو، براہ راست Polygon پر جاری کیا گیا |
| pUSD | Polymarket Treasury | See docs.polymarket.com/pusd | 1:1 backing native USDC سے، ماہانہ تصدیق |
Polymarket نے ابتدا میں USDC.e کا انتخاب اس لیے کیا کیونکہ 2020 میں لانچ کے وقت Polygon پر USDC کی یہی غالب قسم تھی۔ بعد میں Circle نے Polygon پر براہ راست native USDC جاری کیا اور bridge شدہ variant کے بالآخر ختم کیے جانے کا اشارہ دیا۔ ہر مارکیٹ کو USDC.e میں settle کرنا جاری رکھنے سے Polymarket کو bridge کے اچانک بند ہونے کے long-tail risk کا سامنا رہا۔ Polymarket کے کنٹرول میں اسٹیبل کوائن کی طرف منتقلی یہ مسئلہ حل کرتی ہے اور مستقبل کی product features کھولتی ہے (مثلاً perps margin، vault deposits، cross-chain receipts) جو ایک ہی unit of account استعمال کرتی ہیں۔
حصہ 2: pUSD کیا ہے (اور کیا نہیں ہے)
pUSD ایک معیاری Polygon (chain id 137) پر 6 decimals کے ساتھ ERC-20 ٹوکن ہے، جو USDC جیسی ہی precision رکھتا ہے۔ اسے صرف Polymarket Treasury contract ہی mint کر سکتا ہے اور اسے کسی بھی وقت native USDC کے بدلے 1:1 پر redeem کیا جا سکتا ہے، conversion پر کوئی fee نہیں ہوتی (network gas پھر بھی لاگو ہوتی ہے)۔ pUSD کی backing کے لیے reserve الگ رکھے گئے accounts میں موجود ہے اور ہر ماہ third-party attestation کے ساتھ report کی جاتی ہے۔
pUSD algorithmic اسٹیبل کوائن (stablecoin) نہیں ہے، crypto کے ساتھ over-collateralized نہیں ہے، اور اس پر yield بھی نہیں ملتا۔ اگر آپ pUSD کو Polymarket کے باہر hold کرتے ہیں، تو اسے native USDC کے لیے Polymarket-issued IOU سمجھیں - platform کے اندر مفید، demand پر redeemable، لیکن external wallet میں long-term رکھنے کا کوئی فائدہ نہیں۔
docs.polymarket.com/pusd-audit پر published ہوتی ہیں۔ بڑی balances کو long-term hold کرنے سے پہلے دونوں کی verification کر لیں۔حصہ 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 کے خلاف sign کیا گیا order CLOB پر signature verification میں fail ہو جائے گا اور "invalid میکر (maker) asset" یا "signature mismatch" error واپس کرے گا۔py-clob-client کو اپگریڈ کریں
Polymarket نے cutover سے دو ہفتے پہلے py-clob-client 0.40.0 مکمل pUSD support کے ساتھ جاری کیا۔ 0.34.x line migration کے اگلے دن retire کر دی گئی۔
# pUSD-aware release پر bump کریں
pip install --upgrade "py-clob-client>=0.40.0"
# wired collateral asset verify کریں
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 delete کریں، 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 اسے consume نہیں کرے گا۔ تازہ 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())
# ایک بار کے لیے: CTF Exchange contract کے لیے pUSD approve کریں
# (Helper py-clob-client 0.40 میں شامل کی گئی)
client.update_balance_allowance(asset_type="COLLATERAL")
API credentials ریفریش کریں
موجودہ API keys کام کرتی رہتی ہیں، لیکن اگر آپ نے 1 اپریل سے پہلے credentials derive کیے تھے تو احتیاط کے طور پر انہیں rotate کرنا چاہیے: L1 ECDSA signature اب ایک ایسے domain سے bind ہوتا ہے جس میں نیا collateral address شامل ہے۔ سب سے آسان طریقہ:
creds = client.create_or_derive_api_creds() # idempotent re-derive
client.set_api_creds(creds)
# اپنے .env میں محفوظ کریں
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 balance (raw):", balance["balance"])
print("Allowance to exchange:", 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 نَوشنل
side="BUY",
))
resp = client.post_order(order)
print(resp)
# 3. منسوخ کریں اور تصدیق کریں
client.cancel(order_id=resp["orderID"])
اگر تینوں کالز کامیاب ہو جائیں تو آپ کی وائرنگ درست ہے: SDK نے pUSD کے خلاف سائن کیا، allowance پہچان لیا گیا، اور آرڈر لیجر مستقل ہے۔ تدریجاً دوبارہ پیمانہ بڑھائیں۔
حصہ 6: عام غلطیاں اور ان کے حل
| غلطی یا علامت | وجہ | حل |
|---|---|---|
signature verification failed | آرڈر USDC.e EIP-712 ڈومین کے خلاف سائن کیا گیا | py-clob-client کو 0.40+ پر اپ گریڈ کریں؛ constants ماڈیول دوبارہ لوڈ کریں |
INSUFFICIENT_ALLOWANCE ہر آرڈر پر | آپ کے پراکسی سے CTF Exchange تک pUSD الاؤنس موجود نہیں | update_balance_allowance(asset_type="COLLATERAL") ایک بار چلائیں |
invalid maker asset | ہارڈ کوڈ کی گئی USDC.e ایڈریس اب بھی آپ کی کنفیگ میں موجود ہے | کسی بھی ہارڈ کوڈ شدہ کولیٹرل ایڈریس کو SDK constant سے بدل دیں |
| والیٹ میں migration کے بعد USDC.e بیلنس > 0 دکھائی دیتا ہے | تیسری پارٹی ٹرانسفر سے بچے ہوئے "dust" ٹوکن | USDC.e کو Circle کے CCTP پر native USDC میں واپس bridge کریں، یا اسے رہنے دیں |
| WebSocket reconnect خالی book پیدا کرتا ہے | پرانے subscription نے snapshot سے پہلے والی stale market state استعمال کی | لوکل cache ہٹا دیں، REST book دوبارہ fetch کریں، پھر resubscribe کریں |
| بیرونی والیٹ میں 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 proxy wallet address: وہی ایڈریس؛ Gnosis Safe طرز کا وہی کوڈ۔
- API key, API secret, API passphrase: اب بھی درست ہیں (روٹیٹ کرنے کی سفارش ہے؛ ضروری نہیں)۔
- WebSocket schemas: یکساں؛ fill events میں نیا
assetفیلڈ "USDC.e" کے بجائے "pUSD" پڑھتا ہے۔ - Gamma and Data APIs: بغیر تصدیق کے، غیر تبدیل شدہ۔ انہوں نے کبھی ضمانت (collateral) token کا براہِ راست حوالہ نہیں دیا۔
حصہ 8: ٹیکس اور بک کیپنگ کے مضمرات
زیادہ تر دائرہ ہائے اختیار میں USDC.e کا pUSD میں خودکار تبادلہ 1:1 پر USD-پیگڈ اسٹیبل کوائنز کا ہم نوع تبادلہ سمجھا جاتا ہے اور اس سے کوئی قابلِ ٹیکس واقعہ پیدا نہیں ہوتا۔ آپ کی لاگت کی اساس اور ہولڈنگ مدت آگے منتقل ہو جاتی ہے۔
اس کے باوجود، دو بک کیپنگ امور توجہ کے مستحق ہیں:
- اپنی لیجر اسکیما کو اپ ڈیٹ کریں۔ کوئی بھی ٹیکس ٹول، SQLite لیجر، یا اکاؤنٹنٹ ایکسپورٹ جو Polygon ٹرانزیکشنز کو USDC.e کنٹریکٹ کے ذریعے فلٹر کرتا ہے، خاموشی سے مائیگریشن کے بعد کی ہر ٹرانزیکشن کو نظر انداز کر دے گا۔ pUSD کنٹریکٹ ایڈریس کو بطور عرف شامل کریں۔
- اسنیپ شاٹ تبادلے کی تشریح کریں۔ اگرچہ زیادہ تر نظاموں میں یہ ٹیکس کے قابل نہیں ہوتا، پھر بھی اپنے ریکارڈز میں تبادلہ واضح طور پر درج کریں: مقدار، بلاک، ٹائم اسٹیمپ، اور یہ نوٹ کہ یہ 1:1 اسٹیبل کوائن مائیگریشن ہے۔ اگر آپ کا دائرہ اختیار بعد میں اس کے بارے میں پوچھے، تو آپ کے پاس صاف آڈٹ ٹریل ہونی چاہیے۔
اسرائیلی ٹریڈرز کو ITA مخصوص رپورٹنگ کے لیے ٹیکس گائیڈ سے رجوع کرنا چاہیے؛ خود مائیگریشن معیاری ٹریٹمنٹ کو نہیں بدلتی لیکن کنٹریکٹ ایڈریس کی تبدیلی خودکار رپورٹنگ ٹولز کے لیے اہم ہے۔
حصہ 9: آپریٹرز سے پرو ٹپس جنہوں نے یہ تبدیلی خود جھیلی
- requirements.txt میں py-clob-client کو
>=0.40,<0.50پر pin کریں۔ 0.40 لائن pUSD آرڈرز کو درست طور پر sign کرنے کے لیے کم از کم ورژن ہے؛ اوپری حد pin کرنے سے مستقبل کی کسی breaking change سے حفاظت رہتی ہے۔ - کم volume والی window کے دوران allowances دوبارہ approve کریں۔
update_balance_allowanceکال ایک Polygon transaction ہے؛ اسے تیزی سے market move کے دوران کرنا gas spike کو دعوت دینا ہے۔ - 28 اپریل سے پہلے اپنا USDC.e balance snapshot کریں۔ اگرچہ conversion خودکار ہے، لیکن verify ہونے والا 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 عوامی dashboards سے آگے ہو۔
- USDC.e dust کو اپنی سہولت کے مطابق bridge کریں۔ زیادہ تر accounts میں پرانے 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 ہے جس کی فوری investigation ضروری ہے۔
اگلا کیا ہے؟
- Polymarket API گائیڈ - pUSD کے لیے اپ ڈیٹ کی گئی مکمل API گائیڈ
- جمع کرانے کی گائیڈ - USDC جمع کرانا اور ایپ کے اندر pUSD وصول کرنا
- رقم نکالنے کی گائیڈ - pUSD کو native USDC کے طور پر ایک بیرونی والٹ میں نکالنا
- اوزار اور وسائل - تھرڈ پارٹی ڈیش بورڈز اب pUSD کے لیے اپ ڈیٹ ہو چکے ہیں
- لغت - یہاں استعمال ہونے والی ہر اصطلاح کی سادہ انگریزی تعریفیں
اہم نکتہ
Polymarket pUSD مائیگریشن کسی بھی ایسے آپریٹر کے لیے جو پہلے سے Polymarket بوٹ چلا رہا ہو، کم خطرے والی ایک بار کی ریفیکٹرنگ ہے۔ py-clob-client کو 0.40+ تک اپ گریڈ کریں، pUSD الاؤنسز دوبارہ منظور کریں، $1 کا اسموک ٹیسٹ چلائیں، اور دوبارہ شروع کریں۔ نیچے موجود انفراسٹرکچر (CTF، condition IDs، token IDs، API keys) میں کوئی تبدیلی نہیں ہوئی، اس لیے اثر کا دائرہ چھوٹا ہے اور رول بیک کی صورتحال صاف ہے۔











