Overview
Engine A monitors tracked wallet activity and returns SMART_MONEY_FLOW signals for market-side flow events.
The response may contain more than one signal for a market when multiple qualifying flow events are available.
Endpoint: POST /v1/signals/smart-money
Request
POST /v1/signals/smart-money
Content-Type: application/json{
"market_id": "0x...",
"market_category": "ALL",
"flow_type": "ALL",
"direction": "ALL",
"from_timestamp": null
}Request Parameters
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
market_id | String | ✓ | — | Polymarket market ID to query |
market_category | String | ALL | Category filter: ELECTION / CRYPTO / SPORTS / MACRO / OTHER / ALL | |
flow_type | String | ALL | INFLOW / OUTFLOW / ALL | |
direction | String | ALL | Side filter: YES / NO / ALL | |
from_timestamp | String | null | ISO 8601 — only include wallet activity after this time |
The endpoint can return multiple items for the same market.
Response
{
"data": [
{
"signal_id": "3f7a1c2e-9b4d-4e8a-b1f2-c3d4e5f6a7b8",
"signal_type": "SMART_MONEY_FLOW",
"timestamp": "2026-04-01T09:03:11Z",
"signal_expiry": "2026-04-01T15:03:11Z",
"market": {
"platform": "polymarket",
"market_id": "0x...",
"question": "Will ETH reach $5000 before June?",
"category": "CRYPTO",
"volume_24h": 215000,
"market_closes_at": "2026-06-01T00:00:00Z"
},
"signal": {
"flow_type": "INFLOW",
"direction": "YES",
"total_flow_usd": 85000,
"price_before": 0.42,
"price_after": 0.51,
"time_window_sec": 7200,
"average_entry_price": 0.44
},
"analysis": {
"consensus_wallet_count": 4,
"wallet_historical_win_rate": 0.69,
"decay_applied": false
}
}
],
"pagination": {
"next_cursor": null,
"has_more": false
}
}Response Fields
Top Level
| Field | Type | Description |
|---|---|---|
signal_id | String | UUID — unique signal identifier |
signal_type | String | Always SMART_MONEY_FLOW |
timestamp | String | ISO 8601 — when the signal was created |
signal_expiry | String | ISO 8601 — signal validity end time (6 hours after creation) |
market
| Field | Type | Description |
|---|---|---|
platform | String | "polymarket" |
market_id | String | Polymarket market ID |
question | String | Market question text |
category | String | ELECTION / CRYPTO / SPORTS / MACRO / OTHER |
volume_24h | Int | 24-hour trading volume (USD) |
market_closes_at | String | Market expiration — signals near expiry carry higher risk |
signal
| Field | Type | Description |
|---|---|---|
flow_type | String | INFLOW or OUTFLOW, derived from price movement |
direction | String | Side the wallets bought: YES or NO |
total_flow_usd | Int | Total USD moved by all consensus wallets |
price_before | Float | Market probability before the flow began |
price_after | Float | Market probability after the flow |
time_window_sec | Int | Time span over which the flow was detected (seconds) |
average_entry_price | Float | Mean entry price across all consensus wallets — use to avoid slippage on entry |
analysis
| Field | Type | Description |
|---|---|---|
consensus_wallet_count | Int | Number of wallets contributing to this signal |
wallet_historical_win_rate | Float 0–1 | Average historical win rate across contributing wallets |
decay_applied | Boolean | true if any contributing wallet has 3+ consecutive losses — informational flag only |
pagination
| Field | Type | Description |
|---|---|---|
next_cursor | String | Currently always null for on-demand engine responses |
has_more | Boolean | Currently always false for on-demand engine responses |