پولی مارکیٹ بوٹ ٹیوٹوریل · 32 میں سے باب 6
پولی مارکیٹ bot authentication اور wallet setup: proxy wallets بمقابلہ EOA، SDK کے ذریعے API key generation، Gnosis Safe کے لیے sigType 2، key storage کی best practices، اور Magic-to-Privy migration۔
اس باب میں کیا شامل ہے
- Proxy wallet بمقابلہ EOA: کس کے ساتھ بوٹ چلانا ہے
- API key بنانا (SDK مراحل]
- sigType 2 اور POLY_FUNDER_ADDRESS (Gnosis Safe)
- کلید اسٹوریج: .env، vault، KMS
- Magic Labs سے Privy منتقلی
- USDC/pUSD خرچ کی منظوری
- والیٹ کی بحالی اور بیک اپ
Proxy wallet بمقابلہ EOA: کس کے ساتھ بوٹ چلانا ہے
پولی مارکیٹ ایک smart-contract proxy wallet pattern استعمال کرتا ہے۔ آپ کا EOA - یعنی وہ address جو آپ کے private key سے linked ہے - transactions اور orders sign کرتا ہے۔ ایک Gnosis Safe جو deterministic address پر deployed ہوتا ہے، اصل pUSD اور outcome shares رکھتا ہے۔ Proxy address وہی ہے جو پولی مارکیٹ UI کے "wallet" panel میں دکھائی دیتا ہے؛ EOA وہ ہے جو sign کرتی ہے۔
Bots کے لیے، آپ ہمیشہ EOA کے ساتھ sign کرتے ہیں (PRIVATE_KEY env میں) اور CLOB client config میں proxy address کو POLY_FUNDER_ADDRESS کے طور پر refer کرتے ہیں۔ اگر funder کے طور پر EOA سے order بھیجا جائے تو proxy funded ہونے کے باوجود "insufficient balance" errors آتی ہیں۔
آپ صرف EOA کے ساتھ bot نہیں چلا سکتے - پولی مارکیٹ کا web flow signup پر ہمیشہ ایک proxy create کرتا ہے۔ دونوں addresses کو polymarket wallet show سے CLI میں confirm کریں، یا پولی مارکیٹ UI کی settings سے proxy address پڑھیں۔
API key بنانا (SDK مراحل]
CLOB API کو تین credentials درکار ہوتے ہیں: key, secret, passphrase۔ یہ آپ کا wallet private key نہیں ہیں - یہ HMAC-style credential set ہے جو آپ کے wallet سے bound ہوتا ہے، اور صرف HTTP request authentication کے لیے استعمال ہوتا ہے۔
SDK کے ساتھ انہیں ایک بار generate کریں:
# Python
from py_clob_client.client import ClobClient
c = ClobClient(host="https://clob.polymarket.com", chain_id=137,
key="<PRIVATE_KEY>", signature_type=2,
funder="<PROXY_ADDRESS>")
creds = c.create_or_derive_api_creds()
print(creds.api_key, creds.api_secret, creds.api_passphrase)
Output کو JSON file میں store کریں اور bot start ہونے پر ہر بار load کریں؛ ہر session میں دوبارہ generate نہ کریں - API server credential set کو cache کرتا ہے، اور بار بار rotate کرنے سے rate-limit logic trigger ہو سکتا ہے۔ Credentials خود بخود expire نہیں ہوتے۔ صرف اسی صورت rotate کریں جب leak کا شک ہو۔
sigType 2 اور POLY_FUNDER_ADDRESS (Gnosis Safe)
signature_type argument یہ control کرتا ہے کہ CLOB آپ کے order signatures کو کیسے validate کرے۔ تین values موجود ہیں؛ دو حقیقی ہیں:
- 0 / EOA: EOA signer بھی ہے اور funder بھی۔ یہ unusual setups میں استعمال ہوتا ہے جہاں users نے private key براہِ راست import کی ہو۔
- 1 / POLY_PROXY: legacy Magic Labs proxy contract۔ زیادہ تر pre-2025 accounts۔
- 2 / POLY_GNOSIS_SAFE: current standard۔ Funds Gnosis Safe میں ہوتے ہیں، EOA sign کرتی ہے۔
August 2025 (Privy migration) کے بعد بننے والے کسی بھی account، یا ایسے account کے لیے جس کے پولی مارکیٹ UI میں Gnosis Safe address نظر آتا ہو، signature_type=2 استعمال کریں۔ POLY_FUNDER_ADDRESS env var Safe address ہونا چاہیے، EOA نہیں۔ Funder type کے ساتھ mismatched signature_type خاموشی سے ایسے order rejections پیدا کرتا ہے جو "insufficient allowance" یا "balance: 0" جیسے لگتے ہیں - error message misleading ہوتا ہے۔
کلید اسٹوریج: .env، vault، KMS
EOA private key ذخیرہ کرنے کے تین مناسب tiers ہیں۔
- .env file (single-machine development). File VPS پر رہتی ہے، bot start ہونے پر اسے read کرتا ہے، key host سے باہر نہیں جاتی۔ <$1k wallets کے لیے کافی ہے۔
chmod 600 .envکریں اور یقینی بنائیں کہ آپ کے repo کی .gitignore اسے exclude کرتی ہو۔ - Self-hosted vault (HashiCorp Vault, age-encrypted file, یا systemd-creds). Bot start پر unlock step شامل ہوتا ہے۔ $1k-$10k range کے wallets کے لیے worth it ہے۔
- Cloud KMS (AWS KMS, GCP KMS). Bot key کو memory میں decrypt کرنے کے لیے KMS call کرتا ہے؛ key کبھی disk کو touch نہیں کرتی۔ یہ operational complexity صرف $10k سے اوپر یا multi-bot fleets کے لیے worth ہے۔
جو چیزیں کبھی نہیں کرنی چاہئیں: private key کو git میں commit کرنا، اسے chat میں paste کرنا، یا اسے ایسے password manager میں store کرنا جو local-only mode کے بغیر cloud services کے ساتھ sync ہوتا ہو۔ پولی مارکیٹ EOA leak کا on-chain blast radius آپ کی پوری pUSD balance اور outcome share inventory ہے۔
Magic Labs سے Privy منتقلی
August 2025 میں پولی مارکیٹ نے اپنے primary embedded-wallet provider کو Magic Labs سے Privy پر migrate کیا۔ Bot-facing اثر چھوٹا ہے مگر specific ہے۔
Pre-migration accounts (جو Magic کے ذریعے create ہوئے تھے) عموماً signature_type=1 (POLY_PROXY) استعمال کرتے ہیں۔ Post-migration accounts signature_type=2 (POLY_GNOSIS_SAFE) استعمال کرتے ہیں۔ کچھ users نے اپنا پرانا account migrate کیا؛ کچھ نے original برقرار رکھا۔ Public API سے یہ جاننے کا کوئی طریقہ نہیں کہ آپ کا account کون سا type استعمال کرتا ہے - آپ order sign کرنے کی کوشش کر کے اور rejection دیکھ کر check کرتے ہیں۔
Migration نے UI میں funder address دکھانے کا طریقہ بھی بدل دیا۔ Older پولی مارکیٹ UI flows dashboard میں proxy address دکھاتے تھے؛ current flow اسے account settings میں چھپا دیتا ہے۔ Account کب بھی create ہوا ہو، دونوں values confirm کرنے کے لیے polymarket wallet show CLI command سب سے صاف طریقہ ہے۔
USDC/pUSD خرچ کی منظوری
CLOB کو order match کے وقت آپ کا pUSD move کرنے کے لیے proxy کو پولی مارکیٹ exchange contracts کو spender کے طور پر approve کرنا ضروری ہے۔ پولی مارکیٹ UI پہلی deposit کے دوران یہ approvals set کرتا ہے۔ جو bots proxy کو direct fund کرتے ہیں، انہیں یہ manually set کرنا ہوتا ہے۔
ہر wallet کے لیے ایک بار کرنے والی تین approvals:
- pUSD (ERC-20) → exchange contract
- Conditional Tokens (ERC-1155) → exchange contract (shares sell کرنے کے لیے)
- Conditional Tokens (ERC-1155) → NegRisk exchange contract (NegRisk shares sell کرنے کے لیے)
First setup پر CLI سے polymarket approve چلائیں۔ Transaction کی gas cost چند cents MATIC میں ہوتی ہے۔ polymarket approve check سے verify کریں - تینوں کو "approved" return کرنا چاہیے۔ نئے builders کے لیے سب سے عام silent bug missing NegRisk approval ہے، جو صرف multi-outcome markets میں shares sell کرتے وقت fail ہوتا ہے اور balance error جیسا لگتا ہے۔
والیٹ کی بحالی اور بیک اپ
Bot کے wallet کے دو recoverable elements ہوتے ہیں: EOA private key، اور پولی مارکیٹ account password (جو web UI کے ذریعے access gate کرتا ہے، SDK کے ذریعے نہیں)۔
Bot کے لیے صرف EOA private key اہم ہے۔ Loss = proxy میں موجود سب کچھ lost۔ Cold backup: اسے کاغذ پر لکھیں، envelope میں seal کریں، offsite store کریں۔ Hot backup: encrypted USB stick۔ کبھی اسے خود کو email نہ کریں؛ کبھی cloud storage میں unencrypted store نہ کریں۔
پولی مارکیٹ account password Magic Labs / Privy email recovery کے ذریعے recover ہو سکتا ہے، جب تک آپ original signup email پر control رکھتے ہیں۔ یہ bot access کو gate نہیں کرتا - bot براہِ راست EOA private key استعمال کرتا ہے۔
اگر key leak کا شک ہو: فوراً pUSD اور outcome tokens کو نئے wallet میں withdraw کریں، نیا EOA generate کریں، اور نئے key کے ساتھ bot دوبارہ deploy کریں۔ Leaked key revoke نہیں ہو سکتی؛ اسے صرف drain کیا جا سکتا ہے۔



