Skip to main content
Pro Feature. Requires a Pro or Ultra subscription. Get started at api.mathematicalcompany.com

Wallet Intelligence

Horizon’s wallet intelligence module provides three capabilities built on Polymarket’s public Data API:

Wallet Scoring

Evaluate any wallet’s trading performance and compute a composite score from -1 (terrible) to +1 (excellent).

Adversarial Analysis

Detect exploitable patterns in a wallet’s trading: timing regularity, sizing predictability, directional bias, and more.

Bot Detection

Scan a market to classify wallets as bots vs humans with strategy type identification and confidence scores.

Wallet Scoring

Score any wallet’s historical trading performance.
import horizon as hz

score = hz.score_wallet("0x1234abcd...")
print(score.composite_score)  # -1 to +1
print(score.win_rate)         # 0.0 to 1.0
print(score.sharpe)           # Sharpe estimate
print(score.total_pnl)       # Cumulative USDC PnL
ParameterTypeDefaultDescription
addressstrrequiredWallet address (0x…)
limitint500Max positions to analyze

Score Interpretation

Composite ScoreInterpretation
> 0.5Excellent trader
0.2 to 0.5Good trader
-0.2 to 0.2Average
-0.5 to -0.2Poor trader
< -0.5Terrible trader (fade candidate)

WalletScore Fields

FieldTypeDescription
walletstrWallet address
win_ratefloatFraction of profitable positions
avg_pnl_pctfloatAverage PnL % per position
sharpefloatSharpe estimate (PnL% / stddev)
total_pnlfloatCumulative USDC PnL
trade_countintNumber of trades
position_countintNumber of positions analyzed
composite_scorefloat-1 (terrible) to +1 (excellent)

Adversarial Analysis

Detect exploitable patterns in a wallet’s trading behavior.
import horizon as hz

report = hz.analyze_wallet("0x1234abcd...")
print(f"Vulnerability: {report.vulnerability_score:.2f}")

for pattern in report.patterns:
    status = "EXPLOITABLE" if pattern.exploitable else "safe"
    print(f"  {pattern.name}: {pattern.value:.2f} [{status}]")
    if pattern.exploitable:
        print(f"    -> {pattern.counter_strategy}")
ParameterTypeDefaultDescription
addressstrrequiredWallet address
trade_limitint500Max trades to analyze

Detected Patterns

PatternMetricExploitable WhenCounter-Strategy
timing_regularityCV of inter-trade intervalsCV < 0.3Front-run before expected trade times
sizing_predictabilityCV of trade sizesCV < 0.3Size counter-trades to match
directional_biasBuy ratio (buys/total)|ratio - 0.5| > 0.25Fade the dominant direction
reaction_speedMedian reaction time (seconds)< 60sPre-position before triggers
concentrationHerfindahl index across markets> 0.3Target concentrated markets
stop_levelsDensity of exit price clusters> 30%Hunt stops near cluster levels

Bot Detection

Scan a market to identify which wallets are bots and classify their strategy type.
import horizon as hz

bots = hz.scan_bots("0xcondition_id_here")
for bot in bots:
    if bot.is_bot:
        print(f"{bot.wallet[:10]}... {bot.strategy_type} "
              f"(confidence={bot.confidence:.0%})")
        for e in bot.evidence:
            print(f" - {e}")
ParameterTypeDefaultDescription
condition_idstrrequiredMarket condition ID
trade_limitint1000Max trades to analyze
min_tradesint5Min trades per wallet

Strategy Types

TypeDescriptionKey Signals
market_makerProvides two-sided liquidityBalanced buy/sell, regular timing, consistent sizing
grid_botPlaces orders at regular intervalsVery regular sizing, balanced, moderate frequency
momentumFollows price directionStrong directional bias, high frequency
sniperFast, large, few tradesSub-second intervals, large sizes, low count
humanManual traderIrregular timing, varied sizes, low frequency

BotDetection Fields

FieldTypeDescription
walletstrWallet address
is_botboolTrue if classified as bot (confidence > 0.6)
confidencefloat0.0 to 1.0
strategy_typestrClassification (see table above)
evidencelist[str]Human-readable reasons
trade_countintNumber of trades analyzed
avg_interval_secondsfloatMean time between trades
size_regularityfloat0 (random) to 1 (identical sizes)

What’s Next?

Fade a Wallet

To fade a wallet, use copy_trades(inverse=True) on the Copy-Trading page. reverse_copy() and reverse_copier() are convenience wrappers around this.

Deep Profiling

Wallet Profiler builds on score_wallet() with 4-dimensional behavioral analysis (temporal, market selection, order flow, edge) and automatic strategy generation.
Wallet intelligence uses Polymarket’s public Data API. Results are based on historical behavior and may not predict future performance. Use responsibly and ethically - these tools are designed for competitive market analysis, not harassment or manipulation.