Polymarket Bot Tutorial · Kapitel 20 von 32

Verfolge Polymarket-Whale-Wallets und copy-trade Top-Performer programmgesteuert: Identifiziere profitable Wallets über Leaderboard- und On-chain-Analyse und spiegele ihre Trades mit Größen- und Timing-Regeln.

Was dieses Kapitel abdeckt

Gewinnende Polymarket-Wallets zu kopieren ist eine beliebte Idee, aber die tatsächlichen Whales auf Polymarket machen größtenteils Late-window-Arb auf aufgelösten Märkten, keine directional bets. Dieses Kapitel ist die ehrliche Research aus der On-chain-Analyse: welche Wallets man wirklich kopieren sollte, warum die meisten es nicht wert sind, kopiert zu werden, und die Positionsgrößen-Mathematik.

  • Identifying profitable wallets
  • On-chain trade detection
  • Position sizing relative to the whale
  • Latency: how late is too late
  • Filters: only follow wallets with verified edge
  • Code: detect whale buy event, place sized copy

Identifying profitable wallets

Die Grundidee des Whale-Copyings ist, dass einige Wallets konstant profitabel sind und das Kopieren ihrer Entries einen Teil ihres Edge einfängt. Eine On-chain-Analyse der Top-Wallets von Polymarket in 2025-26 ergab ein ernüchterndes Ergebnis: Die meisten sichtbaren Whales machen Late-window-Arbitrage auf aufgelösten Märkten, keine directional trades.

Das von uns gemessene Profil von drei potenziellen Whale-Wallets:

  • "hhhhhh6" (98.5% win rate, $n M volume) - 88% der Entries bei Preisen ≥0.95, medianer Entry-Zeitstempel 226s in einem 300s-Fenster. Reines tail-yield arb, nicht directional.
  • "anonymous" (20% win rate) - degenerierter Glücksspieler. Kopieren kostet Geld.
  • "Jkim123" (53.5% win rate) - Münzwurf. Kein Signal, das es wert wäre, kopiert zu werden.

0% dieser Whale-Trades fanden in den ersten 120s eines 5-Minuten-Fensters statt. Vorhersage-Signal (falls vorhanden) würde aus EARLY-window großen Entries kommen - aber diese Wallets sind nicht die, die oben auf dem Leaderboard stehen, weil es schwer ist.

On-chain trade detection

Das Erkennen der Trades einer Ziel-Wallet erfordert entweder Polling von Polymarkets data-api oder das Abonnieren von On-chain-CTF-Transfer-Events. Die data-api-Option ist einfacher.

def watch_wallet(wallet_addr, last_seen_ts=0):
    while True:
        url = f"https://data-api.polymarket.com/activity?user={wallet_addr}&limit=100"
        events = requests.get(url).json()
        for ev in events:
            ts = int(ev.get("timestamp", 0))
            if ts <= last_seen_ts: continue
            if ev["type"] == "TRADE":
                process_whale_trade(ev)
            last_seen_ts = max(last_seen_ts, ts)
        time.sleep(5)

Fünf-Sekunden-Polling ist die praktische Untergrenze für die data-api. Darunter wirst du Rate Limits treffen. Für Sub-second-Erkennung abonniere on-chain ERC-1155 TransferSingle-Events vom CTF-Contract, gefiltert nach der Proxy-Adresse des Whales.

Position sizing relative to the whale

Wenn du deinen Copy als konstanten Anteil des Whale-Trades bemisst, übernimmst du deren Risk Profile. Zwei praktische Alternativen.

  • Cap-based: jeden Copy auf einen festen Dollarbetrag ($10-50) begrenzen, unabhängig von der Whale-Größe. Langsamer zu compounden, aber Verlust pro Trade begrenzt.
  • Win-rate-weighted: Copy als Funktion der jüngsten Win rate des Whales bemessen. 60%+ WR → Full-size-Copy; 40-60% → Half-size; unter 40% → überspringen.

Der cap-based Ansatz ist der sicherere erste Deploy. Wechsle erst zu win-rate-weighted, nachdem du die tatsächliche Win rate des Whales auf DEINEN Copies gemessen hast (die ist meist schlechter als die Headline-Zahl, weil du zu spät kommst).

Latency: how late is too late

Der Trade des Whales ist innerhalb von 1-2 Sekunden nach Ausführung öffentlich sichtbar. Ihn zu kopieren erfordert auf der Read-Seite eine schnellere Latenz als diese, plus deine eigene Order-Platzierungs-Latenz.

End-to-end für einen typischen Copy-Bot: 5-10 Sekunden Polling + 200ms Order-Platzierung = insgesamt 5-15 Sekunden. Bis dein Copy auslöst, ist das Signal des Whales bereits im Preis.

Für 99% der Copies ist das auf Polymarkets engen Märkten zu spät. Der Entry des Whales hat den Mid um 1-2 Cents bewegt; du zahlst diesen 1-2-Cent-Aufschlag relativ zu ihrem Einstieg. Wenn ihr Edge 3c betrug, ist die Hälfte davon schon weg, bis du ankommst.

Copy-Bots, die funktionieren, tun entweder (a) langsam bewegte Märkte an, bei denen 30s Latenz keine Rolle spielt, oder (b) nutzen on-chain Event-Subscription, um in Sub-second-Zeitfenstern zu reagieren.

Filters: only follow wallets with verified edge

Drei Filter, bevor du irgendeine Wallet zu deiner Copy-Liste hinzufügst.

  • 30+ closed trades in der Historie der Wallet. Kleinere Stichproben sind Rauschen.
  • Lifetime win rate > 60%, ODER positiver Expected Value pro Trade basierend auf den Entry-Preisen. Eines von beiden; beides ist besser.
  • Pattern is NOT late-window arb. Prüfe die mediane Seconds-to-resolution beim Entry; wenn sie nahe 0 liegt, macht die Wallet tail-yield arb, das du nicht reproduzieren kannst.

Die meisten Kandidaten-Whales fallen bei einem dieser drei Punkte durch. Der Pool der tatsächlich kopierbaren Wallets ist klein. Die Liste zu pflegen erfordert regelmäßige Rechecks - Wallets, die letzten Monat profitabel waren, sind es diesen Monat möglicherweise nicht.

Code: detect whale buy event, place sized copy

Referenz: Erkenne ein CTF TransferSingle-Event für einen beobachteten Whale und löse einen Sized-Copy-Buy aus.

from web3 import Web3
w3 = Web3(Web3.WebsocketProvider(POLYGON_WSS))
ctf = w3.eth.contract(address=CTF_ADDR, abi=CTF_ABI)
WHALES = {"0xabc...": {"fraction": 0.05, "cap": 50}}

def on_transfer(event):
    to = event.args["to"].lower()
    if to not in WHALES: return
    cfg = WHALES[to]
    token_id = event.args.id
    whale_size = event.args.value / 1e6
    copy_size = min(cfg["cap"], whale_size * cfg["fraction"])
    if copy_size < 5: return  # not worth fees
    book = fetch_book(str(token_id))
    if book.best_ask:
        place_fok(str(token_id), "BUY", book.best_ask + 0.01, copy_size)

# subscribe to ERC-1155 TransferSingle events from CTF
filt = ctf.events.TransferSingle.create_filter(fromBlock="latest")
while True:
    for ev in filt.get_new_entries(): on_transfer(ev)
    time.sleep(0.5)

Unterscheide Buy von Sell, indem du from prüfst (Zero Address = mint = der Whale hat gekauft) vs to (Zero Address = burn = verkauft).

Häufig gestellte Fragen

How do I find profitable Polymarket wallets to copy?
Polymarkets own leaderboard surfaces top wallets by PnL across multiple windows (week, month, all-time). Independent on-chain analytics tools (DeFiLlama, Dune dashboards) also rank Polymarket wallets. Pick wallets with verified profitability over months, not weeks - hot streaks reverse.
How do I detect a whale trade in real time?
Subscribe to Polygon transaction logs for the wallet address (web3.py / ethers eth_subscribe), filter for matchOrder calls on the Polymarket exchange contracts. Decode the event to get the market, side, and size. Latency: 2-10 seconds from on-chain confirmation to your bot reacting.
Can I copy a whales trade exactly?
Not exactly - by the time youve detected and submitted, the price has often moved. The realistic copy is "scale-in": take a fraction of the whales position over a few minutes after their trade, accepting the price degradation as the cost of copying. Sizing: 1-5% of their position size per copy.
What if the whale is wrong this time?
You lose. Copy trading inherits all the risk of the underlying strategy plus latency loss. The hedge is to copy multiple whales and treat each as a small portion of your portfolio - if 5 whales each have 60% win rate independently, the portfolio compounds. If you copy one whale with 60% win rate and concentrate, variance kills you.
Is copy trading prohibited on Polymarket?
No. Polymarkets terms allow viewing public leaderboards and trades. What is prohibited is multi-accounting (running multiple wallets as one person to circumvent limits). Copy-trading other peoples wallets from your single wallet is fine.
How do I size relative to a whale?
Bankroll-fraction sizing: never copy a single trade for more than 2-5% of your total bankroll regardless of how much the whale traded. Treat the whale signal as one of many, not as a sure thing. Whales with 10x your bankroll still lose - your relative drawdown is much worse if you size aggressively.