01 Découvrir les marchés
Examinez les marchés publics actifs, leurs résultats, identifiants de conditions et identifiants de tokens CLOB.
Point de départ
Vous êtes dans workshop_public/polymarket, .env.polymarket est chargé et le preflight est prêt.
Pourquoi
Polymarket utilise un identifiant de condition pour un marché et un identifiant de token distinct pour chaque résultat. Le WebSocket s'abonne par token ; l'API publique des transactions filtre par condition.
Étape 1 — Demander à Gamma les cinq marchés actifs les plus dynamiques
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
'Résultat attendu : cinq questions. Chacune affiche un hash de condition de 66 caractères et un identifiant de token par résultat. Les questions exactes évoluent avec le marché en direct.
Étape 2 — Confirmer les transactions publiques d'une condition
Copiez un identifiant de condition de la sortie :
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"])
'Une réponse vide est valide pour un marché calme. Choisissez une autre condition pour voir des transactions immédiatement. Aucune authentification n'est utilisée.
Étape 3 — Comprendre la sélection du collecteur
Au démarrage, le collecteur répète l'Étape 1, sélectionne cinq marchés, analyse les tableaux JSON
de résultats/tokens et stocke les deux résultats dans polymarket.markets. Ne codez pas en dur les
identifiants actuels dans .env.polymarket.
Terminé lorsque
- vous savez identifier la condition et les deux tokens de résultat d'un marché ; et
- la commande de transactions publiques renvoie du JSON, même si le tableau est vide.