pulse_cohort_bias_history
Access historical hourly bias snapshots for trader cohorts. See net long/short notional and account counts per tier to track how whales and smart money shifted positions. Supports per-coin or global aggregate up to 30 days.
Instructions
Get historical hourly bias snapshots for all trader cohorts. Returns net long/short notional and account counts per tier. Use this to see how different groups (whales, smart money) have shifted their positioning over time. Supports per-coin or global aggregate. Max range is 30 days.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| useToonFormat | No | Return data in compact toon format (default: true). Set to false for standard JSON. | |
| coin | No | Filter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER). Omit for global exchange aggregate. | |
| since | No | Time window for history (max 30d). e.g. '24h', '7d', '30d' | |
| startTime | No | Explicit start time (ISO string or timestamp). Overrides 'since'. | |
| endTime | No | Explicit end time (ISO string or timestamp). Defaults to now. |
Implementation Reference
- src/index.ts:956-977 (registration)Tool registration for pulse_cohort_bias_history using server.tool (rather than server.registerTool). The tool is registered with input schema (useToonFormat, coin, since, startTime, endTime) and delegates to callAPI('/pulse/cohort-bias/history', ...).
// ══════════════════════════════════════════════════════════ // TOOL 29: Cohort Bias History // ══════════════════════════════════════════════════════════ if (shouldRegister("pulse_cohort_bias_history")) server.tool( "pulse_cohort_bias_history", "Get historical hourly bias snapshots for all trader cohorts. Returns net long/short notional and account counts per tier. Use this to see how different groups (whales, smart money) have shifted their positioning over time. Supports per-coin or global aggregate. Max range is 30 days.", { useToonFormat: useToonFormatSchema, coin: z.string().optional().describe("Filter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER). Omit for global exchange aggregate."), since: sinceSchema.optional().describe("Time window for history (max 30d). e.g. '24h', '7d', '30d'"), startTime: z.string().optional().describe("Explicit start time (ISO string or timestamp). Overrides 'since'."), endTime: z.string().optional().describe("Explicit end time (ISO string or timestamp). Defaults to now."), }, async ({ useToonFormat, coin, since, startTime, endTime }) => { const params: Record<string, string> = {}; if (since) params.since = since; if (startTime) params.startTime = startTime; if (endTime) params.endTime = endTime; if (coin) params.coin = normalizeCoin(coin); return toolResult(await callAPI(useToonFormat, "/pulse/cohort-bias/history", params)); } ); - src/index.ts:969-977 (handler)Handler function for pulse_cohort_bias_history. Accepts optional useToonFormat, coin, since, startTime, endTime params, builds a params object, and calls the API at /pulse/cohort-bias/history.
async ({ useToonFormat, coin, since, startTime, endTime }) => { const params: Record<string, string> = {}; if (since) params.since = since; if (startTime) params.startTime = startTime; if (endTime) params.endTime = endTime; if (coin) params.coin = normalizeCoin(coin); return toolResult(await callAPI(useToonFormat, "/pulse/cohort-bias/history", params)); } ); - src/index.ts:962-968 (schema)Input schema for pulse_cohort_bias_history: useToonFormat (boolean, default true), coin (optional string), since (optional time window string), startTime (optional ISO/timestamp string), endTime (optional ISO/timestamp string).
{ useToonFormat: useToonFormatSchema, coin: z.string().optional().describe("Filter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER). Omit for global exchange aggregate."), since: sinceSchema.optional().describe("Time window for history (max 30d). e.g. '24h', '7d', '30d'"), startTime: z.string().optional().describe("Explicit start time (ISO string or timestamp). Overrides 'since'."), endTime: z.string().optional().describe("Explicit end time (ISO string or timestamp). Defaults to now."), }, - build/index.js:707-727 (registration)Same tool registration in the built/compiled version (build/index.js). Uses server.tool() and the same logic.
// TOOL 29: Cohort Bias History // ══════════════════════════════════════════════════════════ if (shouldRegister("pulse_cohort_bias_history")) server.tool("pulse_cohort_bias_history", "Get historical hourly bias snapshots for all trader cohorts. Returns net long/short notional and account counts per tier. Use this to see how different groups (whales, smart money) have shifted their positioning over time. Supports per-coin or global aggregate. Max range is 30 days.", { useToonFormat: useToonFormatSchema, coin: z.string().optional().describe("Filter by coin symbol (e.g. BTC, ETH, SOL). For builder dex: prefix:COIN (e.g. xyz:SILVER). Omit for global exchange aggregate."), since: sinceSchema.optional().describe("Time window for history (max 30d). e.g. '24h', '7d', '30d'"), startTime: z.string().optional().describe("Explicit start time (ISO string or timestamp). Overrides 'since'."), endTime: z.string().optional().describe("Explicit end time (ISO string or timestamp). Defaults to now."), }, async ({ useToonFormat, coin, since, startTime, endTime }) => { const params = {}; if (since) params.since = since; if (startTime) params.startTime = startTime; if (endTime) params.endTime = endTime; if (coin) params.coin = normalizeCoin(coin); return toolResult(await callAPI(useToonFormat, "/pulse/cohort-bias/history", params)); });