PolymarketClickHouse Workshops

01 Temukan market

Periksa market aktif publik, outcome, condition ID, dan token ID CLOB.

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

Titik awal

Anda berada di workshop_public/polymarket, .env.polymarket sudah di-source, dan preflight sudah siap.

Mengapa

Polymarket memakai satu condition ID untuk sebuah market dan token ID terpisah untuk setiap outcome. WebSocket berlangganan berdasarkan token ID; API trades publik memfilter berdasarkan condition ID.

Langkah 1 — Minta Gamma untuk lima market aktif tersibuk

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
'

Diharapkan: lima pertanyaan. Masing-masing mencetak satu condition hash 66 karakter dan satu token ID per outcome. Pertanyaan persisnya berubah mengikuti market yang live.

Langkah 2 — Konfirmasi trade publik untuk satu condition

Salin satu condition ID dari output:

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

Respons kosong itu valid untuk market yang sepi. Pilih condition lain jika Anda ingin langsung melihat baris trade. Tidak ada autentikasi yang dipakai.

Langkah 3 — Pahami cara collector memilih market

Collector mengulangi Langkah 1 saat startup, memilih lima market, mem-parse array outcome/token yang ter-encode JSON, dan menyimpan kedua baris outcome di polymarket.markets. Anda tidak menuliskan token ID hari ini secara hard-code ke .env.polymarket.

Selesai bila

  • Anda bisa mengidentifikasi condition ID dan kedua token ID outcome untuk satu market; dan
  • perintah trade publik mengembalikan JSON, meski array-nya kosong.

Berikutnya: buat model data ClickHouse.

Di halaman ini

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.

ID