{"openapi": "3.1.0", "info": {"title": "BSCPulse AI", "version": "1.0.0", "description": "Paid on-chain signal API. x402 payments on eip155:56. Not investment advice.", "contact": {"url": "https://api.newbeebnb.cn/llms.txt", "email": "ops@newbeebnb.cn"}, "x-guidance": "Step 1: GET any route without payment -> HTTP 402 with accepts[0] (x402 v2) and a PAYMENT-REQUIRED header. Step 2: sign the challenge with an x402 wallet (e.g. `baw x402-payment preview|sign`). Step 3: resend the same GET with header PAYMENT-SIGNATURE: <base64 payload> -> 200 with data. Agents that call repeatedly should buy a license key at /v1/license/day (0.5 USDT / 200 calls / 24h) or /v1/license/pro (8 USDT / 5000 / 720h) and pass Authorization: Bearer <licenseKey>, which skips per-call payment and the wallet's 20 USDT/day x402 cap. All free-text: /llms.txt."}, "servers": [{"url": "https://api.newbeebnb.cn"}], "components": {"securitySchemes": {"x402": {"type": "apiKey", "in": "header", "name": "PAYMENT-SIGNATURE", "description": "x402 v2 payment payload (base64 JSON). Request the route once without payment to get the 402 challenge, sign it, resend."}, "licenseKey": {"type": "http", "scheme": "bearer", "description": "Prepaid key from /v1/license/{plan} (bp_...). Bypasses per-call payment until quota/expiry."}}}, "x-discovery": {"ownershipProofs": ["0xeB6611AAB4E9a23e44E685AF4D2B787DF77F08Eb"]}, "paths": {"/v1/flap/status": {"get": {"summary": "FLAP token snapshot", "description": "FLAP snapshot: price, liquidity, market cap, holders, top10 concentration, 24h/4h volume, 24h deltas.", "parameters": [], "security": [{"x402": []}, {"licenseKey": []}], "x-payment-info": {"protocols": ["x402"], "network": "eip155:56", "scheme": "permit2-exact", "asset": "0x55d398326f99059fF775485246999027B3197955", "payTo": "0xeB6611AAB4E9a23e44E685AF4D2B787DF77F08Eb", "price": {"mode": "fixed", "currency": "USD", "amount": "0.02"}, "input": {"type": "http", "method": "GET"}, "discovery": "GET this route without payment to receive the live x402 challenge (HTTP 402 + PAYMENT-REQUIRED header)."}, "responses": {"200": {"description": "Delivered payload", "content": {"application/json": {"schema": {"type": "object"}}}}, "402": {"description": "Payment required (x402 v2). Body: {x402Version, accepts:[PaymentRequirements]}", "content": {"application/json": {"schema": {"type": "object"}}}}, "409": {"description": "Signature already used"}, "429": {"description": "Rate limit exceeded"}}}}, "/v1/signal/{symbol}": {"get": {"summary": "Latest scanner record for one token", "description": "Latest scanner record for one BSC token: liquidity, market cap, holders, 1h inflow, change, analyst note.", "parameters": [{"name": "symbol", "in": "path", "required": true, "schema": {"type": "string"}}], "security": [{"x402": []}, {"licenseKey": []}], "x-payment-info": {"protocols": ["x402"], "network": "eip155:56", "scheme": "permit2-exact", "asset": "0x55d398326f99059fF775485246999027B3197955", "payTo": "0xeB6611AAB4E9a23e44E685AF4D2B787DF77F08Eb", "price": {"mode": "fixed", "currency": "USD", "amount": "0.05"}, "input": {"type": "http", "method": "GET"}, "discovery": "GET this route without payment to receive the live x402 challenge (HTTP 402 + PAYMENT-REQUIRED header)."}, "responses": {"200": {"description": "Delivered payload", "content": {"application/json": {"schema": {"type": "object"}}}}, "402": {"description": "Payment required (x402 v2). Body: {x402Version, accepts:[PaymentRequirements]}", "content": {"application/json": {"schema": {"type": "object"}}}}, "409": {"description": "Signature already used"}, "429": {"description": "Rate limit exceeded"}}}}, "/v1/signals/recent": {"get": {"summary": "Recent alerts list", "description": "Recent scanner alerts (deduped) as a ranked list. Query: hours(1-168), limit(1-100).", "parameters": [{"name": "hours", "in": "query", "schema": {"type": "integer", "minimum": 1, "maximum": 168}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "minimum": 1, "maximum": 100}}], "security": [{"x402": []}, {"licenseKey": []}], "x-payment-info": {"protocols": ["x402"], "network": "eip155:56", "scheme": "permit2-exact", "asset": "0x55d398326f99059fF775485246999027B3197955", "payTo": "0xeB6611AAB4E9a23e44E685AF4D2B787DF77F08Eb", "price": {"mode": "fixed", "currency": "USD", "amount": "0.1"}, "input": {"type": "http", "method": "GET"}, "discovery": "GET this route without payment to receive the live x402 challenge (HTTP 402 + PAYMENT-REQUIRED header)."}, "responses": {"200": {"description": "Delivered payload", "content": {"application/json": {"schema": {"type": "object"}}}}, "402": {"description": "Payment required (x402 v2). Body: {x402Version, accepts:[PaymentRequirements]}", "content": {"application/json": {"schema": {"type": "object"}}}}, "409": {"description": "Signature already used"}, "429": {"description": "Rate limit exceeded"}}}}, "/v1/token/{contract}/report": {"get": {"summary": "Full observation dossier for one token", "description": "Full observation dossier for one token (chain: 56=BSC, CT_501=Solana): observation count, first/last seen, market-cap first/last/peak multiple, liquidity & holder deltas, alert counts, downsampled timeline. Query: points(1-100).", "parameters": [{"name": "contract", "in": "path", "required": true, "description": "Token contract address (0x...) or token symbol", "schema": {"type": "string"}}, {"name": "points", "in": "query", "schema": {"type": "integer", "minimum": 1, "maximum": 100}}], "security": [{"x402": []}, {"licenseKey": []}], "x-payment-info": {"protocols": ["x402"], "network": "eip155:56", "scheme": "permit2-exact", "asset": "0x55d398326f99059fF775485246999027B3197955", "payTo": "0xeB6611AAB4E9a23e44E685AF4D2B787DF77F08Eb", "price": {"mode": "fixed", "currency": "USD", "amount": "0.2"}, "input": {"type": "http", "method": "GET"}, "discovery": "GET this route without payment to receive the live x402 challenge (HTTP 402 + PAYMENT-REQUIRED header)."}, "responses": {"200": {"description": "Delivered payload", "content": {"application/json": {"schema": {"type": "object"}}}}, "402": {"description": "Payment required (x402 v2). Body: {x402Version, accepts:[PaymentRequirements]}", "content": {"application/json": {"schema": {"type": "object"}}}}, "409": {"description": "Signature already used"}, "429": {"description": "Rate limit exceeded"}}}}, "/v1/attribution/{contract}": {"get": {"summary": "Post-alert performance attribution", "description": "Post-alert attribution: baseline at first alert, market cap at +1h/+6h/+24h, peak multiple, latest drawdown. Query: horizon(1-168).", "parameters": [{"name": "contract", "in": "path", "required": true, "description": "Token contract address (0x...) or token symbol", "schema": {"type": "string"}}, {"name": "horizon", "in": "query", "description": "Hours after the alert baseline to evaluate", "schema": {"type": "integer", "minimum": 1, "maximum": 168}}], "security": [{"x402": []}, {"licenseKey": []}], "x-payment-info": {"protocols": ["x402"], "network": "eip155:56", "scheme": "permit2-exact", "asset": "0x55d398326f99059fF775485246999027B3197955", "payTo": "0xeB6611AAB4E9a23e44E685AF4D2B787DF77F08Eb", "price": {"mode": "fixed", "currency": "USD", "amount": "0.2"}, "input": {"type": "http", "method": "GET"}, "discovery": "GET this route without payment to receive the live x402 challenge (HTTP 402 + PAYMENT-REQUIRED header)."}, "responses": {"200": {"description": "Delivered payload", "content": {"application/json": {"schema": {"type": "object"}}}}, "402": {"description": "Payment required (x402 v2). Body: {x402Version, accepts:[PaymentRequirements]}", "content": {"application/json": {"schema": {"type": "object"}}}}, "409": {"description": "Signature already used"}, "429": {"description": "Rate limit exceeded"}}}}, "/v1/alerts/today": {"get": {"summary": "Rolling alert digest", "description": "Rolling alert digest: deduped count, source breakdown, top by liquidity and by 1h net inflow. Query: hours(1-168), limit(1-50).", "parameters": [{"name": "hours", "in": "query", "schema": {"type": "integer", "minimum": 1, "maximum": 168}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "minimum": 1, "maximum": 100}}], "security": [{"x402": []}, {"licenseKey": []}], "x-payment-info": {"protocols": ["x402"], "network": "eip155:56", "scheme": "permit2-exact", "asset": "0x55d398326f99059fF775485246999027B3197955", "payTo": "0xeB6611AAB4E9a23e44E685AF4D2B787DF77F08Eb", "price": {"mode": "fixed", "currency": "USD", "amount": "0.05"}, "input": {"type": "http", "method": "GET"}, "discovery": "GET this route without payment to receive the live x402 challenge (HTTP 402 + PAYMENT-REQUIRED header)."}, "responses": {"200": {"description": "Delivered payload", "content": {"application/json": {"schema": {"type": "object"}}}}, "402": {"description": "Payment required (x402 v2). Body: {x402Version, accepts:[PaymentRequirements]}", "content": {"application/json": {"schema": {"type": "object"}}}}, "409": {"description": "Signature already used"}, "429": {"description": "Rate limit exceeded"}}}}, "/v1/kol/leaderboard": {"get": {"summary": "KOL leaderboard (Binance public labels)", "description": "KOL leaderboard from Binance Web3 public KOL labels: label, X handle, realized PnL, balance, last 7 daily PnL. Query: chain(all|56|CT_501), limit(1-50).", "parameters": [{"name": "chain", "in": "query", "schema": {"type": "string", "enum": ["all", "56", "CT_501"]}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "minimum": 1, "maximum": 50}}], "security": [{"x402": []}, {"licenseKey": []}], "x-payment-info": {"protocols": ["x402"], "network": "eip155:56", "scheme": "permit2-exact", "asset": "0x55d398326f99059fF775485246999027B3197955", "payTo": "0xeB6611AAB4E9a23e44E685AF4D2B787DF77F08Eb", "price": {"mode": "fixed", "currency": "USD", "amount": "0.05"}, "input": {"type": "http", "method": "GET"}, "discovery": "GET this route without payment to receive the live x402 challenge (HTTP 402 + PAYMENT-REQUIRED header)."}, "responses": {"200": {"description": "Delivered payload", "content": {"application/json": {"schema": {"type": "object"}}}}, "402": {"description": "Payment required (x402 v2). Body: {x402Version, accepts:[PaymentRequirements]}", "content": {"application/json": {"schema": {"type": "object"}}}}, "409": {"description": "Signature already used"}, "429": {"description": "Rate limit exceeded"}}}}, "/v1/kol/dumps": {"get": {"summary": "KOL dump board with named verdicts", "description": "KOL dump board: every (KOL, token) pair that trips a fixed rule - 割 (followers underwater >=40%), 背刺 (first buy then clear within 24h, token -25% after), 先跑 (sold, token -30% after). Points at the KOL by name with recomputable evidence. Query: hours(1-720), limit(1-100), verdict(all|割|背刺|先跑).", "parameters": [{"name": "hours", "in": "query", "schema": {"type": "integer", "minimum": 1, "maximum": 720}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "minimum": 1, "maximum": 100}}, {"name": "verdict", "in": "query", "schema": {"type": "string", "enum": ["all", "割", "背刺", "先跑"]}}], "security": [{"x402": []}, {"licenseKey": []}], "x-payment-info": {"protocols": ["x402"], "network": "eip155:56", "scheme": "permit2-exact", "asset": "0x55d398326f99059fF775485246999027B3197955", "payTo": "0xeB6611AAB4E9a23e44E685AF4D2B787DF77F08Eb", "price": {"mode": "fixed", "currency": "USD", "amount": "0.1"}, "input": {"type": "http", "method": "GET"}, "discovery": "GET this route without payment to receive the live x402 challenge (HTTP 402 + PAYMENT-REQUIRED header)."}, "responses": {"200": {"description": "Delivered payload", "content": {"application/json": {"schema": {"type": "object"}}}}, "402": {"description": "Payment required (x402 v2). Body: {x402Version, accepts:[PaymentRequirements]}", "content": {"application/json": {"schema": {"type": "object"}}}}, "409": {"description": "Signature already used"}, "429": {"description": "Rate limit exceeded"}}}}, "/v1/kol/token/{contract}": {"get": {"summary": "KOL participation for one token", "description": "KOL view of one token: which KOLs bought/sold it, net USD per KOL, first-buy/last-sell times, and any verdicts on this token.", "parameters": [{"name": "contract", "in": "path", "required": true, "description": "Token contract address (0x...) or token symbol", "schema": {"type": "string"}}], "security": [{"x402": []}, {"licenseKey": []}], "x-payment-info": {"protocols": ["x402"], "network": "eip155:56", "scheme": "permit2-exact", "asset": "0x55d398326f99059fF775485246999027B3197955", "payTo": "0xeB6611AAB4E9a23e44E685AF4D2B787DF77F08Eb", "price": {"mode": "fixed", "currency": "USD", "amount": "0.05"}, "input": {"type": "http", "method": "GET"}, "discovery": "GET this route without payment to receive the live x402 challenge (HTTP 402 + PAYMENT-REQUIRED header)."}, "responses": {"200": {"description": "Delivered payload", "content": {"application/json": {"schema": {"type": "object"}}}}, "402": {"description": "Payment required (x402 v2). Body: {x402Version, accepts:[PaymentRequirements]}", "content": {"application/json": {"schema": {"type": "object"}}}}, "409": {"description": "Signature already used"}, "429": {"description": "Rate limit exceeded"}}}}, "/v1/kol/{address}": {"get": {"summary": "Single KOL dossier", "description": "One KOL dossier: label, X handle, realized PnL, current holdings across tokens, recent trades with USD value, and verdict counts (割/背刺/先跑) with evidence. Query: limit(1-100).", "parameters": [{"name": "address", "in": "path", "required": true, "description": "KOL wallet address (0x...)", "schema": {"type": "string"}}], "security": [{"x402": []}, {"licenseKey": []}], "x-payment-info": {"protocols": ["x402"], "network": "eip155:56", "scheme": "permit2-exact", "asset": "0x55d398326f99059fF775485246999027B3197955", "payTo": "0xeB6611AAB4E9a23e44E685AF4D2B787DF77F08Eb", "price": {"mode": "fixed", "currency": "USD", "amount": "0.1"}, "input": {"type": "http", "method": "GET"}, "discovery": "GET this route without payment to receive the live x402 challenge (HTTP 402 + PAYMENT-REQUIRED header)."}, "responses": {"200": {"description": "Delivered payload", "content": {"application/json": {"schema": {"type": "object"}}}}, "402": {"description": "Payment required (x402 v2). Body: {x402Version, accepts:[PaymentRequirements]}", "content": {"application/json": {"schema": {"type": "object"}}}}, "409": {"description": "Signature already used"}, "429": {"description": "Rate limit exceeded"}}}}, "/v1/license/{plan}": {"get": {"summary": "Buy a prepaid license key", "description": "Buy a prepaid license key (plan: day|pro). Pay once, then call with Authorization: Bearer <key>.", "parameters": [{"name": "plan", "in": "path", "required": true, "schema": {"type": "string", "enum": ["day", "pro"]}}], "security": [{"x402": []}, {"licenseKey": []}], "x-payment-info": {"protocols": ["x402"], "network": "eip155:56", "scheme": "permit2-exact", "asset": "0x55d398326f99059fF775485246999027B3197955", "payTo": "0xeB6611AAB4E9a23e44E685AF4D2B787DF77F08Eb", "price": {"mode": "dynamic", "currency": "USD", "min": "0.5", "max": "8"}, "input": {"type": "http", "method": "GET"}, "discovery": "GET this route without payment to receive the live x402 challenge (HTTP 402 + PAYMENT-REQUIRED header)."}, "responses": {"200": {"description": "Delivered payload", "content": {"application/json": {"schema": {"type": "object"}}}}, "402": {"description": "Payment required (x402 v2). Body: {x402Version, accepts:[PaymentRequirements]}", "content": {"application/json": {"schema": {"type": "object"}}}}, "409": {"description": "Signature already used"}, "429": {"description": "Rate limit exceeded"}}}}}}