API ReferenceLabels & Taxonomy
Live

Labels & Taxonomy

Every active wallet is classified in real time across four axes plus a set of behavioral and identity badges — all statistically derived from closed-position outcomes, not keyword matching. The full label set is 45+ fields.

The four axes

AxisValues
trader_typeSCALPER · DAY_TRADER · SWING_TRADER · POSITION_TRADER
performance_levelPROFITABLE · BREAK_EVEN · UNPROFITABLE · UNRATED · BANNED
size_classSHRIMP · FISH · SHARK · WHALE
exit_styleFULL_EXITER · DCA_OUT · PARTIAL_TAKER · MIXED

Badges

Trade badges (behavior-derived): RUNNER_KEEPER · CONFIDENCE_SIZER · STOP_LOSS_USER · CONSISTENT_WINNER · BAG_HOLDER · LOSS_CUTTER · LOTTO_PLAYER · DIAMOND_HANDS · PAPER_HANDS · ELITE_TRADER · VETERAN_WINNER

Identity badges (infrastructure-derived): HFT_BOT · FLASH_BOT · ARB_BOT · WASH_TRADER · TOOL_* · FRESH_FUNDED_6H · FUNDED_BY_FARM · DEX_SPECIALIST_* · TOKEN_CONCENTRATED · ROOT_CEX · ROOT_DEX_AUTH

The label object

Alongside the axes and badges, the payload carries the metrics behind the classification and the wallet’s tooling/funding fingerprint.

FieldTypeDescription
trader_type · performance_level · size_class · exit_stylestringThe four axes
automation_labelstringORGANIC … automation classification
bot_sharenumberFraction of trades placed by bots (0–1)
primary_terminal · primary_toolstringDominant trading frontend
primary_tool_pctnumberShare of trades via the primary tool
primary_dex · primary_dex_pctstring · numberDominant venue and its share
funded_by_farmbooleanFunded by a farm distributor
root_source · provenance_hopsstring · numberFunding origin (Provenance)
total_trades · win_rate_pct · total_pnlnumberActivity summary
sharpe_ratio · profit_factornumberRisk-adjusted metrics
trade_badges · identity_badgesstring[]Badge sets above

REST

L2   GET /v1/wallet/{address}/labels

curl -H "Authorization: Bearer $API_KEY" \
  "https://api.conyr.ai/v1/wallet/7xKXtg.../labels"
{
  "wallet": "7xKXtg...",
  "trader_type": "DAY_TRADER",
  "performance_level": "PROFITABLE",
  "size_class": "SHARK",
  "exit_style": "DCA_OUT",
  "automation_label": "ORGANIC",
  "bot_share": 0.05,
  "primary_terminal": "photon", "primary_tool": "photon", "primary_tool_pct": 0.85,
  "primary_dex": "raydium", "primary_dex_pct": 0.72,
  "funded_by_farm": false, "root_source": "Binance", "provenance_hops": 3,
  "total_trades": 342, "win_rate_pct": 63.0, "total_pnl": 12450.32,
  "sharpe_ratio": 1.8, "profit_factor": 2.1,
  "trade_badges": ["CONSISTENT_WINNER", "RUNNER_KEEPER", "STOP_LOSS_USER"],
  "identity_badges": ["ROOT_CEX", "TOOL_PHOTON"]
}

Stream

L2   Channel wallet:{address}:labels

The full label payload, re-published whenever a wallet’s classification changes. Deduplicated via a composite state hash (only fires on a real change) and rate-limited to a 30s minimum interval per wallet.

ws.send(JSON.stringify({ op: "subscribe", channels: ["wallet:7xKXtg...:labels"] }));

Labels recompute continuously as positions close — no nightly batch. win_rate_pct here is the per-exit rate; for the position-correct skill read see Wallet Quality. Cached 60s on REST.