Assalam-o-Alaikum, developers!
Welcome to Module 6 of Pakistan's first professional trading bot course. Pichle modules mein humne strategy banayi, signals generate kiye, aur market ko samjha. Lekin strategy aur signal sab bekaar hain agar aap uss information pe act na kar sako. Yeh module asli game hai — jahan rubber meets the road, aur hamara bot paisa banata ya gavata hai.
Ab tak sab theory thi, ab practical shuru. Agar aapka bot market mein order place nahi kar sakta, tou woh sirf ek fancy calculator hai. Aaj hum seekhenge ke Polymarket ke trading engine, yaani CLOB, se direct baat kaise karte hain.
CLOB ka matlab hai Central Limit Order Book.
Yeh naam sun ke pareshan nahi hona. Agar aapne kabhi Pakistan Stock Exchange (KSE) pe trading ki hai ya dekhi hai, tou aapko CLOB ka concept already pata hai. Yeh bilkul waisa hi system hai.
Yeh system AMM (Automated Market Maker) jaise protocols se bohot fast aur efficient hota hai, isliye high-frequency trading ke liye perfect hai.
Sab se important baat: Polymarket ka CLOB Polygon blockchain pe chalta hai. Iska matlab har trade on-chain, transparent, aur immutable hai. Aapki har trade ko aap PolygonScan pe dekh sakte ho. Yeh Web3 ka asli power hai, aur aap Pakistani developers isko practically use karna seekh rahe ho.
py_clob_clientKhushkhabri yeh hai ke humein blockchain se direct, low-level pe baat nahi karni. Polymarket ne hamare liye ek zabardast Python library banayi hai: py_clob_client.
Pehle isko install karein. Apna terminal kholo aur likho:
pip install py_clob_client
Yeh library hamare liye saari heavy lifting karegi — authentication, order signing, aur CLOB API se communication. Hum bas isko commands denge.
Blockchain pe kuch bhi karne ke liye, aapko ek wallet chahiye. Hamare bot ke liye, do cheezein critical hain:
Chalo, client setup karte hain. Ek file banao trader.py aur yeh code likho:
import os
from dotenv import load_dotenv
from py_clob_client.client import ClobClient
from py_clob_client.clob_types import ApiCreds
# .env file se environment variables load karo
load_dotenv()
# --- Wallet Configuration ---
# WARNING: Apni private key ko kabhi bhi direct code mein mat likhna.
# .env file mein aise save karo: PRIVATE_KEY="0x..."
private_key = os.getenv("PRIVATE_KEY")
if not private_key:
raise ValueError("PRIVATE_KEY environment variable set nahi hai!")
# Polymarket CLOB Polygon mainnet pe hai
chain_id = 137
# API credentials (optional, lekin rate limits se bachne ke liye zaroori)
# .env file mein: POLY_API_KEY="your_key", POLY_API_SECRET="your_secret", POLY_API_PASSPHRASE="your_passphrase"
api_creds = ApiCreds(
key=os.getenv("POLY_API_KEY"),
secret=os.getenv("POLY_API_SECRET"),
passphrase=os.getenv("POLY_API_PASSPHRASE"),
)
# --- Client Initialization ---
# verbose=True se aapko background mein kya ho raha hai, sab nazar aayega. Debugging ke liye best hai.
client = ClobClient(
chain_id=chain_id,
private_key=private_key,
api_creds=api_creds,
verbose=True
)
# Client ko start karo. Yeh proxy address check karega aur zaroorat parne par deploy karega.
client.init()
print(f"Bot is ready! Wallet address: {client.get_address()}")
print(f"Proxy address for trading: {client.get_proxy_address()}")
Yeh code chalane se pehle, ek .env file banao aur usmein apni details daalo:
PRIVATE_KEY="0xyour_private_key_here"
POLY_API_KEY="your_polymarket_api_key"
POLY_API_SECRET="your_polymarket_api_secret"
POLY_API_PASSPHRASE="your_polymarket_api_passphrase"
Pro Tip: Burner Wallet Jab bhi bot development ya testing kar rahe ho, hamesha ek naya, "burner" wallet istemal karo. Uss mein sirf utne hi funds (MATIC aur USDC) rakho jitne zaroori hain. Kabhi bhi apna main personal wallet, jisme aapke long-term assets hain, bot ke liye use mat karna. Ek choti si galti aur sab saaf ho sakta hai. Safety first!
Har Polymarket market ke do possible outcomes hote hain: YES ya NO.
Example: PSL ka match hai, Lahore Qalandars vs. Karachi Kings. Market hai: "Will Lahore Qalandars win?"
1 - YES_price hogi, yaani 0.35.Trading karne ke liye, humein in YES aur NO tokens ke unique ID chahiye hote hain. Yeh IDs market ke hisaab se alag hote hain. Inko haasil karne ke liye hum Polymarket ki ek doosri API, Gamma API, use karte hain.
Yeh raha function jo hamare Oracle codebase mein scanner.py use karta hai naye markets ke token IDs nikalne ke liye. Isko aaram se samjho:
import os
import json
import requests
# Yeh CLOB trading API ka base URL hai
CLOB_BASE = 'https://clob.polymarket.com'
# Yeh Gamma market data API ka base URL hai
GAMMA_BASE = 'https://gamma-api.polymarket.com'
CHAIN_ID = 137 # Polygon mainnet
def get_token_id(market_id: str, side: str = 'YES'):
"""
Market ID aur side (YES/NO) ke basis pe correct token ID nikalta hai.
Yeh function CLOB API se nahi, Gamma API se data leta hai, kyunki market
ki general information wahan hoti hai.
"""
print(f"Fetching token ID for market '{market_id}' for side '{side}'...")
# Gamma API ko request bhej rahe hain market details ke liye