holder_concentration
Analyze token supply concentration risk by calculating Gini coefficient, top holder percentages, and distribution metrics to assess holder inequality.
Instructions
Get Gini coefficient and distribution metrics for a token. Shows concentration risk, top-10/top-50 holder percentages, and supply distribution buckets. Cost: $0.02 per query. Source: On-chain token analytics.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Token contract address | |
| chain | No | Blockchain network (default: ethereum) |
Implementation Reference
- src/tools/holders.ts:108-133 (handler)The handler function that executes the logic for the "holder_concentration" tool.
async ({ token, chain }) => { const res = await apiGet<{ dataset: string; data: Record<string, unknown> }>( `/api/v1/holders/${encodeURIComponent(token)}/concentration`, { chain }, ); if (!res.ok) { return { content: [ { type: "text" as const, text: `API error (${res.status}): ${JSON.stringify(res.data)}`, }, ], isError: true, }; } const warn = stalenessWarning(res); return { content: [ { type: "text" as const, text: `${warn}${JSON.stringify(res.data.data, null, 2)}` }, ], }; }, ); - src/tools/holders.ts:90-107 (registration)Registration and schema definition for the "holder_concentration" tool.
server.registerTool( "holder_concentration", { title: "Holder Concentration", description: "Get Gini coefficient and distribution metrics for a token. Shows concentration " + "risk, top-10/top-50 holder percentages, and supply distribution buckets. " + "Cost: $0.02 per query. Source: On-chain token analytics.", inputSchema: { token: z .string() .describe("Token contract address"), chain: z .enum(["ethereum", "arbitrum", "polygon", "base", "bsc"]) .optional() .describe("Blockchain network (default: ethereum)"), }, },