PolymarketClickHouse Workshops

01 Khám phá thị trường

Xem xét các thị trường công khai đang hoạt động, kết quả, condition ID và token ID của CLOB.

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

Điểm khởi đầu

Bạn đang ở trong workshop_public/polymarket, .env.polymarket đã được source, và bước preflight đã sẵn sàng.

Tại sao

Polymarket dùng một condition ID cho mỗi thị trường và một token ID riêng cho từng kết quả. WebSocket đăng ký theo token ID; API trades công khai lọc theo condition ID.

Bước 1 — Hỏi Gamma về năm thị trường đang hoạt động sôi động nhất

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
'

Mong đợi: năm câu hỏi. Mỗi câu in ra một condition hash dài 66 ký tự và một token ID cho mỗi kết quả. Các câu hỏi cụ thể thay đổi theo thị trường trực tiếp.

Bước 2 — Xác nhận các giao dịch công khai cho một condition

Sao chép một condition ID từ kết quả đầu ra:

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"])
'

Phản hồi rỗng là hợp lệ với một thị trường ít giao dịch. Hãy chọn condition khác nếu bạn muốn thấy ngay các dòng giao dịch. Không dùng xác thực nào cả.

Bước 3 — Hiểu cách collector chọn thị trường

Collector lặp lại Bước 1 khi khởi động, chọn năm thị trường, phân tích các mảng outcome/token được mã hóa JSON, và lưu cả hai dòng kết quả vào polymarket.markets. Bạn không hard-code token ID của ngày hôm nay vào .env.polymarket.

Hoàn thành khi

  • bạn có thể xác định condition ID và cả hai token ID kết quả của một thị trường; và
  • câu lệnh giao dịch công khai trả về JSON, dù mảng có thể rỗng.

Tiếp theo: tạo mô hình dữ liệu ClickHouse.

Trên trang này

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.

VI