openapi: 3.2.0 info: title: MadeOnSol x402 Solana API version: 1.0.0 description: 'Pay-per-call Solana and Robinhood Chain memecoin intelligence — KOL trades, deployer reputation, token risk, wallet PnL. No signup, no API key: every endpoint is x402-paywalled per request.' x-guidance: 'All endpoints are GET. Call an endpoint, receive an x402 v2 402 challenge (accepts[].amount is in token ATOMIC units), pay from your wallet, retry with the payment header. Solana endpoints (/api/x402/*) settle in USDC on Solana mainnet; Robinhood Chain endpoints (/api/x402/rhc/*) dual-accept USDG on Robinhood Chain (eip155:4663) or USDC on Solana. Path parameters are in curly braces; query parameters are optional unless marked required. Human-readable index: https://madeonsol.com/x402. The madeonsol-x402 SDKs (npm and PyPI) handle the 402 → sign → retry loop automatically, including LangChain and CrewAI toolkits.' contact: email: info@madeonsol.com servers: - url: https://madeonsol.com tags: - name: x402 Solana paths: /api/x402/kol/coordination: get: operationId: kol_coordination summary: KOL convergence signals — tokens accumulated by multiple KOLs tags: - x402 Solana parameters: - name: period in: query required: false description: Lookback window schema: type: string enum: - 1h - 6h - 24h - 7d default: 24h - name: min_kols in: query required: false description: Minimum distinct KOLs converging on a token schema: type: integer minimum: 2 maximum: 50 default: 3 - name: limit in: query required: false description: Max results schema: type: integer minimum: 1 maximum: 50 default: 20 x-payment-info: price: mode: fixed currency: USD amount: '0.020000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: coordination: type: array items: type: object additionalProperties: true required: - coordination additionalProperties: true '402': description: Payment Required /api/x402/kol/feed: get: operationId: kol_feed summary: Real-time KOL trade feed from 2,000+ tracked wallets tags: - x402 Solana parameters: - name: limit in: query required: false description: Max trades to return schema: type: integer minimum: 1 maximum: 100 default: 50 - name: action in: query required: false description: Filter by trade side schema: type: string enum: - buy - sell - name: kol in: query required: false description: Filter by a single KOL wallet address (base58) schema: type: string x-payment-info: price: mode: fixed currency: USD amount: '0.005000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: trades: type: array items: type: object additionalProperties: true required: - trades additionalProperties: true '402': description: Payment Required /api/x402/kol/leaderboard: get: operationId: kol_leaderboard summary: KOL performance rankings by PnL and win rate tags: - x402 Solana parameters: - name: period in: query required: false description: Ranking window schema: type: string enum: - today - 7d - 30d - 90d - 180d default: 7d - name: limit in: query required: false description: Max KOLs to return schema: type: integer minimum: 1 maximum: 50 default: 20 x-payment-info: price: mode: fixed currency: USD amount: '0.005000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: leaderboard: type: array items: type: object additionalProperties: true required: - leaderboard additionalProperties: true '402': description: Payment Required /api/x402/kol/pairs: get: operationId: kol_pairs summary: KOL affinity matrix — which KOLs frequently co-trade the same tokens tags: - x402 Solana parameters: - name: period in: query required: false description: Co-trade window schema: type: string enum: - 7d - 30d default: 7d - name: min_shared in: query required: false description: Minimum shared tokens between a pair schema: type: integer minimum: 1 maximum: 20 default: 3 - name: limit in: query required: false description: Max pairs to return schema: type: integer minimum: 1 maximum: 50 default: 20 x-payment-info: price: mode: fixed currency: USD amount: '0.020000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: pairs: type: array items: type: object additionalProperties: true required: - pairs additionalProperties: true '402': description: Payment Required /api/x402/kol/tokens/hot: get: operationId: kol_tokens_hot summary: KOL momentum tokens — tokens with accelerating KOL buy interest tags: - x402 Solana parameters: - name: period in: query required: false description: Momentum window schema: type: string enum: - 1h - 6h default: 6h - name: min_kols in: query required: false description: Minimum participating KOLs schema: type: integer minimum: 1 maximum: 20 default: 1 - name: limit in: query required: false description: Max tokens to return schema: type: integer minimum: 1 maximum: 50 default: 20 x-payment-info: price: mode: fixed currency: USD amount: '0.010000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: hot_tokens: type: array items: type: object additionalProperties: true required: - hot_tokens additionalProperties: true '402': description: Payment Required /api/x402/kol/tokens/trending: get: operationId: kol_tokens_trending summary: Tokens ranked by KOL buy volume — real-time capital-flow signal tags: - x402 Solana parameters: - name: period in: query required: false description: Trending window schema: type: string enum: - 5m - 15m - 30m - 1h - 2h - 4h - 12h default: 1h - name: min_kols in: query required: false description: Minimum participating KOLs schema: type: integer minimum: 1 maximum: 20 default: 1 - name: limit in: query required: false description: Max tokens to return schema: type: integer minimum: 1 maximum: 50 default: 20 x-payment-info: price: mode: fixed currency: USD amount: '0.010000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: trending: type: array items: type: object additionalProperties: true required: - trending additionalProperties: true '402': description: Payment Required /api/x402/kol/tokens/{mint}/entry-order: get: operationId: kol_tokens_mint_entry-order summary: Ranked KOL first-buyers for a token — who got in first, seconds after the first… tags: - x402 Solana parameters: - name: mint in: path required: true description: Solana token mint (base58) schema: type: string example: So11111111111111111111111111111111111111112 example: So11111111111111111111111111111111111111112 - name: limit in: query required: false description: Max KOL buyers to return schema: type: integer minimum: 1 maximum: 100 default: 50 x-payment-info: price: mode: fixed currency: USD amount: '0.010000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: entries: type: array items: type: object additionalProperties: true required: - entries additionalProperties: true '402': description: Payment Required /api/x402/kol/compare: get: operationId: kol_compare summary: Side-by-side comparison of 2-5 KOL wallets — full score profiles plus the… tags: - x402 Solana parameters: - name: wallets in: query required: false description: 2-5 comma-separated KOL wallet addresses (base58) schema: type: string x-payment-info: price: mode: fixed currency: USD amount: '0.020000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: profiles: type: array items: type: object additionalProperties: true required: - profiles additionalProperties: true '402': description: Payment Required /api/x402/kol/alerts/recent: get: operationId: kol_alerts_recent summary: Unified recent KOL alert feed — consensus clusters, fresh-token buys by winning… tags: - x402 Solana parameters: - name: window in: query required: false description: Lookback window schema: type: string enum: - 1h - 6h - 24h default: 6h - name: limit in: query required: false description: Max alerts to return schema: type: integer minimum: 1 maximum: 100 default: 30 - name: types in: query required: false description: CSV of consensus_cluster|fresh_token_kol_buy|heating_up schema: type: string x-payment-info: price: mode: fixed currency: USD amount: '0.010000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: alerts: type: array items: type: object additionalProperties: true required: - alerts additionalProperties: true '402': description: Payment Required /api/x402/deployer-hunter/alerts: get: operationId: deployer-hunter_alerts summary: Real-time alerts from tracked Pump.fun deployers (all graded tiers) tags: - x402 Solana parameters: - name: since in: query required: false description: ISO8601 timestamp — only alerts after this time schema: type: string - name: limit in: query required: false description: Max alerts to return schema: type: integer minimum: 1 maximum: 50 default: 20 - name: offset in: query required: false description: Pagination offset schema: type: integer minimum: 0 maximum: 10000 default: 0 x-payment-info: price: mode: fixed currency: USD amount: '0.010000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: alerts: type: array items: type: object additionalProperties: true required: - alerts additionalProperties: true '402': description: Payment Required /api/x402/wallet/{address}: get: operationId: wallet_address summary: Universal wallet stats + cross-product flags (is_kol / is_alpha_tracked /… tags: - x402 Solana parameters: - name: address in: path required: true description: Solana wallet address (base58) schema: type: string example: GLu63pRCYrp4BJu5P5ciYKxgeZFW9c8TJ8jWzK3TB9AR example: GLu63pRCYrp4BJu5P5ciYKxgeZFW9c8TJ8jWzK3TB9AR x-payment-info: price: mode: fixed currency: USD amount: '0.005000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. additionalProperties: true '402': description: Payment Required /api/x402/wallet/{address}/pnl: get: operationId: wallet_address_pnl summary: FIFO cost-basis PnL — realized + unrealized + daily curve + closed/open… tags: - x402 Solana parameters: - name: address in: path required: true description: Solana wallet address (base58) schema: type: string example: GLu63pRCYrp4BJu5P5ciYKxgeZFW9c8TJ8jWzK3TB9AR example: GLu63pRCYrp4BJu5P5ciYKxgeZFW9c8TJ8jWzK3TB9AR x-payment-info: price: mode: fixed currency: USD amount: '0.020000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. additionalProperties: true '402': description: Payment Required /api/x402/wallet/{address}/positions: get: operationId: wallet_address_positions summary: Open positions only — lighter slice of /pnl, shares the same cache tags: - x402 Solana parameters: - name: address in: path required: true description: Solana wallet address (base58) schema: type: string example: GLu63pRCYrp4BJu5P5ciYKxgeZFW9c8TJ8jWzK3TB9AR example: GLu63pRCYrp4BJu5P5ciYKxgeZFW9c8TJ8jWzK3TB9AR x-payment-info: price: mode: fixed currency: USD amount: '0.010000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: positions: type: array items: type: object additionalProperties: true required: - positions additionalProperties: true '402': description: Payment Required /api/x402/wallet/{address}/trades: get: operationId: wallet_address_trades summary: Cursor-paginated raw trades — filter by action / token / time window tags: - x402 Solana parameters: - name: address in: path required: true description: Solana wallet address (base58) schema: type: string example: GLu63pRCYrp4BJu5P5ciYKxgeZFW9c8TJ8jWzK3TB9AR example: GLu63pRCYrp4BJu5P5ciYKxgeZFW9c8TJ8jWzK3TB9AR - name: limit in: query required: false description: Max trades schema: type: integer minimum: 1 maximum: 500 default: 100 - name: cursor in: query required: false description: Opaque base64 pagination cursor schema: type: string - name: action in: query required: false description: Filter by trade side schema: type: string enum: - buy - sell - name: token_mint in: query required: false description: Filter by token mint (base58) schema: type: string - name: since in: query required: false description: Unix seconds — trades at/after this time schema: type: integer - name: until in: query required: false description: Unix seconds — trades before this time schema: type: integer x-payment-info: price: mode: fixed currency: USD amount: '0.005000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: trades: type: array items: type: object additionalProperties: true required: - trades additionalProperties: true '402': description: Payment Required /api/x402/tokens/{mint}/risk: get: operationId: tokens_mint_risk summary: 0–100 token risk score with named factors (mint/freeze authority, liquidity… tags: - x402 Solana parameters: - name: mint in: path required: true description: Solana token mint (base58) schema: type: string example: So11111111111111111111111111111111111111112 example: So11111111111111111111111111111111111111112 x-payment-info: price: mode: fixed currency: USD amount: '0.020000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. additionalProperties: true '402': description: Payment Required /api/x402/tokens/{mint}/buyer-quality: get: operationId: tokens_mint_buyer-quality summary: Early-buyer quality score — dump-cluster exposure, recycled-wallet rate… tags: - x402 Solana parameters: - name: mint in: path required: true description: Solana token mint (base58) schema: type: string example: So11111111111111111111111111111111111111112 example: So11111111111111111111111111111111111111112 x-payment-info: price: mode: fixed currency: USD amount: '0.020000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. additionalProperties: true '402': description: Payment Required /api/x402/token/{mint}: get: operationId: token_mint summary: Live token snapshot — price (USD/SOL), market cap, FDV, liquidity, liquidity/MC… tags: - x402 Solana parameters: - name: mint in: path required: true description: Solana token mint (base58) schema: type: string example: So11111111111111111111111111111111111111112 example: So11111111111111111111111111111111111111112 x-payment-info: price: mode: fixed currency: USD amount: '0.010000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. additionalProperties: true '402': description: Payment Required /api/x402/signals/{name}/performance: get: operationId: signals_name_performance summary: Signal Scorecard — out-of-sample reliability (hit rate, base rate, lift, sample… tags: - x402 Solana parameters: - name: name in: path required: true description: Signal name schema: type: string enum: - dump_cluster_count - runner_rate - recycled_early_buyer_count - coordination_count - scout_first_touch example: GLu63pRCYrp4BJu5P5ciYKxgeZFW9c8TJ8jWzK3TB9AR example: GLu63pRCYrp4BJu5P5ciYKxgeZFW9c8TJ8jWzK3TB9AR - name: history in: query required: false description: Include the per-day drift series schema: type: string enum: - 'true' - 'false' default: 'false' x-payment-info: price: mode: fixed currency: USD amount: '0.010000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: buckets: type: array items: type: object additionalProperties: true required: - buckets additionalProperties: true '402': description: Payment Required /api/x402/tokens/{mint}/candles: get: operationId: tokens_mint_candles summary: OHLCV candles (1m–1d timeframes, 30d history) with per-candle volume, trade… tags: - x402 Solana parameters: - name: mint in: path required: true description: Solana token mint (base58) schema: type: string example: So11111111111111111111111111111111111111112 example: So11111111111111111111111111111111111111112 - name: tf in: query required: false description: Candle timeframe schema: type: string enum: - 1m - 5m - 15m - 1h - 4h - 1d default: 1h - name: limit in: query required: false description: Max candles to return schema: type: integer minimum: 1 maximum: 1000 default: 200 - name: from in: query required: false description: 'ISO8601 window start (default limit*tf before `to`; floored to the last 30 days measured from now — a window entirely older returns 200 with no candles and history_outside_plan: true)' schema: type: string - name: to in: query required: false description: ISO8601 window end (default now) schema: type: string x-payment-info: price: mode: fixed currency: USD amount: '0.010000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: candles: type: array items: type: object additionalProperties: true required: - candles additionalProperties: true '402': description: Payment Required /api/x402/tokens/{mint}/flow: get: operationId: tokens_mint_flow summary: Buy/sell trade flow — unique buyers/sellers, SOL in/out, net flow, and a… tags: - x402 Solana parameters: - name: mint in: path required: true description: Solana token mint (base58) schema: type: string example: So11111111111111111111111111111111111111112 example: So11111111111111111111111111111111111111112 - name: window in: query required: false description: Flow window schema: type: string enum: - 1h - 24h default: 1h x-payment-info: price: mode: fixed currency: USD amount: '0.010000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. additionalProperties: true '402': description: Payment Required /api/x402/tokens/{mint}/top-traders: get: operationId: tokens_mint_top-traders summary: Wallets ranked by realized PnL (or ROI) on a token — enriched with KOL identity… tags: - x402 Solana parameters: - name: mint in: path required: true description: Solana token mint (base58) schema: type: string example: So11111111111111111111111111111111111111112 example: So11111111111111111111111111111111111111112 - name: limit in: query required: false description: Max traders to return schema: type: integer minimum: 1 maximum: 25 default: 25 - name: sort in: query required: false description: Ranking metric schema: type: string enum: - pnl - roi default: pnl - name: window_days in: query required: false description: Trade-history window in days schema: type: integer minimum: 1 maximum: 180 default: 90 - name: min_bought_sol in: query required: false description: Dust floor — drop wallets that bought less SOL than this schema: type: number minimum: 0 default: 0.1 x-payment-info: price: mode: fixed currency: USD amount: '0.020000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: traders: type: array items: type: object additionalProperties: true required: - traders additionalProperties: true '402': description: Payment Required /api/x402/tokens/{mint}/cap-table: get: operationId: tokens_mint_cap-table summary: Early-buyer cap table — first 10 non-deployer buyers with PnL, exit status… tags: - x402 Solana parameters: - name: mint in: path required: true description: Solana token mint (base58) schema: type: string example: So11111111111111111111111111111111111111112 example: So11111111111111111111111111111111111111112 x-payment-info: price: mode: fixed currency: USD amount: '0.020000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: buyers: type: array items: type: object additionalProperties: true required: - buyers additionalProperties: true '402': description: Payment Required /api/x402/tokens/almost-bonded: get: operationId: tokens_almost-bonded summary: Launchpad tokens approaching graduation — bonding progress, velocity… tags: - x402 Solana parameters: - name: min_progress in: query required: false description: Minimum bonding-curve progress % schema: type: number minimum: 0 maximum: 100 default: 80 - name: max_progress in: query required: false description: Maximum bonding-curve progress % schema: type: number minimum: 0 maximum: 100 default: 99.99 - name: min_velocity_pct_per_min in: query required: false description: Minimum Δprogress per minute (rows without a 5m snapshot are dropped when set) schema: type: number - name: max_age_minutes in: query required: false description: Max minutes since deploy schema: type: number minimum: 1 - name: deployer_tier in: query required: false description: Filter by deployer reputation tier schema: type: string enum: - elite - good - moderate - rising - cold - unranked - name: launchpad in: query required: false description: 'Restrict to one launchpad venue (default: both)' schema: type: string enum: - pumpfun - launchlab - name: authority_revoked in: query required: false description: Require mint + freeze authority revoked schema: type: string enum: - 'true' - 'false' - name: min_liq in: query required: false description: Minimum liquidity in USD schema: type: number minimum: 0 - name: sort in: query required: false description: Ranking order schema: type: string enum: - velocity_desc - progress_desc - eta_asc default: velocity_desc - name: limit in: query required: false description: Max tokens to return schema: type: integer minimum: 1 maximum: 100 default: 50 x-payment-info: price: mode: fixed currency: USD amount: '0.010000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: tokens: type: array items: type: object additionalProperties: true required: - tokens additionalProperties: true '402': description: Payment Required /api/x402/sniper/recent: get: operationId: sniper_recent summary: Recent deploys from elite/good-tier tracked deployers — deshred-detected, with… tags: - x402 Solana parameters: - name: limit in: query required: false description: Max deploys to return schema: type: integer minimum: 1 maximum: 200 default: 50 - name: since in: query required: false description: ISO8601 timestamp — only deploys after this time schema: type: string - name: deployer_tier in: query required: false description: Filter by deployer tier (keyless feed covers elite/good) schema: type: string enum: - elite - good - name: min_bond_rate in: query required: false description: Minimum deployer bond rate (0-1) schema: type: number minimum: 0 maximum: 1 x-payment-info: price: mode: fixed currency: USD amount: '0.010000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. properties: deploys: type: array items: type: object additionalProperties: true required: - deploys additionalProperties: true '402': description: Payment Required /api/x402/deployer-hunter/{address}/trajectory: get: operationId: deployer-hunter_address_trajectory summary: Deployer bond-rate trajectory — streaks, rolling 10-token windows, trend… tags: - x402 Solana parameters: - name: address in: path required: true description: Deployer wallet address (base58) schema: type: string example: GLu63pRCYrp4BJu5P5ciYKxgeZFW9c8TJ8jWzK3TB9AR example: GLu63pRCYrp4BJu5P5ciYKxgeZFW9c8TJ8jWzK3TB9AR - name: include in: query required: false description: Optionally include 90 days of daily deployer snapshots schema: type: string enum: - daily_snapshots x-payment-info: price: mode: fixed currency: USD amount: '0.010000' protocols: - x402: {} responses: '200': description: Successful response content: application/json: schema: type: object description: Illustrative response fragment; additional fields and row properties are documented by the endpoint. Not live market data. additionalProperties: true '402': description: Payment Required