01 ค้นหาตลาด
ตรวจดูตลาดสาธารณะที่ยังเปิดใช้งาน ผลลัพธ์ condition ID และ CLOB token ID
จุดเริ่มต้น
คุณอยู่ใน 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 ออกมา แม้อาร์เรย์จะว่างก็ตาม