PolymarketClickHouse Workshops

01 ค้นหาตลาด

ตรวจดูตลาดสาธารณะที่ยังเปิดใช้งาน ผลลัพธ์ condition ID และ CLOB token ID

Your computer
macOS terminal: Run workshop commands in Terminal using zsh or bash.

จุดเริ่มต้น

คุณอยู่ใน workshop_public/polymarket ได้ source .env.polymarket แล้ว และ preflight พร้อม

ทำไป

Polymarket ใช้ condition ID สำหรับหนึ่งตลาด และ token ID แยกกันสำหรับแต่ละผลลัพธ์ WebSocket subscribe ด้วย token ID ส่วน trades API สาธารณะกรองด้วย condition ID

ขั้นที่ 1 — ถาม Gamma หาตลาดที่ยังเปิดใช้งานและคึกคักที่สุดห้าตลาด

curl --fail --silent --show-error --get \
  'https://gamma-api.polymarket.com/markets' \
  --data-urlencode 'active=true' \
  --data-urlencode 'closed=false' \
  --data-urlencode 'limit=20' \
  --data-urlencode 'order=volume24hr' \
  --data-urlencode 'ascending=false' \
  | python3 -c '
import json, sys
selected = 0
for market in json.load(sys.stdin):
    if not market.get("acceptingOrders"):
        continue
    outcomes = json.loads(market["outcomes"])
    tokens = json.loads(market["clobTokenIds"])
    print(market["question"])
    print("  condition:", market["conditionId"])
    for outcome, token in zip(outcomes, tokens):
        print(f"  {outcome}: {token}")
    selected += 1
    if selected == 5:
        break
'

ผลที่ควรได้: คำถามห้าข้อ แต่ละข้อพิมพ์ condition hash ความยาว 66 ตัวอักษรหนึ่งค่า และ token ID หนึ่งค่าต่อหนึ่งผลลัพธ์ คำถามที่ได้จริงจะเปลี่ยนไปตามตลาดสด

ขั้นที่ 2 — ยืนยันการเทรดสาธารณะของหนึ่ง condition

คัดลอก condition ID หนึ่งค่าจากผลลัพธ์:

export POLYMARKET_CONDITION_ID='0x...'
curl --fail --silent --show-error --get \
  'https://data-api.polymarket.com/trades' \
  --data-urlencode "market=$POLYMARKET_CONDITION_ID" \
  --data-urlencode 'limit=3' \
  | python3 -c '
import json, sys
for trade in json.load(sys.stdin):
    print(trade["outcome"], trade["side"], trade["size"], "@", trade["price"])
'

การตอบกลับที่ว่างเปล่าถือว่าถูกต้องสำหรับตลาดที่เงียบ เลือก condition อื่นหากคุณอยากเห็น แถวการเทรดทันที ไม่มีการยืนยันตัวตนใด ๆ

ขั้นที่ 3 — ทำความเข้าใจการคัดเลือกของ collector

ตัว collector ทำขั้นที่ 1 ซ้ำตอนเริ่มทำงาน คัดเลือกห้าตลาด แยกอาร์เรย์ของ outcome/token ที่เข้ารหัสเป็น JSON และเก็บแถวของทั้งสองผลลัพธ์ไว้ใน polymarket.markets คุณไม่ต้อง ฮาร์ดโค้ด token ID ของวันนี้ลงใน .env.polymarket

ถือว่าเสร็จเมื่อ

  • คุณระบุ condition ID และ token ID ของทั้งสองผลลัพธ์ของหนึ่งตลาดได้ และ
  • คำสั่งดึงการเทรดสาธารณะคืนค่า JSON ออกมา แม้อาร์เรย์จะว่างก็ตาม

ต่อไป: สร้างโมเดลข้อมูลบน ClickHouse

ในหน้านี้

Track your progress?

Optional. We email a link to confirm your address; progress records once you open it.

Please use your work email address, not a personal one.

Progress tracking also requires accepting the current Terms of Service in Privacy settings.

TH