पॉलीमार्केट Bot ट्यूटोरियल · अध्याय 6 / 32
पॉलीमार्केट bot authentication और wallet setup: proxy wallets vs EOA, SDK के जरिए API key generation, Gnosis Safe के लिए sigType 2, key storage best practices, और Magic-to-Privy migration.
इस अध्याय में क्या शामिल है
पॉलीमार्केट का wallet model तीन हिस्सों में बँटा है: एक externally owned account (EOA) जो orders sign करता है, एक smart-contract proxy जो funds रखता है, और पॉलीमार्केट CLOB API key जो HTTP requests को authenticate करती है. इन तीनों को सही तरीके से wire करना नए builders के लिए सबसे आम Day 1 failure है, और August 2025 की Magic Labs से Privy माइग्रेशन के बाद यह और भी confusing हो गया. यह chapter setup order में हर piece को walk through करता है, उन specific environment variables और signature-type flag के साथ जिनकी production code को ज़रूरत होती है.
- 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 use करता है। आपका EOA - यानी वह address जो आपकी private key से जुड़ा है - transactions और orders sign करता है। एक Gnosis Safe, जो deterministic address पर deploy होता है, actual pUSD और outcome shares hold करता है। Proxy address वही है जो पॉलीमार्केट UI के "wallet" panel में दिखता है; EOA वही है जो sign करता है।
Bots के लिए, आप हमेशा EOA (PRIVATE_KEY in env) से sign करते हैं और CLOB client config में proxy address को POLY_FUNDER_ADDRESS के रूप में reference करते हैं। EOA को funder बनाकर orders भेजने पर "insufficient balance" errors आते हैं, भले ही proxy funded हो।
आप केवल EOA के साथ bot नहीं चला सकते - पॉलीमार्केट का web flow signup के समय हमेशा एक proxy create करता है। दोनों addresses की पुष्टि CLI से polymarket wallet show चलाकर करें, या पॉलीमार्केट UI की settings से proxy address पढ़ें।
API key बनाना (SDK चरण]
CLOB API को तीन credentials चाहिए: key, secret, passphrase. ये आपकी wallet private key नहीं हैं - ये आपकी wallet से bound HMAC-style credential set है, जिसे केवल HTTP request authentication के लिए use किया जाता है।
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 use करें। POLY_FUNDER_ADDRESS env var Safe address होना चाहिए, EOA नहीं। Fundertype के साथ mismatched signature_type silently order rejections देता है जो "insufficient allowance" या "balance: 0" जैसे लगते हैं - error message misleading है।
की स्टोरेज: .env, vault, KMS
EOA private key storage के तीन reasonable 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 के लिए worthwhile है।
- Cloud KMS (AWS KMS, GCP KMS). Bot key को memory में decrypt करने के लिए KMS call करता है; key कभी disk को नहीं छूती। Operational complexity केवल $10k से ऊपर या multi-bot fleets के लिए उचित है।
क्या कभी नहीं करना चाहिए: 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 के जरिए created) आम तौर पर signature_type=1 (POLY_PROXY) use करते हैं। Post-migration accounts signature_type=2 (POLY_GNOSIS_SAFE) use करते हैं। कुछ users ने अपना पुराना account migrate किया; कुछ ने original को ही रखा। Public API से यह जानने का कोई तरीका नहीं है कि आपका account कौन-सा type use करता है - आप order sign करने की कोशिश करके और rejection देखकर check करते हैं।
Migration ने UI में funder address दिखाने का तरीका भी बदल दिया। पुराने पॉलीमार्केट UI flows dashboard में proxy address दिखाते थे; current flow इसे account settings में छिपा देता है। CLI command polymarket wallet show दोनों values confirm करने का सबसे साफ तरीका है, चाहे account कब भी create हुआ हो।
USDC/pUSD खर्च को मंज़ूरी
CLOB को order match पर आपका pUSD move करने के लिए, proxy ने पॉलीमार्केट exchange contracts को spenders के रूप में approve किया होना चाहिए। पॉलीमार्केट UI पहली deposit के दौरान ये approvals set करता है। Bots के लिए जो proxy को सीधे fund करते हैं, आपको इन्हें manually set करना होगा।
हर wallet के लिए एक बार set की जाने वाली तीन approvals:
- pUSD (ERC-20) → exchange contract
- Conditional Tokens (ERC-1155) → exchange contract (shares बेचने के लिए)
- Conditional Tokens (ERC-1155) → NegRisk exchange contract (NegRisk shares बेचने के लिए)
First setup पर CLI से polymarket approve चलाएँ। Transaction की लागत कुछ cents of MATIC gas होती है। polymarket approve check से verify करें - तीनों का "approved" return करना चाहिए। New builders के लिए सबसे common silent bug missing NegRisk approval है, जो केवल multi-outcome markets से shares बेचते समय fail होता है और balance error जैसा दिखता है।
वॉलेट रिकवरी और बैकअप
Bot wallet के दो recoverable elements हैं: EOA private key, और पॉलीमार्केट account password (जो web UI के जरिए access gate करता है, लेकिन SDK के जरिए नहीं)।
Bot के लिए EOA private key ही सबसे महत्वपूर्ण चीज़ है। Loss = proxy में मौजूद सब कुछ खोना। Cold backup: इसे कागज़ पर लिखें, envelope में seal करें, और offsite store करें। Hot backup: encrypted USB stick। इसे कभी email न करें; कभी भी unencrypted cloud storage में न रखें।
पॉलीमार्केट account password Magic Labs / Privy email recovery के जरिए recover किया जा सकता है, बशर्ते आप अभी भी original signup email control करते हों। यह bot access gate नहीं करता - bot सीधे EOA private key use करता है।
अगर आपको key leak का शक है: तुरंत pUSD और outcome tokens को नए wallet में withdraw करें, नया EOA generate करें, और नए key के साथ bot redeploy करें। Leaked key revoke नहीं की जा सकती; उसे केवल drain किया जा सकता है।



