01 Temukan market
Periksa market aktif publik, outcome, condition ID, dan token ID CLOB.
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.