{"openapi":"3.1.0","info":{"title":"Paxie.Matrix Data API","version":"1.2.0","description":"Launch data for Robinhood Chain and Solana, updated every 20 s (≤30 s lag). Robinhood Chain: every ETH-quoted Uniswap v4 and v3 pool created in the last 24 h. Solana: pump.fun tokens 5 min to 4 h old that show curve progress. Buyer bursts, a rug check on who holds each pool's liquidity (per burst, and per token before you buy), new pools, per-minute flow, repeat-buyer crews and copy-leader replays. Robinhood signals are scored 30 minutes later, Solana ones at graduation or 20 minutes, rugs counted. Data, not trading advice. Paid per call with x402 (USDC on Base or Solana); no API keys. Every schema property carries x-available: signal = Known when the burst fires. Safe to use as a feature. signal+seconds = Filled 5-60 s after the signal, computed from chain state as of the signal block. Safe as a feature once present; null until then. signal+30m = Outcome. Exists only after the scoring window closes (Robinhood 30 min; Solana graduation or 20 min). Never use as a feature: a backtest that does uses the future. now = Current state as of the response's generatedAt (or the row's checkedAt). Not tied to a signal. Errors (4xx/5xx) are never charged. /v1 is canonical; the original paid paths are also served unversioned."},"servers":[{"url":"https://api.paxie.fun","description":"Production (x402 on Base and Solana mainnet)"}],"tags":[{"name":"Robinhood Chain","description":"ETH-quoted Uniswap v4/v3 pools created in the last 24 h"},{"name":"Solana","description":"pump.fun tokens 5 min to 4 h old; copy-leader replays"},{"name":"Both chains"},{"name":"Desk"},{"name":"Free","description":"No payment"}],"paths":{"/v1/rh/bursts/live":{"get":{"operationId":"getRhBurstsLive","tags":["Robinhood Chain"],"summary":"Robinhood Chain buyer bursts from the last 1-240 minutes, on every ETH-quoted Uniswap v4 and v3 pool created on the chai","description":"Robinhood Chain buyer bursts from the last 1-240 minutes, on every ETH-quoted Uniswap v4 and v3 pool created on the chain in the last 24 h. Each burst carries net ETH inflow, buy and sell swaps, scripted vs spread buying, pool age and a rug check (who held the pool's liquidity at the signal); outcomes are scored 30 minutes after the signal. Data rewritten every 20 s (<= 30 s behind the chain); data older than 120 s is refused with a 503 and not charged. Also served at /rh/bursts/live (unversioned, for existing Bazaar listings).","parameters":[{"name":"minutes","in":"query","required":false,"description":"Look-back window in minutes, 1-240 (default 60)","schema":{"type":"number","minimum":1,"maximum":240,"default":60},"example":60},{"name":"tier","in":"query","required":false,"description":"main (default), lite, refire, old or all","schema":{"type":"string","enum":["main","lite","refire","old","all"],"default":"main"},"example":"main"},{"name":"lp","in":"query","required":false,"description":"Rug-check filter. safe = burned, launchpad/locker or other wallets held >= 50% of the liquidity at the signal. held = the creator / LP adder held >= 50% (can pull it). Rows whose LP owner could not be read match neither. Default all.","schema":{"type":"string","enum":["all","safe","held"],"default":"all"},"example":"all"}],"security":[{"x402":[]}],"x-price-usd":0.01,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.01,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["robinhood-chain","rug-check","memecoins","uniswap-v4","uniswap-v3"],"resource":"https://api.paxie.fun/v1/rh/bursts/live"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/RhEnvelope"},{"type":"object","properties":{"bursts":{"type":"array","items":{"$ref":"#/components/schemas/RhBurst"}},"note":{"type":"string","description":"Only on a quiet window: says nothing fired."},"latest":{"anyOf":[{"$ref":"#/components/schemas/RhBurst"},{"type":"null"}],"description":"Only on a quiet window: the most recent matching burst before it."}},"required":["bursts"]}]},"example":{"chain":"robinhood","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"ethUsd":3912.4,"rules":{"main":"net ETH in >= 1 within 60s, >= 12 buy swaps, still buying over the last 15s, pool 5 min - 6 h old","lite":"net ETH in >= 0.5 within 60s, >= 8 buy swaps, pool 5 min - 6 h old","refire":"main thresholds again on the same pool >= 30 min after its last burst","old":"first main-threshold burst on a 6-24 h old pool","outcome":"path-scored for 30 min after the signal; ruleRet = the fade 0.5 ETH / stall 60s exit, 2% round-trip costs included; a liquidity pull of >= 80% inside the window scores every exit not yet taken as -100% (rug)"},"bursts":[{"at":1791567752000,"token":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2","pool":"0x9b1f4e7a2c5d80e36f1a9c4b7d2e05f8a3c6b19e7d40f2a5c8e1b36d9f704a2c","tier":"main","dex":"v4","shape":"spread","inflowEth":1.421,"buys":17,"sells":3,"windowSec":60,"poolAgeMin":6.4,"sameSizeMax":2,"top3Share":0.38,"sizeCV":0.9,"buyers":14,"repeatBuyers":3,"lp":{"class":"held","insiderShare":1,"unknownShare":0,"burnedShare":0,"contractShare":0,"otherShare":0,"lpAgeMin":6.2,"estimated":false},"outcome":{"scored":true,"rug":{"atSec":212,"lpRemoved":0.97},"ret30m":-1,"peakRet":0.412,"ruleRet":-0.084,"byRule":{"fade05stall60":{"ret":-0.084,"why":"burst-stall","sec":75},"hold":{"ret":-1.02,"why":"held+rug","sec":null}}}}]}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/rh/bursts/history":{"get":{"operationId":"getRhBurstsHistory","tags":["Robinhood Chain"],"summary":"Scored Robinhood Chain buyer bursts from the last 1-24 hours","description":"Scored Robinhood Chain buyer bursts from the last 1-24 hours. Each row has its rug check and 30-minute outcome: return at 30 min, peak, the return under each exit rule (2% round-trip costs included) and whether the liquidity was pulled. Outcome fields are labels, not features (see /v1/fields). Data rewritten every 20 s (<= 30 s behind the chain); data older than 120 s is refused with a 503 and not charged. Also served at /rh/bursts/history (unversioned, for existing Bazaar listings).","parameters":[{"name":"hours","in":"query","required":false,"description":"Look-back window in hours, 1-24 (default 24)","schema":{"type":"number","minimum":1,"maximum":24,"default":24},"example":24},{"name":"tier","in":"query","required":false,"description":"Tier filter (default all)","schema":{"type":"string","enum":["main","lite","refire","old","all"],"default":"all"},"example":"all"},{"name":"lp","in":"query","required":false,"description":"Rug-check filter. safe = burned, launchpad/locker or other wallets held >= 50% of the liquidity at the signal. held = the creator / LP adder held >= 50% (can pull it). Rows whose LP owner could not be read match neither. Default all.","schema":{"type":"string","enum":["all","safe","held"],"default":"all"},"example":"all"}],"security":[{"x402":[]}],"x-price-usd":0.02,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.02,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["robinhood-chain","rug-check","backtesting","memecoins","uniswap-v4"],"resource":"https://api.paxie.fun/v1/rh/bursts/history"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/RhEnvelope"},{"type":"object","properties":{"bursts":{"type":"array","items":{"$ref":"#/components/schemas/RhBurst"}}},"required":["bursts"]}]},"example":{"chain":"robinhood","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"ethUsd":3912.4,"rules":{"main":"net ETH in >= 1 within 60s, >= 12 buy swaps, still buying over the last 15s, pool 5 min - 6 h old","lite":"net ETH in >= 0.5 within 60s, >= 8 buy swaps, pool 5 min - 6 h old","refire":"main thresholds again on the same pool >= 30 min after its last burst","old":"first main-threshold burst on a 6-24 h old pool","outcome":"path-scored for 30 min after the signal; ruleRet = the fade 0.5 ETH / stall 60s exit, 2% round-trip costs included; a liquidity pull of >= 80% inside the window scores every exit not yet taken as -100% (rug)"},"bursts":[{"at":1791567752000,"token":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2","pool":"0x9b1f4e7a2c5d80e36f1a9c4b7d2e05f8a3c6b19e7d40f2a5c8e1b36d9f704a2c","tier":"main","dex":"v4","shape":"spread","inflowEth":1.421,"buys":17,"sells":3,"windowSec":60,"poolAgeMin":6.4,"sameSizeMax":2,"top3Share":0.38,"sizeCV":0.9,"buyers":14,"repeatBuyers":3,"lp":{"class":"held","insiderShare":1,"unknownShare":0,"burnedShare":0,"contractShare":0,"otherShare":0,"lpAgeMin":6.2,"estimated":false},"outcome":{"scored":true,"rug":{"atSec":212,"lpRemoved":0.97},"ret30m":-1,"peakRet":0.412,"ruleRet":-0.084,"byRule":{"fade05stall60":{"ret":-0.084,"why":"burst-stall","sec":75},"hold":{"ret":-1.02,"why":"held+rug","sec":null}}}}]}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/rh/pools/new":{"get":{"operationId":"getRhPoolsNew","tags":["Robinhood Chain"],"summary":"ETH-quoted Uniswap v4 and v3 pools opened on Robinhood Chain in the last 1-24 hours, youngest first, with token, age, la","description":"ETH-quoted Uniswap v4 and v3 pools opened on Robinhood Chain in the last 1-24 hours, youngest first, with token, age, last price, ETH liquidity, last swap time, 60-minute net flow and the burst tiers that fired. Data rewritten every 20 s (<= 30 s behind the chain); data older than 120 s is refused with a 503 and not charged. Also served at /rh/pools/new (unversioned, for existing Bazaar listings).","parameters":[{"name":"hours","in":"query","required":false,"description":"Pool age limit in hours, 1-24 (default 6)","schema":{"type":"number","minimum":1,"maximum":24,"default":6},"example":6},{"name":"limit","in":"query","required":false,"description":"Max rows, 1-1000 (default 200)","schema":{"type":"number","minimum":1,"maximum":1000,"default":200},"example":200}],"security":[{"x402":[]}],"x-price-usd":0.005,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.005,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["robinhood-chain","new-pools","uniswap-v4","uniswap-v3","memecoins"],"resource":"https://api.paxie.fun/v1/rh/pools/new"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/RhEnvelope"},{"type":"object","properties":{"pools":{"type":"array","items":{"$ref":"#/components/schemas/Pool"}}},"required":["pools"]}]},"example":{"chain":"robinhood","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"ethUsd":3912.4,"rules":{"main":"net ETH in >= 1 within 60s, >= 12 buy swaps, still buying over the last 15s, pool 5 min - 6 h old","lite":"net ETH in >= 0.5 within 60s, >= 8 buy swaps, pool 5 min - 6 h old","refire":"main thresholds again on the same pool >= 30 min after its last burst","old":"first main-threshold burst on a 6-24 h old pool","outcome":"path-scored for 30 min after the signal; ruleRet = the fade 0.5 ETH / stall 60s exit, 2% round-trip costs included; a liquidity pull of >= 80% inside the window scores every exit not yet taken as -100% (rug)"},"pools":[{"id":"0x9b1f4e7a2c5d80e36f1a9c4b7d2e05f8a3c6b19e7d40f2a5c8e1b36d9f704a2c","dex":"v4","token":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2","createdBlock":84324409,"ageMin":47.4,"lastPx":1.2081522e-7,"liqEth":3.412,"lastSwapAt":1791570171000,"net60m":2.104,"buys60m":88,"sells60m":31,"fired":["main","lite"]}]}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/sol/bursts/live":{"get":{"operationId":"getSolBurstsLive","tags":["Solana"],"summary":"Solana pump.fun bonding-curve buyer bursts from the last 1-240 minutes, on pump.fun tokens 5 min to 4 h old that show cu","description":"Solana pump.fun bonding-curve buyer bursts from the last 1-240 minutes, on pump.fun tokens 5 min to 4 h old that show curve progress. Each burst has SOL inflow, curve position, token age and, on sampled bursts, its anatomy (same-slot bundles, scripted sizes, top-3 share, top holders). Outcomes are scored at graduation or 20 minutes. Data rewritten every 20 s; data older than 120 s is refused with a 503 and not charged. Also served at /sol/bursts/live (unversioned, for existing Bazaar listings).","parameters":[{"name":"minutes","in":"query","required":false,"description":"Look-back window in minutes, 1-240 (default 60)","schema":{"type":"number","minimum":1,"maximum":240,"default":60},"example":60}],"security":[{"x402":[]}],"x-price-usd":0.01,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.01,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["solana","pump-fun","memecoins","bonding-curve","onchain-data"],"resource":"https://api.paxie.fun/v1/sol/bursts/live"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SolEnvelope"},{"type":"object","properties":{"bursts":{"type":"array","items":{"$ref":"#/components/schemas/SolBurst"}},"note":{"type":"string"},"latest":{"anyOf":[{"$ref":"#/components/schemas/SolBurst"},{"type":"null"}]}},"required":["bursts"]}]},"example":{"chain":"solana","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"solUsd":141.2,"rule":"pump.fun bonding curve: >= 10 SOL net in within 60s, token >= 5 min old, curve 25-55% full, still buying over the last ~15s; outcome = the curve path to graduation or 20 min (price = curve SOL squared), 2.5% round-trip costs","bursts":[{"at":1791568772000,"mint":"8Fz3kQ2vXr7nTq1mWc5yBd9LhP4sGa6eRu2oJx3Kpump","inflowSol":13.43,"windowSec":60,"curveFrom":0.253,"curveAt":0.411,"tokenAgeMin":5.2,"anatomy":{"buys":33,"buyers":29,"sameSlotMax":2,"bundledShare":0,"sameSizeMax":5,"top3Share":0.54,"holdersTop10":0.195,"holderTop1":0.028,"repeatBuyers":10},"outcome":{"scored":true,"graduated":false,"gradMin":null,"peakRet":0.31,"gradRet":null,"ret20m":-0.18,"ruleRet":-0.04,"nonStandardCurve":false,"byRule":{"fade3stall60out85arm30":{"ret":-0.04,"why":"burst-fade","sec":95},"hold":{"ret":-0.18,"why":"held","sec":null}}}}]}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/sol/bursts/history":{"get":{"operationId":"getSolBurstsHistory","tags":["Solana"],"summary":"Scored Solana pump.fun bonding-curve bursts from the last 1-24 hours: which graduated and how fast, the peak return, and","description":"Scored Solana pump.fun bonding-curve bursts from the last 1-24 hours: which graduated and how fast, the peak return, and the return under each exit rule with 2.5% round-trip costs. Data rewritten every 20 s; data older than 120 s is refused with a 503 and not charged. Also served at /sol/bursts/history (unversioned, for existing Bazaar listings).","parameters":[{"name":"hours","in":"query","required":false,"description":"Look-back window in hours, 1-24 (default 24)","schema":{"type":"number","minimum":1,"maximum":24,"default":24},"example":24}],"security":[{"x402":[]}],"x-price-usd":0.02,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.02,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["solana","pump-fun","backtesting","memecoins","bonding-curve"],"resource":"https://api.paxie.fun/v1/sol/bursts/history"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/SolEnvelope"},{"type":"object","properties":{"bursts":{"type":"array","items":{"$ref":"#/components/schemas/SolBurst"}}},"required":["bursts"]}]},"example":{"chain":"solana","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"solUsd":141.2,"rule":"pump.fun bonding curve: >= 10 SOL net in within 60s, token >= 5 min old, curve 25-55% full, still buying over the last ~15s; outcome = the curve path to graduation or 20 min (price = curve SOL squared), 2.5% round-trip costs","bursts":[{"at":1791568772000,"mint":"8Fz3kQ2vXr7nTq1mWc5yBd9LhP4sGa6eRu2oJx3Kpump","inflowSol":13.43,"windowSec":60,"curveFrom":0.253,"curveAt":0.411,"tokenAgeMin":5.2,"anatomy":{"buys":33,"buyers":29,"sameSlotMax":2,"bundledShare":0,"sameSizeMax":5,"top3Share":0.54,"holdersTop10":0.195,"holderTop1":0.028,"repeatBuyers":10},"outcome":{"scored":true,"graduated":false,"gradMin":null,"peakRet":0.31,"gradRet":null,"ret20m":-0.18,"ruleRet":-0.04,"nonStandardCurve":false,"byRule":{"fade3stall60out85arm30":{"ret":-0.04,"why":"burst-fade","sec":95},"hold":{"ret":-0.18,"why":"held","sec":null}}}}]}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/snapshot":{"get":{"operationId":"getSnapshot","tags":["Both chains"],"summary":"Everything in one call, Robinhood Chain and Solana: live buyer bursts on both chains (last 1-240 minutes, all tiers), Ro","description":"Everything in one call, Robinhood Chain and Solana: live buyer bursts on both chains (last 1-240 minutes, all tiers), Robinhood pools opened in the last hour, and 24-hour tallies (bursts, scored, median 30-minute return, rug check, pump.fun graduations). Data rewritten every 20 s; data older than 120 s is refused with a 503 and not charged. Also served at /snapshot (unversioned, for existing Bazaar listings).","parameters":[{"name":"minutes","in":"query","required":false,"description":"Burst look-back window in minutes, 1-240 (default 60)","schema":{"type":"number","minimum":1,"maximum":240,"default":60},"example":60}],"security":[{"x402":[]}],"x-price-usd":0.03,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.03,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["robinhood-chain","solana","pump-fun","rug-check","memecoins"],"resource":"https://api.paxie.fun/v1/snapshot"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Snapshot"},"example":{"schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"windowMin":60,"robinhood":{"ethUsd":3912.4,"bursts":[{"at":1791567752000,"token":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2","pool":"0x9b1f4e7a2c5d80e36f1a9c4b7d2e05f8a3c6b19e7d40f2a5c8e1b36d9f704a2c","tier":"main","dex":"v4","shape":"spread","inflowEth":1.421,"buys":17,"sells":3,"windowSec":60,"poolAgeMin":6.4,"sameSizeMax":2,"top3Share":0.38,"sizeCV":0.9,"buyers":14,"repeatBuyers":3,"lp":{"class":"held","insiderShare":1,"unknownShare":0,"burnedShare":0,"contractShare":0,"otherShare":0,"lpAgeMin":6.2,"estimated":false},"outcome":{"scored":true,"rug":{"atSec":212,"lpRemoved":0.97},"ret30m":-1,"peakRet":0.412,"ruleRet":-0.084,"byRule":{"fade05stall60":{"ret":-0.084,"why":"burst-stall","sec":75},"hold":{"ret":-1.02,"why":"held+rug","sec":null}}}},{"at":1791569852000,"token":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2","pool":"0x9b1f4e7a2c5d80e36f1a9c4b7d2e05f8a3c6b19e7d40f2a5c8e1b36d9f704a2c","tier":"lite","dex":"v4","shape":"other","inflowEth":0.504,"buys":10,"sells":9,"windowSec":60,"poolAgeMin":41.4,"sameSizeMax":2,"top3Share":0.46,"sizeCV":0.44,"buyers":null,"repeatBuyers":null,"lp":{"class":"held","insiderShare":1,"unknownShare":0,"burnedShare":0,"contractShare":0,"otherShare":0,"lpAgeMin":41.2,"estimated":false},"outcome":{"scored":false}}],"newPools":[{"id":"0x9b1f4e7a2c5d80e36f1a9c4b7d2e05f8a3c6b19e7d40f2a5c8e1b36d9f704a2c","dex":"v4","token":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2","createdBlock":84324409,"ageMin":47.4,"lastPx":1.2081522e-7,"liqEth":3.412,"lastSwapAt":1791570171000,"net60m":2.104,"buys60m":88,"sells60m":31,"fired":["main","lite"]}],"last24h":{"bursts":2,"scored":1,"medianRet30m":-1,"medianRuleRet":-0.084,"rugCheck":{"checked":2,"held":2,"heldPct":100,"heldScored":1,"heldPulled":1,"heldPulledPct":100,"safe":0,"safeScored":0,"safePulled":0}}},"solana":{"solUsd":141.2,"bursts":[{"at":1791568772000,"mint":"8Fz3kQ2vXr7nTq1mWc5yBd9LhP4sGa6eRu2oJx3Kpump","inflowSol":13.43,"windowSec":60,"curveFrom":0.253,"curveAt":0.411,"tokenAgeMin":5.2,"anatomy":{"buys":33,"buyers":29,"sameSlotMax":2,"bundledShare":0,"sameSizeMax":5,"top3Share":0.54,"holdersTop10":0.195,"holderTop1":0.028,"repeatBuyers":10},"outcome":{"scored":true,"graduated":false,"gradMin":null,"peakRet":0.31,"gradRet":null,"ret20m":-0.18,"ruleRet":-0.04,"nonStandardCurve":false,"byRule":{"fade3stall60out85arm30":{"ret":-0.04,"why":"burst-fade","sec":95},"hold":{"ret":-0.18,"why":"held","sec":null}}}}],"last24h":{"bursts":1,"scored":1,"graduated":0}}}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/rh/pools/{id}/flow":{"get":{"operationId":"getRhPoolFlow","tags":["Robinhood Chain"],"summary":"One Robinhood Chain pool by Uniswap v4 pool id or v3 pool address (path parameter id, from /v1/rh/pools/new)","description":"One Robinhood Chain pool by Uniswap v4 pool id or v3 pool address (path parameter id, from /v1/rh/pools/new). Returns 1-minute buckets for the last 60 minutes (net ETH, buy ETH, sell ETH, buy and sell swap counts) and the pool's burst history. Untracked pools answer 404 and are not charged. Data rewritten every 20 s (<= 30 s behind the chain); data older than 120 s is refused with a 503 and not charged. Also served at /rh/pools/:id/flow (unversioned, for existing Bazaar listings).","parameters":[{"name":"id","in":"path","required":true,"description":"Uniswap v4 pool id (0x + 64 hex) or v3 pool address (0x + 40 hex) of an ETH-quoted pool created in the last 24 h, from /v1/rh/pools/new","schema":{"type":"string","pattern":"^0x([0-9a-fA-F]{40}|[0-9a-fA-F]{64})$"},"example":"0x9b1f4e7a2c5d80e36f1a9c4b7d2e05f8a3c6b19e7d40f2a5c8e1b36d9f704a2c"}],"security":[{"x402":[]}],"x-price-usd":0.005,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.005,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["robinhood-chain","order-flow","uniswap-v4","uniswap-v3","memecoins"],"resource":"https://api.paxie.fun/v1/rh/pools/:id/flow"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/RhEnvelope"},{"$ref":"#/components/schemas/Flow"}]},"example":{"chain":"robinhood","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"ethUsd":3912.4,"rules":{"main":"net ETH in >= 1 within 60s, >= 12 buy swaps, still buying over the last 15s, pool 5 min - 6 h old","lite":"net ETH in >= 0.5 within 60s, >= 8 buy swaps, pool 5 min - 6 h old","refire":"main thresholds again on the same pool >= 30 min after its last burst","old":"first main-threshold burst on a 6-24 h old pool","outcome":"path-scored for 30 min after the signal; ruleRet = the fade 0.5 ETH / stall 60s exit, 2% round-trip costs included; a liquidity pull of >= 80% inside the window scores every exit not yet taken as -100% (rug)"},"pool":{"id":"0x9b1f4e7a2c5d80e36f1a9c4b7d2e05f8a3c6b19e7d40f2a5c8e1b36d9f704a2c","dex":"v4","token":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2","createdBlock":84324409,"ageMin":47.4,"lastPx":1.2081522e-7,"liqEth":3.412,"lastSwapAt":1791570171000,"net60m":2.104,"buys60m":88,"sells60m":31,"fired":["main","lite"],"mins":[[1791570092000,0.42,0.61,0.19,9,3],[1791570152000,-0.08,0.11,0.19,2,4]],"minCols":["minuteStartMs","netEth","buyEth","sellEth","buys","sells"]},"bursts":[{"at":1791567752000,"token":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2","pool":"0x9b1f4e7a2c5d80e36f1a9c4b7d2e05f8a3c6b19e7d40f2a5c8e1b36d9f704a2c","tier":"main","dex":"v4","shape":"spread","inflowEth":1.421,"buys":17,"sells":3,"windowSec":60,"poolAgeMin":6.4,"sameSizeMax":2,"top3Share":0.38,"sizeCV":0.9,"buyers":14,"repeatBuyers":3,"lp":{"class":"held","insiderShare":1,"unknownShare":0,"burnedShare":0,"contractShare":0,"otherShare":0,"lpAgeMin":6.2,"estimated":false},"outcome":{"scored":true,"rug":{"atSec":212,"lpRemoved":0.97},"ret30m":-1,"peakRet":0.412,"ruleRet":-0.084,"byRule":{"fade05stall60":{"ret":-0.084,"why":"burst-stall","sec":75},"hold":{"ret":-1.02,"why":"held+rug","sec":null}}}},{"at":1791569852000,"token":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2","pool":"0x9b1f4e7a2c5d80e36f1a9c4b7d2e05f8a3c6b19e7d40f2a5c8e1b36d9f704a2c","tier":"lite","dex":"v4","shape":"other","inflowEth":0.504,"buys":10,"sells":9,"windowSec":60,"poolAgeMin":41.4,"sameSizeMax":2,"top3Share":0.46,"sizeCV":0.44,"buyers":null,"repeatBuyers":null,"lp":{"class":"held","insiderShare":1,"unknownShare":0,"burnedShare":0,"contractShare":0,"otherShare":0,"lpAgeMin":41.2,"estimated":false},"outcome":{"scored":false}}]}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"404":{"description":"Not tracked (see code). Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/rh/token/{addr}/rugcheck":{"get":{"operationId":"getRhTokenRugcheck","tags":["Robinhood Chain"],"summary":"Rug check for a Robinhood Chain token before you buy (path parameter addr = token contract)","description":"Rug check for a Robinhood Chain token before you buy (path parameter addr = token contract). Returns the LP ownership profile of each tracked Uniswap v4 pool for the token: the share of liquidity the creator or LP adder can pull (insiderShare), and the shares burned, held by launchpad or locker contracts, or held by other wallets, plus LP age and a class (held, safe, unknown, empty). Pools under 6 hours old are re-profiled on a rolling basis (about every 10 minutes; checkedAt per row). Tokens still on the Pons launchpad bonding curve answer class pons-curve with the curve, creator, fill progress, ETH in the curve, age and fees: a curve has no LP to pull until it graduates. Untracked tokens answer 404 and are not charged.","parameters":[{"name":"addr","in":"path","required":true,"description":"Token contract address (0x + 40 hex)","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"example":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2"}],"security":[{"x402":[]}],"x-price-usd":0.02,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.02,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["rug-check","robinhood-chain","token-safety","liquidity","uniswap-v4"],"resource":"https://api.paxie.fun/v1/rh/token/:addr/rugcheck"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/RugEnvelope"},{"type":"object","properties":{"token":{"type":"string"},"class":{"type":"string","enum":["held","unknown","empty","safe","pons-curve"],"description":"The riskiest class across the token's profiled pools (held > unknown > empty > safe), or pons-curve for a token still on the Pons bonding curve (pools empty, see pons)."},"pools":{"type":"array","items":{"$ref":"#/components/schemas/RugProfile"}},"pons":{"type":"object","properties":{"symbol":{"type":["string","null"]},"curve":{"type":"string"},"creator":{"type":["string","null"]},"launchBlock":{"type":["integer","null"]},"ageMin":{"type":["number","null"]},"graduated":{"type":"boolean"},"gradBlock":{"type":["integer","null"]},"thresholdEth":{"type":["number","null"]},"ethInCurve":{"type":["number","null"]},"progress":{"type":["number","null"]},"mcapUsd":{"type":["number","null"]},"feeBps":{"type":["integer","null"]},"readBlock":{"type":["integer","null"]},"checkedAt":{"type":["integer","null"]}},"required":["curve","graduated"]},"note":{"type":"string"}},"required":["token","class","pools"]}]},"example":{"chain":"robinhood","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"token":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2","class":"held","pools":[{"pool":"0x9b1f4e7a2c5d80e36f1a9c4b7d2e05f8a3c6b19e7d40f2a5c8e1b36d9f704a2c","token":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2","dex":"v4","poolAgeMin":47.4,"checkedAt":1791570032000,"block":84351049,"class":"held","insiderShare":1,"burnedShare":0,"contractShare":0,"otherShare":0,"unknownShare":0,"lpAgeMin":41.8,"lpAdds":1,"creator":"0x2d4f8a1c9e3b70d6a5f2e81c4b9d07a3e6f15c28"}]}}}},"400":{"description":"bad_address. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"404":{"description":"Not tracked (see code). Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/sol/wallets/leaders":{"get":{"operationId":"getSolWalletLeaders","tags":["Solana"],"summary":"Top Solana copy-trade leaders ranked by shrunk replay EV","description":"Top Solana copy-trade leaders ranked by shrunk replay EV. Each wallet's last 60 big pump.fun buys are replayed through one fixed copy exit (stop, take-profit, trail and time stop, fees in, capped at +100%), then shrunk toward the pooled mean so short records do not top the board. Includes sample size, win share and the leader's own sell pattern. On-chain addresses only, no names. Rebuilt hourly; refused (503, not charged) if older than 3 h.","parameters":[{"name":"limit","in":"query","required":false,"description":"Max rows, 1-50 (default 50)","schema":{"type":"number","minimum":1,"maximum":50,"default":50},"example":50}],"security":[{"x402":[]}],"x-price-usd":0.05,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.05,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["solana","copy-trading","smart-money","pump-fun","wallets"],"resource":"https://api.paxie.fun/v1/sol/wallets/leaders"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/WalletsEnvelope"},{"type":"object","properties":{"method":{"type":"object"},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/WalletLeader"}}},"required":["wallets"]}]},"example":{"chain":"solana","schemaVersion":1,"generatedAt":1791569012000,"ageSec":1200,"method":{"metric":"replay EV per copy: each big buy replayed through the desk copy exits, 60-min path, fees in, capped at +100%","window":"last 60 big buys per wallet","shrink":{"k":15,"prior":0.0119},"minN":10},"wallets":[{"rank":1,"wallet":"BUkp7rWm3xQe8YtN2fLd5hJc9vGa4sKo1iPzRb6nTq3E","n":12,"evShrunk":0.0518,"evRaw":0.1017,"winShare":0.667,"shadowed":212,"shadowHit":0.509,"lastBuyAt":1791568652000,"sells":{"observed":3,"sold":2,"soldShare":0.667,"medSoldSec":57.5,"medSellGain":0.16,"soldWithin60sShare":0.5}},{"rank":2,"wallet":"9vRq2LxT7mWc4Kd8YbN3pFh6sJa1eGu5oZiQ2rXtMwPk","n":30,"evShrunk":-0.012,"evRaw":-0.024,"winShare":0.4,"shadowed":64,"shadowHit":0.328,"lastBuyAt":1791567392000,"sells":null}]}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/rh/crews":{"get":{"operationId":"getRhCrews","tags":["Robinhood Chain"],"summary":"Repeat-buyer clusters on Robinhood Chain: wallets that bought inside 3 or more of the buyer bursts the scout has capture","description":"Repeat-buyer clusters on Robinhood Chain: wallets that bought inside 3 or more of the buyer bursts the scout has captured, with burst count and last-seen time. Use it to spot sniper crews before they dump on you. Data rewritten every 20 s (<= 30 s behind the chain); data older than 120 s is refused with a 503 and not charged.","parameters":[{"name":"minBursts","in":"query","required":false,"description":"Minimum bursts a wallet bought into, 3-50 (default 3)","schema":{"type":"number","minimum":3,"maximum":50,"default":3},"example":3},{"name":"limit","in":"query","required":false,"description":"Max rows, 1-25 (default 25)","schema":{"type":"number","minimum":1,"maximum":25,"default":25},"example":25}],"security":[{"x402":[]}],"x-price-usd":0.02,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.02,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["robinhood-chain","snipers","wallets","memecoins","onchain-data"],"resource":"https://api.paxie.fun/v1/rh/crews"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/RhEnvelope"},{"type":"object","properties":{"walletsTracked":{"type":["integer","null"]},"crews":{"type":"array","items":{"$ref":"#/components/schemas/Crew"}}},"required":["crews"]}]},"example":{"chain":"robinhood","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"ethUsd":3912.4,"rules":{"main":"net ETH in >= 1 within 60s, >= 12 buy swaps, still buying over the last 15s, pool 5 min - 6 h old","lite":"net ETH in >= 0.5 within 60s, >= 8 buy swaps, pool 5 min - 6 h old","refire":"main thresholds again on the same pool >= 30 min after its last burst","old":"first main-threshold burst on a 6-24 h old pool","outcome":"path-scored for 30 min after the signal; ruleRet = the fade 0.5 ETH / stall 60s exit, 2% round-trip costs included; a liquidity pull of >= 80% inside the window scores every exit not yet taken as -100% (rug)"},"walletsTracked":5120,"crews":[{"wallet":"0x5e2a9c1d7f30b84e6a2d1c9f8b3e07a4d6c5f2b1","bursts":9,"lastSeenAt":1791569612000,"lastSeenMinAgo":10}]}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/sol/callers/leaderboard":{"get":{"operationId":"getSolCallersLeaderboard","tags":["Solana"],"summary":"Telegram call-channel callers (Solana and Robinhood Chain calls) ranked by what happened after their own posts, traded o","description":"Telegram call-channel callers (Solana and Robinhood Chain calls) ranked by what happened after their own posts, traded or not: per caller n, hit15 (reached +15% within 60 min), win35 (+35% before -20%), x2, rug rate (-80% within 60 min) and median 1/5/15/60-minute returns and max moves, each shrunk toward the pooled value so a few lucky calls do not top the board. Callers are sha1 hashes; chats are named only when they are public channels/groups. Windows 24h, 7d, 30d. Rebuilt hourly; refused (503, not charged) if older than 3 h.","parameters":[{"name":"window","in":"query","required":false,"description":"Scoring window (default 7d)","schema":{"type":"string","enum":["24h","7d","30d"],"default":"7d"},"example":"7d"},{"name":"sort","in":"query","required":false,"description":"Ranking field (default win35; rug sorts ascending)","schema":{"type":"string","enum":["win35","x2","hit15","rug","n","ret15"],"default":"win35"},"example":"win35"},{"name":"limit","in":"query","required":false,"description":"Max rows, 1-200 (default 50)","schema":{"type":"number","minimum":1,"maximum":200,"default":50},"example":50}],"security":[{"x402":[]}],"x-price-usd":0.05,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.05,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["caller-leaderboard","telegram-calls","solana","robinhood-chain","memecoins"],"resource":"https://api.paxie.fun/v1/sol/callers/leaderboard"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["window","rows"],"properties":{"chain":{"type":"string"},"schemaVersion":{"type":"integer"},"generatedAt":{"type":"integer"},"ageSec":{"type":"integer"},"method":{"type":"object"},"window":{"type":"string"},"sort":{"type":"string"},"calls":{"type":"integer"},"callers":{"type":"integer"},"pooled":{"type":"object","additionalProperties":{"type":["number","null"]}},"rows":{"type":"array","items":{"type":"object","required":["rank","callerId","chatId","n"],"properties":{"rank":{"type":"integer"},"callerId":{"type":"string","description":"sha1 of the caller key (chat id + poster id). No handles or names."},"chatId":{"type":"string"},"chat":{"type":["string","null"],"description":"The public @username, only when the chat is a public Telegram channel/group; else null."},"n":{"type":"integer"},"hit15":{"type":["number","null"]},"win35":{"type":["number","null"]},"x2":{"type":["number","null"]},"rug":{"type":["number","null"]},"median":{"type":"object","properties":{"ret1":{"type":["number","null"]},"ret5":{"type":["number","null"]},"ret15":{"type":["number","null"]},"ret60":{"type":["number","null"]},"mfe":{"type":["number","null"]},"mae":{"type":["number","null"]}}},"raw":{"type":"object","additionalProperties":{"type":["number","null"]}},"lastCallAt":{"type":"integer"}}}}}}]},"example":{"chain":"solana","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"window":"7d","sort":"win35","method":{"unit":"one caller = one poster in one chat; scored on the 60 min after their own post, traded or not","hit15":"60-min max favourable move >= +15%","win35":"+35% before -20% within 60 min","x2":"60-min max favourable move >= +100%","rug":"60-min max adverse move <= -80%","shrink":{"k":10,"toward":"the window's pooled value"},"minN":3,"lateAnchorsExcluded":0,"privacy":"callerId = sha1(caller key); chat named only when it is a public Telegram channel/group, else chatId (hashed)"},"calls":29,"callers":3,"pooled":{"hit15":0.4138,"win35":0.4138,"x2":0.2069,"rug":0.1379,"ret1":0.02,"ret5":-0.05,"ret15":-0.18,"ret60":-0.4,"mfe":0.09,"mae":-0.35},"rows":[{"rank":1,"callerId":"5218035d2efcb260444089481beb4ac252db0c5d","chatId":"b27d7219fe7b2b85b9c5a8d58b9b048d0e909d56","chat":"@examplecalls","n":14,"hit15":0.5474,"win35":0.5474,"x2":0.2945,"rug":0.0575,"median":{"ret1":0.0433,"ret5":0.0842,"ret15":0.1642,"ret60":-0.0383,"mfe":0.3992,"mae":-0.2158},"raw":{"hit15":0.6429,"win35":0.6429,"x2":0.3571,"rug":0,"ret1":0.06,"ret5":0.18,"ret15":0.41,"ret60":0.22,"mfe":0.62,"mae":-0.12},"lastCallAt":1791548600000},{"rank":2,"callerId":"7d78f191a3668aa39639161d0ba062bdef66c800","chatId":"b27d7219fe7b2b85b9c5a8d58b9b048d0e909d56","chat":"@examplecalls","n":6,"hit15":0.4461,"win35":0.4461,"x2":0.1918,"rug":0.1487,"median":{"ret1":0.0275,"ret5":-0.0069,"ret15":-0.0694,"ret60":-0.2838,"mfe":0.1894,"mae":-0.3069},"raw":{"hit15":0.5,"win35":0.5,"x2":0.1667,"rug":0.1667,"ret1":0.04,"ret5":0.065,"ret15":0.115,"ret60":-0.09,"mfe":0.355,"mae":-0.235},"lastCallAt":1791548600000},{"rank":3,"callerId":"00d3a8e6d3576e0e17c10221c4d654f7d312cfc3","chatId":"6920f8274ac96b7f62e4633fcfcb223f0cae0e1e","chat":null,"n":9,"hit15":0.2178,"win35":0.2178,"x2":0.1089,"rug":0.2305,"median":{"ret1":0.02,"ret5":-0.05,"ret15":-0.18,"ret60":-0.4,"mfe":0.09,"mae":-0.35},"raw":{"hit15":0,"win35":0,"x2":0,"rug":0.3333,"ret1":0.02,"ret5":-0.05,"ret15":-0.18,"ret60":-0.4,"mfe":0.09,"mae":-0.35},"lastCallAt":1791548600000}]}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/sol/calls/outcomes":{"get":{"operationId":"getSolCallOutcomes","tags":["Solana"],"summary":"Every human call from the followed Telegram chats (Solana and Robinhood Chain tokens) that is 1-48 hours old, with its r","description":"Every human call from the followed Telegram chats (Solana and Robinhood Chain tokens) that is 1-48 hours old, with its return 1, 4, 12, 24 and 48 hours after the first post, the 48-hour high and when it came, the dip before the high, and whether the token died. Sampled every 10 minutes from our own series; no third-party prices passed through. Callers hashed, public chats only by name. Rebuilt hourly; refused (503, not charged) if older than 3 h.","parameters":[{"name":"hours","in":"query","required":false,"description":"Calls made in the last 1-48 hours (default 48)","schema":{"type":"number","minimum":1,"maximum":48,"default":48},"example":48},{"name":"chain","in":"query","required":false,"description":"Optional chain filter (default both)","schema":{"type":"string","enum":["solana","robinhood"]}},{"name":"limit","in":"query","required":false,"description":"Max rows, 1-2000 (default 500)","schema":{"type":"number","minimum":1,"maximum":2000,"default":500},"example":500}],"security":[{"x402":[]}],"x-price-usd":0.05,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.05,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["telegram-calls","call-outcomes","backtesting","solana","robinhood-chain"],"resource":"https://api.paxie.fun/v1/sol/calls/outcomes"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["calls"],"properties":{"chain":{"type":"string"},"schemaVersion":{"type":"integer"},"generatedAt":{"type":"integer"},"ageSec":{"type":"integer"},"method":{"type":"object"},"hours":{"type":"integer"},"calls":{"type":"array","items":{"type":"object","required":["callId","mint","calledAt"],"properties":{"callId":{"type":"string"},"chain":{"type":"string"},"mint":{"type":"string"},"calledAt":{"type":"integer"},"ageH":{"type":["number","null"]},"done":{"type":"boolean"},"callers":{"type":"array","items":{"type":"string"}},"chatIds":{"type":"array","items":{"type":"string"}},"chats":{"type":"array","items":{"type":"string"}},"nChats":{"type":"integer"},"nPrivateChats":{"type":"integer"},"ret1h":{"type":["number","null"]},"ret4h":{"type":["number","null"]},"ret12h":{"type":["number","null"]},"ret24h":{"type":["number","null"]},"ret48h":{"type":["number","null"]},"maxRet":{"type":["number","null"]},"maxAtH":{"type":["number","null"]},"dipBeforeMax":{"type":["number","null"]},"dead":{"type":"boolean"},"recalls":{"type":"integer"}}}}}}]},"example":{"chain":"solana","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"hours":48,"method":{"window":"human calls 1-48 h old","sampling":"every 10 min for 48 h from the first post; retNh = price / price at the call - 1 (our own sampled series, no third-party prices passed through)","dead":"the token stopped pricing (3 h of failed reads)","dipBeforeMax":"lowest point between the call and the 48-h high","done":"false while the 48-h watch is still running (later returns are null until reached)"},"calls":[{"callId":"fbf7f83eb8b732f7","chain":"solana","mint":"8Fz3kQ2vXr7nTq1mWc5yBd9LhP4sGa6eRu2oJx3Kpump","calledAt":1791462200000,"ageH":30,"done":false,"callers":["5218035d2efcb260444089481beb4ac252db0c5d","00d3a8e6d3576e0e17c10221c4d654f7d312cfc3"],"chatIds":["b27d7219fe7b2b85b9c5a8d58b9b048d0e909d56","6920f8274ac96b7f62e4633fcfcb223f0cae0e1e"],"chats":["@examplecalls"],"nChats":2,"nPrivateChats":1,"ret1h":0.41,"ret4h":-0.12,"ret12h":-0.55,"ret24h":-0.71,"ret48h":null,"maxRet":0.62,"maxAtH":0.5,"dipBeforeMax":0,"dead":false,"recalls":2},{"callId":"5e3de2f091a20ebe","chain":"robinhood","mint":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2","calledAt":1791399200000,"ageH":47.5,"done":true,"callers":["7d78f191a3668aa39639161d0ba062bdef66c800"],"chatIds":["b27d7219fe7b2b85b9c5a8d58b9b048d0e909d56"],"chats":["@examplecalls"],"nChats":1,"nPrivateChats":0,"ret1h":0.12,"ret4h":-0.31,"ret12h":-0.62,"ret24h":-0.8,"ret48h":-0.84,"maxRet":0.27,"maxAtH":0.5,"dipBeforeMax":-0.03,"dead":true,"recalls":0}]}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/sol/calls/live":{"get":{"operationId":"getSolCallsLive","tags":["Solana"],"summary":"Contract addresses (Solana and Robinhood Chain) posted in the followed Telegram call chats in the last 1-120 minutes: fi","description":"Contract addresses (Solana and Robinhood Chain) posted in the followed Telegram call chats in the last 1-120 minutes: first seen, how many chats posted it, our own price and market cap at the first call (pump.fun curve or on-chain pool reads only), the move since and the max since, and its stage (curve band or pool age). Public channels are named with their @username; private chats appear only as counts. Data rewritten every 20 s; refused (503, not charged) if older than 120 s.","parameters":[{"name":"minutes","in":"query","required":false,"description":"Look-back window in minutes, 1-120 (default 30)","schema":{"type":"number","minimum":1,"maximum":120,"default":30},"example":30},{"name":"chain","in":"query","required":false,"description":"Optional chain filter (default both)","schema":{"type":"string","enum":["solana","robinhood"]}}],"security":[{"x402":[]}],"x-price-usd":0.02,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.02,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["telegram-calls","solana","robinhood-chain","memecoins","onchain-data"],"resource":"https://api.paxie.fun/v1/sol/calls/live"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["calls"],"properties":{"chain":{"type":"string"},"schemaVersion":{"type":"integer"},"generatedAt":{"type":"integer"},"ageSec":{"type":"integer"},"method":{"type":"object"},"minutes":{"type":"integer"},"calls":{"type":"array","items":{"type":"object","required":["mint","firstSeenAt","nChats"],"properties":{"mint":{"type":"string"},"chain":{"type":"string"},"firstSeenAt":{"type":"integer"},"minAgo":{"type":["number","null"]},"nChats":{"type":"integer"},"nPublicChats":{"type":"integer"},"nPrivateChats":{"type":"integer"},"chats":{"type":"array","items":{"type":"object","properties":{"chat":{"type":"string"},"chatId":{"type":"string"},"firstAt":{"type":"integer"},"posts":{"type":"integer"},"callers":{"type":"array","items":{"type":"string"}}}}},"nPosts":{"type":"integer"},"nPrivatePosts":{"type":"integer"},"atCall":{"anyOf":[{"type":"object","properties":{"t":{"type":"integer"},"px":{"type":["number","null"]},"mcapUsd":{"type":["number","null"]},"pxSrc":{"type":"string"}}},{"type":"null"}]},"moveSince":{"type":["number","null"]},"maxSince":{"type":["number","null"]},"lastSampleAt":{"type":["integer","null"]},"stage":{"type":["string","null"]},"triggered":{"type":["string","null"]}}}},"note":{"type":"string"}}}]},"example":{"chain":"solana","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"minutes":30,"method":{"unit":"one row per contract address posted in the followed Telegram chats","moveSince":"latest sample / first sample at or after the first post - 1 (our own sampled series)","privacy":"public chats named with their @username and hashed caller ids; private chats only counted"},"calls":[{"mint":"8Fz3kQ2vXr7nTq1mWc5yBd9LhP4sGa6eRu2oJx3Kpump","chain":"solana","firstSeenAt":1791569600000,"minAgo":10,"nChats":2,"nPublicChats":1,"nPrivateChats":1,"chats":[{"chat":"@examplecalls","chatId":"b27d7219fe7b2b85b9c5a8d58b9b048d0e909d56","firstAt":1791569600000,"posts":1,"callers":["5218035d2efcb260444089481beb4ac252db0c5d"]}],"nPosts":3,"nPrivatePosts":2,"atCall":{"t":1791569608000,"px":2.9e-8,"mcapUsd":29000,"pxSrc":"curve"},"moveSince":0.1793,"maxSince":0.4414,"lastSampleAt":1791570185000,"stage":"curve 25-55%","triggered":null}]}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/sol/grads/live":{"get":{"operationId":"getSolGradsLive","tags":["Solana"],"summary":"Solana pump.fun graduations from the last 1-240 minutes: time on the curve (gradMin), the curve path into graduation fro","description":"Solana pump.fun graduations from the last 1-240 minutes: time on the curve (gradMin), the curve path into graduation from our own curve reads, the buyer burst that preceded it when there was one, and returns 1, 5 and 15 minutes after graduation from our own sampled series. Data rewritten every 20 s; refused (503, not charged) if older than 120 s.","parameters":[{"name":"minutes","in":"query","required":false,"description":"Look-back window in minutes, 1-240 (default 60)","schema":{"type":"number","minimum":1,"maximum":240,"default":60},"example":60}],"security":[{"x402":[]}],"x-price-usd":0.01,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.01,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["solana","pump-fun","graduations","memecoins","bonding-curve"],"resource":"https://api.paxie.fun/v1/sol/grads/live"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["grads"],"properties":{"chain":{"type":"string"},"schemaVersion":{"type":"integer"},"generatedAt":{"type":"integer"},"ageSec":{"type":"integer"},"method":{"type":"object"},"minutes":{"type":"integer"},"grads":{"type":"array","items":{"type":"object","required":["mint","gradAt"],"properties":{"mint":{"type":"string"},"gradAt":{"type":"integer"},"source":{"type":"string"},"gradMin":{"type":["number","null"]},"path":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"burst":{"anyOf":[{"type":"object","additionalProperties":{"type":["number","null"]}},{"type":"null"}]},"post":{"anyOf":[{"type":"object","properties":{"anchorSecAfterGrad":{"type":"integer"},"ret1":{"type":["number","null"]},"ret5":{"type":["number","null"]},"ret15":{"type":["number","null"]},"max15":{"type":["number","null"]},"min15":{"type":["number","null"]},"complete":{"type":"boolean"}}},{"type":"null"}]}}}},"note":{"type":"string"},"latest":{"anyOf":[{"type":"object","required":["mint","gradAt"],"properties":{"mint":{"type":"string"},"gradAt":{"type":"integer"},"source":{"type":"string"},"gradMin":{"type":["number","null"]},"path":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"burst":{"anyOf":[{"type":"object","additionalProperties":{"type":["number","null"]}},{"type":"null"}]},"post":{"anyOf":[{"type":"object","properties":{"anchorSecAfterGrad":{"type":"integer"},"ret1":{"type":["number","null"]},"ret5":{"type":["number","null"]},"ret15":{"type":["number","null"]},"max15":{"type":["number","null"]},"min15":{"type":["number","null"]},"complete":{"type":"boolean"}}},{"type":"null"}]}}},{"type":"null"}]}}}]},"example":{"chain":"solana","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"minutes":60,"method":{"gradMin":"minutes from when the token was first seen on the pump.fun curve (≈ launch) to graduation","path":"[secondsRelativeToGraduation, curveProgress 0-1] from our own curve reads (last ~10 min before graduation)","burst":"the buyer burst that preceded it, if the burst scout fired on it","post":"returns of our own sampled price series after graduation, anchored at the first sample after it (no third-party prices passed through)"},"grads":[{"mint":"8Fz3kQ2vXr7nTq1mWc5yBd9LhP4sGa6eRu2oJx3Kpump","gradAt":1791567800000,"source":"pumpportal","gradMin":38.5,"path":[[-240,0.86],[-120,0.93],[-30,0.99]],"burst":{"at":1791567200000,"inflowSol":14.2,"curveFrom":0.31,"curveAt":0.44,"tokenAgeMin":28.1,"toGradMin":10,"peakRet":2.1,"gradRet":1.9},"post":{"anchorSecAfterGrad":46,"ret1":0.08,"ret5":-0.11,"ret15":-0.27,"max15":0.12,"min15":-0.27,"complete":true}}]}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/sol/grads/history":{"get":{"operationId":"getSolGradsHistory","tags":["Solana"],"summary":"Solana pump.fun graduations from the last 1-48 hours with aggregates: median time on the curve, how many followed a buye","description":"Solana pump.fun graduations from the last 1-48 hours with aggregates: median time on the curve, how many followed a buyer burst, and median post-graduation returns at 1, 5 and 15 minutes (with the share still up at 15). Data rewritten every 20 s; refused (503, not charged) if older than 120 s.","parameters":[{"name":"hours","in":"query","required":false,"description":"Look-back window in hours, 1-48 (default 24)","schema":{"type":"number","minimum":1,"maximum":48,"default":24},"example":24},{"name":"limit","in":"query","required":false,"description":"Max rows, 1-2000 (default 500)","schema":{"type":"number","minimum":1,"maximum":2000,"default":500},"example":500}],"security":[{"x402":[]}],"x-price-usd":0.02,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.02,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["solana","pump-fun","graduations","backtesting","memecoins"],"resource":"https://api.paxie.fun/v1/sol/grads/history"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["stats","grads"],"properties":{"chain":{"type":"string"},"schemaVersion":{"type":"integer"},"generatedAt":{"type":"integer"},"ageSec":{"type":"integer"},"method":{"type":"object"},"hours":{"type":"integer"},"stats":{"type":"object"},"grads":{"type":"array","items":{"type":"object","required":["mint","gradAt"],"properties":{"mint":{"type":"string"},"gradAt":{"type":"integer"},"source":{"type":"string"},"gradMin":{"type":["number","null"]},"path":{"type":"array","items":{"type":"array","items":{"type":"number"}}},"burst":{"anyOf":[{"type":"object","additionalProperties":{"type":["number","null"]}},{"type":"null"}]},"post":{"anyOf":[{"type":"object","properties":{"anchorSecAfterGrad":{"type":"integer"},"ret1":{"type":["number","null"]},"ret5":{"type":["number","null"]},"ret15":{"type":["number","null"]},"max15":{"type":["number","null"]},"min15":{"type":["number","null"]},"complete":{"type":"boolean"}}},{"type":"null"}]}}}}}}]},"example":{"chain":"solana","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"hours":24,"method":{"gradMin":"minutes from when the token was first seen on the pump.fun curve (≈ launch) to graduation","path":"[secondsRelativeToGraduation, curveProgress 0-1] from our own curve reads (last ~10 min before graduation)","burst":"the buyer burst that preceded it, if the burst scout fired on it","post":"returns of our own sampled price series after graduation, anchored at the first sample after it (no third-party prices passed through)"},"stats":{"n":1,"medGradMin":38.5,"withBurst":1,"medBurstToGradMin":10,"post":{"n":1,"medRet1":0.08,"medRet5":-0.11,"medRet15":-0.27,"upAt15Share":0}},"grads":[{"mint":"8Fz3kQ2vXr7nTq1mWc5yBd9LhP4sGa6eRu2oJx3Kpump","gradAt":1791567800000,"source":"pumpportal","gradMin":38.5,"path":[[-240,0.86],[-120,0.93],[-30,0.99]],"burst":{"at":1791567200000,"inflowSol":14.2,"curveFrom":0.31,"curveAt":0.44,"tokenAgeMin":28.1,"toGradMin":10,"peakRet":2.1,"gradRet":1.9},"post":{"anchorSecAfterGrad":46,"ret1":0.08,"ret5":-0.11,"ret15":-0.27,"max15":0.12,"min15":-0.27,"complete":true}}]}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/desk/trades":{"get":{"operationId":"getDeskTrades","tags":["Desk"],"summary":"The Paxie.Matrix desk's closed trades on Solana and Robinhood Chain since a time, for auditing its track record: book (m","description":"The Paxie.Matrix desk's closed trades on Solana and Robinhood Chain since a time, for auditing its track record: book (main or explore), mode (paper = simulated fills on live prices, no real money), desk and lane, token, open and close times, return on cost with fees, peak gain and exit reason. Random-twin baseline desks are excluded. Aggregates are free at /v1/desk/stats. Data rewritten every 60 s; refused (503, not charged) if older than 10 min.","parameters":[{"name":"since","in":"query","required":false,"description":"Closed at or after: epoch ms or ISO 8601 (default 24 h ago)","schema":{"type":"string"},"example":"2026-10-08T05:43:32.000Z"},{"name":"book","in":"query","required":false,"description":"Book filter (default all)","schema":{"type":"string","enum":["main","explore","all"],"default":"all"},"example":"all"},{"name":"limit","in":"query","required":false,"description":"Max rows, 1-3000 (default 500)","schema":{"type":"number","minimum":1,"maximum":3000,"default":500},"example":500}],"security":[{"x402":[]}],"x-price-usd":0.01,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.01,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["track-record","trading-desk","solana","robinhood-chain","backtesting"],"resource":"https://api.paxie.fun/v1/desk/trades"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["mode","trades"],"properties":{"schemaVersion":{"type":"integer"},"generatedAt":{"type":"integer"},"ageSec":{"type":"integer"},"mode":{"type":"string"},"since":{"type":"integer"},"book":{"type":"string"},"method":{"type":"object"},"trades":{"type":"array","items":{"type":"object","required":["id","book","mode","desk","closedAt"],"properties":{"id":{"type":"string"},"book":{"type":"string","enum":["main","explore"]},"mode":{"type":"string","enum":["paper","live","sim"]},"desk":{"type":"string"},"lane":{"type":"string"},"chain":{"type":"string"},"token":{"type":"string"},"symbol":{"type":["string","null"]},"openedAt":{"type":["integer","null"]},"closedAt":{"type":"integer"},"holdMin":{"type":["number","null"]},"ret":{"type":["number","null"]},"peakGain":{"type":["number","null"]},"exit":{"type":["string","null"]},"tp1":{"type":"boolean"}}}}}},"example":{"schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"mode":"paper","since":1791438212000,"book":"all","method":{"mode":"main book: paper (paper = simulated fills on live prices, no real money); explore book: always paper, fixed small size per lane","ret":"trade return on cost, fees included","excluded":"random-twin baseline desks (base / rhbase)","equity":"main-book equity index, last point per UTC day, first point = 1 (resets of the paper book show as jumps)"},"trades":[{"id":"b28db2dbcb450484","book":"main","mode":"paper","desk":"rhburst","lane":"rhburst:BU","chain":"robinhood","token":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2","symbol":"EXMPL","openedAt":1791537200000,"closedAt":1791537800000,"holdMin":10,"ret":0.31,"peakGain":0.43,"exit":"trail","tp1":true},{"id":"9525a2d684da2be5","book":"main","mode":"paper","desk":"calls","lane":"calls:BU","chain":"solana","token":"8Fz3kQ2vXr7nTq1mWc5yBd9LhP4sGa6eRu2oJx3Kpump","symbol":"EXMPL","openedAt":1791558800000,"closedAt":1791559400000,"holdMin":10,"ret":-0.16,"peakGain":0.12,"exit":"stop","tp1":false},{"id":"1caaa6c5980b68aa","book":"explore","mode":"paper","desk":"copy","lane":"copy:wl","chain":"solana","token":"8Fz3kQ2vXr7nTq1mWc5yBd9LhP4sGa6eRu2oJx3Kpump","symbol":"EXMPL","openedAt":1791562400000,"closedAt":1791563000000,"holdMin":10,"ret":0.05,"peakGain":0.17,"exit":"trail","tp1":false},{"id":"6f2c110477d96a33","book":"main","mode":"paper","desk":"burst","lane":"burst:BU","chain":"solana","token":"8Fz3kQ2vXr7nTq1mWc5yBd9LhP4sGa6eRu2oJx3Kpump","symbol":"EXMPL","openedAt":1791569300000,"closedAt":1791569900000,"holdMin":10,"ret":0.142,"peakGain":0.262,"exit":"trail","tp1":true}]}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/sol/wallets/{addr}/copy-stats":{"get":{"operationId":"getSolWalletCopyStats","tags":["Solana"],"summary":"Every buy by one Solana copy-leader wallet that the desk observed in the last 14 days (newest 100): leader size, curve p","description":"Every buy by one Solana copy-leader wallet that the desk observed in the last 14 days (newest 100): leader size, curve position, token age, other leaders on it, our quote drift and paper fill slip vs the leader, what the leader did next, the token's 60-minute path after the buy and the replayed copy return, plus a summary. On-chain addresses only. Rebuilt hourly; untracked wallets answer 404 and are not charged.","parameters":[{"name":"addr","in":"path","required":true,"description":"Solana wallet address (base58), e.g. from /v1/sol/wallets/leaders","schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"example":"BUkp7rWm3xQe8YtN2fLd5hJc9vGa4sKo1iPzRb6nTq3E"},{"name":"limit","in":"query","required":false,"description":"Max buys, newest first, 1-100 (default 100)","schema":{"type":"number","minimum":1,"maximum":100,"default":100},"example":100}],"security":[{"x402":[]}],"x-price-usd":0.01,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.01,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["solana","copy-trading","wallets","smart-money","pump-fun"],"resource":"https://api.paxie.fun/v1/sol/wallets/:addr/copy-stats"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","required":["wallet","buys"],"properties":{"chain":{"type":"string"},"schemaVersion":{"type":"integer"},"generatedAt":{"type":"integer"},"ageSec":{"type":"integer"},"method":{"type":"object"},"wallet":{"type":"string"},"n":{"type":"integer"},"copied":{"type":"integer"},"firstAt":{"type":"integer"},"lastAt":{"type":"integer"},"summary":{"type":"object"},"buys":{"type":"array","items":{"type":"object","required":["at","mint"],"properties":{"at":{"type":"integer"},"mint":{"type":"string"},"leaderSol":{"type":["number","null"]},"curvePct":{"type":["number","null"]},"tokenAgeMin":{"type":["number","null"]},"coBuyers":{"type":"integer"},"copied":{"type":"boolean"},"driftPct":{"type":["number","null"]},"slipPct":{"type":["number","null"]},"seenToFillMs":{"type":["integer","null"]},"ourRet":{"type":["number","null"]},"leaderSoldSec":{"type":["integer","null"]},"leaderSellGain":{"type":["number","null"]},"leaderSoldFirst":{"type":["boolean","null"]},"shadow":{"type":"object","properties":{"ret1":{"type":["number","null"]},"ret5":{"type":["number","null"]},"ret15":{"type":["number","null"]},"ret60":{"type":["number","null"]},"mfe":{"type":["number","null"]},"mae":{"type":["number","null"]},"outcome":{"type":["string","null"]}}},"replayRet":{"type":["number","null"]}}}}}}]},"example":{"chain":"solana","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"wallet":"BUkp7rWm3xQe8YtN2fLd5hJc9vGa4sKo1iPzRb6nTq3E","method":{"window":"last 14 days, newest 100 buys per wallet","driftPct":"our first quote vs the leader's own fill price - 1","slipPct":"our paper fill vs the leader's price - 1 (copied buys only)","coBuyers":"other tracked leaders that bought the same token within 2 min","shadow":"the token's 60-min path after the leader's buy (our own sampled series), win = +35% before -20%","replayRet":"the buy replayed through the desk's copy exits from our fill, fees in, capped at +100%","ourRet":"our paper trade's return when we copied it","privacy":"on-chain addresses only; no third-party names"},"n":2,"copied":1,"firstAt":1791476600000,"lastAt":1791563000000,"summary":{"medDriftPct":0.0215,"medSlipPct":0.044,"medCoBuyers":0.5,"clusteredShare":0.5,"shadowScored":2,"shadowWinShare":0.5,"medShadowRet15":0.105,"replayN":2,"meanReplayRet":0.105,"medReplayRet":0.105,"leaderSoldFirstShare":0.5},"buys":[{"at":1791563000000,"mint":"8Fz3kQ2vXr7nTq1mWc5yBd9LhP4sGa6eRu2oJx3Kpump","leaderSol":4.2,"curvePct":0.38,"tokenAgeMin":6.5,"coBuyers":1,"copied":true,"driftPct":0.031,"slipPct":0.044,"seenToFillMs":1800,"ourRet":-0.12,"leaderSoldSec":95,"leaderSellGain":0.21,"leaderSoldFirst":true,"shadow":{"ret1":0.05,"ret5":-0.02,"ret15":-0.2,"ret60":-0.4,"mfe":0.18,"mae":-0.45,"outcome":"loss"},"replayRet":-0.09},{"at":1791476600000,"mint":"8Fz3kQ2vXr7nTq1mWc5yBd9LhP4sGa6eRu2oJx3Kabcd","leaderSol":2.6,"curvePct":0.29,"tokenAgeMin":11.2,"coBuyers":0,"copied":false,"driftPct":0.012,"slipPct":null,"seenToFillMs":null,"ourRet":null,"leaderSoldSec":240,"leaderSellGain":0.48,"leaderSoldFirst":false,"shadow":{"ret1":0.09,"ret5":0.22,"ret15":0.41,"ret60":0.12,"mfe":0.55,"mae":-0.06,"outcome":"win"},"replayRet":0.3}]}}}},"400":{"description":"bad_address. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"404":{"description":"Not tracked (see code). Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/stream/pass":{"get":{"operationId":"getStreamPass","tags":["Both chains"],"summary":"A stream pass ($0.50 per pass, not per call): up to 60 minutes of Server-Sent Events at /v1/sol/bursts/stream?token=…, p","description":"A stream pass ($0.50 per pass, not per call): up to 60 minutes of Server-Sent Events at /v1/sol/bursts/stream?token=…, pushing Solana pump.fun and Robinhood Chain buyer bursts, pump.fun graduations and new Telegram calls (public chats named, callers hashed) as they fire. The worker appends events every few seconds; heartbeat every 15 s, up to 2 connections per pass. Answers 503 stream_disabled (not charged) when the server has streaming switched off.","parameters":[{"name":"minutes","in":"query","required":false,"description":"Pass length, 1-60 minutes (default 60); the price is the same","schema":{"type":"number","minimum":1,"maximum":60,"default":60},"example":60}],"security":[{"x402":[]}],"x-price-usd":0.5,"x-price-unit":"pass","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.5,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["streaming","sse","solana","robinhood-chain","memecoins"],"resource":"https://api.paxie.fun/v1/stream/pass"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["token","expiresAt","stream"],"properties":{"schemaVersion":{"type":"integer"},"token":{"type":"string"},"issuedAt":{"type":"integer"},"expiresAt":{"type":"integer"},"minutes":{"type":"number"},"stream":{"type":"string"},"types":{"type":"array","items":{"type":"string"}},"maxConcurrentPerPass":{"type":"integer"}}},"example":{"schemaVersion":1,"token":"1791573812000.NNNNNNNNNNNN.SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS","issuedAt":1791570212000,"expiresAt":1791573812000,"minutes":60,"stream":"/v1/sol/bursts/stream?token=1791573812000.NNNNNNNNNNNN.SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS","types":["sol.burst","rh.burst","sol.grad","call"],"maxConcurrentPerPass":2}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"503":{"description":"stream_disabled (streaming switched off), warming_up or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/rh/token/{addr}/precall":{"get":{"operationId":"getRhTokenPrecall","tags":["Robinhood Chain"],"summary":"What a Robinhood Chain token did in the hour before a Telegram call on it was posted, for every call our desk saw in the","description":"What a Robinhood Chain token did in the hour before a Telegram call on it was posted, for every call our desk saw in the last 48 h: buy swaps and ETH in the 10 minutes before the post, the run over the hour before (run60), the token's age at the call, the most buy txs in one block, and the pre-post buyers' wallets (on-chain addresses; distinct wallets and the most in one block). flags = the bot's own veto rules that match: run (>= 3x in the hour before), young (< 30 min old at the call), cluster (>= 5 wallets in one block). No chat names, callers or message text. Tokens with no call answer 404 and are not charged. Data rewritten every 30 s; refused (503, not charged) if older than 180 s. Research data from our own paper-trading desk, not trading advice.","parameters":[{"name":"addr","in":"path","required":true,"description":"Token contract address (0x + 40 hex)","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"example":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2"}],"security":[{"x402":[]}],"x-price-usd":0.02,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.02,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["robinhood-chain","telegram-calls","pre-call","front-running","memecoins"],"resource":"https://api.paxie.fun/v1/rh/token/:addr/precall"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/RugEnvelope"},{"type":"object","properties":{"token":{"type":"string"},"rules":{"type":["object","null"]},"precall":{"type":"object","description":"What the token's pool did before a Robinhood call was posted (rhburst scout minute buckets) and the buyers' wallets.","properties":{"token":{"type":"string"},"symbol":{"type":["string","null"]},"postedAt":{"type":["integer","null"]},"capturedAt":{"type":["integer","null"]},"tracked":{"type":"boolean"},"buys":{"type":["integer","null"]},"buyEth":{"type":["number","null"]},"sameBlockMaxTx":{"type":["integer","null"]},"run60":{"type":["number","null"]},"runFromMin":{"type":["integer","null"]},"ageAtCallMin":{"type":["number","null"]},"chg1h0":{"type":["number","null"]},"resolved":{"type":["integer","null"]},"wallets":{"type":["integer","null"]},"sameBlockWallets":{"type":["integer","null"]},"walletList":{"type":"array","items":{"type":"string"}},"walletsResolved":{"type":"boolean"},"flags":{"type":"array","items":{"type":"string","enum":["run","young","cluster"]}}},"required":["token","tracked","flags","walletList"]}},"required":["token","precall"]}]},"example":{"chain":"robinhood","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"token":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2","rules":{"run":"ran >= 3x over the hour before the post (run60; DexScreener h1 change as fallback when the pool was not tracked)","young":"token < 30 min old when the call was posted","cluster":">= 5 distinct wallets bought in ONE block in the 10 min before the post (front-run cluster)","thresholds":{"maxRun60":3,"minAgeAtCallMin":30,"sameBlockWallets":5,"windowMin":10}},"precall":{"token":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2","symbol":"HOOD","postedAt":1791568400000,"capturedAt":1791568460000,"tracked":true,"buys":23,"buyEth":1.84,"sameBlockMaxTx":6,"run60":3.4,"runFromMin":58,"ageAtCallMin":41.2,"chg1h0":240,"resolved":30,"wallets":17,"sameBlockWallets":6,"walletList":["0x5e2a9c1d7f30b84e6a2d1c9f8b3e07a4d6c5f2b1"],"walletsResolved":true,"flags":["run","cluster"]}}}}},"400":{"description":"bad_address. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"404":{"description":"token_not_called: no Robinhood call on this token in the last 48 h. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/rh/token/{addr}/verdict":{"get":{"operationId":"getRhTokenVerdict","tags":["Robinhood Chain"],"summary":"One call before you buy a Robinhood Chain token: avoid, caution or ok, with every reason","description":"One call before you buy a Robinhood Chain token: avoid, caution or ok, with every reason. Combines the rug check (who holds the Uniswap v4 liquidity, or the Pons bonding-curve fill), liquidity pulls after buyer bursts, the pre-call flags if the token was called (ran >= 3x before the post, same-block wallet cluster, < 30 min old), the token's age, and our desk's own last trade and shadow outcome on it. The rules are listed in every response. Untracked tokens answer 404 and are not charged. Rug check and pool data rewritten every 20 s, pre-call and desk data every 30 s; stale inputs are refused (503, not charged). Research data from our own paper-trading desk, not trading advice.","parameters":[{"name":"addr","in":"path","required":true,"description":"Token contract address (0x + 40 hex)","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"example":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2"}],"security":[{"x402":[]}],"x-price-usd":0.03,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.03,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["robinhood-chain","token-safety","rug-check","verdict","uniswap-v4"],"resource":"https://api.paxie.fun/v1/rh/token/:addr/verdict"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/RugEnvelope"},{"type":"object","properties":{"token":{"type":"string"},"symbol":{"type":["string","null"]},"verdict":{"type":"string","enum":["ok","caution","avoid"]},"reasons":{"type":"array","items":{"type":"object","properties":{"verdict":{"type":"string","enum":["ok","caution","avoid"]},"why":{"type":"string"}},"required":["verdict","why"]}},"tokenAgeMin":{"type":["number","null"]},"rug":{"anyOf":[{"type":"object","properties":{"source":{"type":"string","enum":["uniswap-v4-lp","pons-curve"]},"class":{"type":"string","enum":["held","unknown","empty","safe","pons-curve"]}}},{"type":"null"}]},"precall":{"anyOf":[{"type":"object","properties":{"flags":{"type":"array","items":{"type":"string","enum":["run","young","cluster"]}}}},{"type":"null"}]},"desk":{"anyOf":[{"type":"object","properties":{"lastTrade":{"anyOf":[{"type":"object","properties":{"closedAt":{"type":["integer","null"]},"openedAt":{"type":["integer","null"]},"desk":{"type":["string","null"]},"book":{"type":"string","enum":["main","explore"]},"mode":{"type":["string","null"]},"retPct":{"type":["number","null"]},"exit":{"type":["string","null"]}}},{"type":"null"}]},"shadow":{"anyOf":[{"type":"object","properties":{"kind":{"type":["string","null"]},"trigger":{"type":["string","null"]},"startedAt":{"type":["integer","null"]},"ret1":{"type":["number","null"]},"ret5":{"type":["number","null"]},"ret15":{"type":["number","null"]},"ret60":{"type":["number","null"]},"mfe":{"type":["number","null"]},"mae":{"type":["number","null"]},"outcome":{"type":["string","null"]},"late":{"type":["boolean","null"]}}},{"type":"null"}]},"shadows":{"type":"integer"},"action":{"type":["string","null"]}}},{"type":"null"}]},"rules":{"type":"array","items":{"type":"object","properties":{"verdict":{"type":"string"},"rule":{"type":"string"}}}},"disclaimer":{"type":"string"}},"required":["token","verdict","reasons","rules"]}]},"example":{"chain":"robinhood","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"token":"0x7c3e9a41d0b25f8e6a1c4d93b07e2f5a8c61d4b2","symbol":"HOOD","verdict":"avoid","reasons":[{"verdict":"avoid","why":"LP held by the creator / LP adder (insiderShare 100%): they can pull it"},{"verdict":"avoid","why":"liquidity pulled: 97% removed 212s after a buyer burst"},{"verdict":"avoid","why":"ran 3.4x over the hour before the call"},{"verdict":"avoid","why":"6 wallets bought in one block before the post (front-run cluster)"}],"tokenAgeMin":47.4,"rug":{"source":"uniswap-v4-lp","class":"held","insiderShare":1,"pools":1,"checkedAt":1791570032000,"creator":"0x2d4f8a1c9e3b70d6a5f2e81c4b9d07a3e6f15c28"},"precall":{"postedAt":1791568400000,"flags":["run","cluster"],"run60":3.4,"ageAtCallMin":41.2,"sameBlockWallets":6,"wallets":17,"buys":23,"buyEth":1.84},"desk":{"lastTrade":null,"shadow":{"kind":"call","trigger":null,"startedAt":1791568400000,"ret1":0.1,"ret5":0.2,"ret15":0.1,"ret60":-0.3,"mfe":0.4,"mae":-0.35,"outcome":"loss","late":null},"shadows":1,"action":null},"rules":[{"verdict":"avoid","rule":"LP held by the creator / LP adder (rug check class held: insiderShare >= 50%, they can pull it)."},{"verdict":"avoid","rule":"Liquidity pulled: rug check class empty (no liquidity left in the pool), or >= 80% of a pool's liquidity was removed after one of its buyer bursts (last 24 h)."},{"verdict":"avoid","rule":"Pre-call: the token ran >= 3x over the hour before the call was posted (precall flag run)."},{"verdict":"avoid","rule":"Pre-call: >= 5 distinct wallets bought in one block before the post (precall flag cluster: a front-run cluster)."},{"verdict":"caution","rule":"Pre-call: the token was < 30 minutes old when the call was posted (precall flag young)."},{"verdict":"caution","rule":"Pons bonding curve < 10% filled."},{"verdict":"caution","rule":"LP owner unreadable (class unknown) or no rug-check profile for the token yet."},{"verdict":"ok","rule":"None of the above. The worst matching rule decides; every match is listed in reasons."}],"disclaimer":"Research data from our own paper-trading desk, not trading advice."}}}},"400":{"description":"bad_address. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"404":{"description":"Not tracked (see code). Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/sol/token/{mint}/verdict":{"get":{"operationId":"getSolTokenVerdict","tags":["Solana"],"summary":"Everything our desk recorded on a Solana mint in the last 48 h: the safety gate result (with rugcheck.xyz numbers, attri","description":"Everything our desk recorded on a Solana mint in the last 48 h: the safety gate result (with rugcheck.xyz numbers, attributed), scout scores (numbers), our grade from scanner-card fields, the trader's action and conviction, the shadow outcomes (return at 1/5/15/60 min, max favourable / adverse excursion) and our last closed paper trade. No trader thesis, no bot card text, no chat content. Mints the desk never saw answer 404 and are not charged. Data rewritten every 30 s; refused (503, not charged) if older than 180 s. Research data from our own paper-trading desk, not trading advice.","parameters":[{"name":"mint","in":"path","required":true,"description":"Solana token mint (base58)","schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"example":"8Fz3kQ2vXr7nTq1mWc5yBd9LhP4sGa6eRu2oJx3Kpump"}],"security":[{"x402":[]}],"x-price-usd":0.02,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.02,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["solana","token-safety","verdict","pump-fun","memecoins"],"resource":"https://api.paxie.fun/v1/sol/token/:mint/verdict"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/RugEnvelope"},{"type":"object","properties":{"mint":{"type":"string"},"symbol":{"type":["string","null"]},"firstSeenAt":{"type":["integer","null"]},"lastSeenAt":{"type":["integer","null"]},"mode":{"type":["string","null"]},"safety":{"anyOf":[{"type":"object","properties":{"pass":{"type":["boolean","null"]},"fails":{"type":"array","items":{"type":"string"}},"checkedAt":{"type":["integer","null"]},"rugcheck":{"type":["object","null"]}}},{"type":"null"}]},"scouts":{"anyOf":[{"type":"object","properties":{"composite":{"type":["number","null"]},"scores":{"type":"array","items":{"type":"object","properties":{"agent":{"type":"string"},"score":{"type":["number","null"]}}}}}},{"type":"null"}]},"scanner":{"anyOf":[{"type":"object","properties":{"grade":{"type":"string","enum":["A","B","C","D","F"]},"score":{"type":"number"},"reasons":{"type":"array","items":{"type":"string"}},"scannedAt":{"type":["integer","null"]},"fields":{"type":"object","description":"Numbers parsed from scanner-bot replies (shares 0-1). The most cautious reading across bots.","additionalProperties":{"type":["number","boolean","null"]}}}},{"type":"null"}]},"trader":{"anyOf":[{"type":"object","properties":{"at":{"type":["integer","null"]},"desk":{"type":["string","null"]},"action":{"type":["string","null"]},"conviction":{"type":["number","null"]},"by":{"type":["string","null"]}}},{"type":"null"}]},"shadows":{"type":"array","items":{"type":"object","properties":{"kind":{"type":["string","null"]},"trigger":{"type":["string","null"]},"startedAt":{"type":["integer","null"]},"ret1":{"type":["number","null"]},"ret5":{"type":["number","null"]},"ret15":{"type":["number","null"]},"ret60":{"type":["number","null"]},"mfe":{"type":["number","null"]},"mae":{"type":["number","null"]},"outcome":{"type":["string","null"]},"late":{"type":["boolean","null"]}}}},"shadow":{"anyOf":[{"type":"object","properties":{"kind":{"type":["string","null"]},"trigger":{"type":["string","null"]},"startedAt":{"type":["integer","null"]},"ret1":{"type":["number","null"]},"ret5":{"type":["number","null"]},"ret15":{"type":["number","null"]},"ret60":{"type":["number","null"]},"mfe":{"type":["number","null"]},"mae":{"type":["number","null"]},"outcome":{"type":["string","null"]},"late":{"type":["boolean","null"]}}},{"type":"null"}]},"lastTrade":{"anyOf":[{"type":"object","properties":{"closedAt":{"type":["integer","null"]},"openedAt":{"type":["integer","null"]},"desk":{"type":["string","null"]},"book":{"type":"string","enum":["main","explore"]},"mode":{"type":["string","null"]},"retPct":{"type":["number","null"]},"exit":{"type":["string","null"]}}},{"type":"null"}]},"disclaimer":{"type":"string"}},"required":["mint","shadows"]}]},"example":{"chain":"solana","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"mint":"8Fz3kQ2vXr7nTq1mWc5yBd9LhP4sGa6eRu2oJx3Kpump","symbol":"CAT","firstSeenAt":1791569000000,"lastSeenAt":1791569960000,"mode":"paper","safety":{"pass":true,"fails":[],"checkedAt":1791569000000,"rugcheck":{"scoreNorm":3,"top10Pct":0.21,"devPct":0.01,"mintAuthority":null,"freezeAuthority":null,"source":"rugcheck.xyz","attribution":"Token safety data from rugcheck.xyz"}},"scouts":{"composite":0.58,"scores":[{"agent":"onchain","score":0.6},{"agent":"social","score":0.4}]},"scanner":{"grade":"C","score":65,"reasons":["top 10 holders hold > 30%","bundled buys hold > 20%"],"scannedAt":1791569060000,"fields":{"holders":410,"top10Pct":0.34,"snipers":3,"sniperPct":0.05,"bundlers":2,"bundlePct":0.25,"devLeftPct":0.01,"fresh1d":0.12,"fresh7d":0.2,"ageMin":14,"curveProgress":0.36,"topHolder1Pct":0.05,"devSold":true}},"trader":{"at":1791569120000,"desk":"calls","action":"enter","conviction":0.62,"by":"llm"},"shadows":[{"kind":"call","trigger":null,"startedAt":1791568400000,"ret1":0.04,"ret5":-0.08,"ret15":-0.21,"ret60":-0.44,"mfe":0.12,"mae":-0.5,"outcome":"loss","late":false}],"shadow":{"kind":"call","trigger":null,"startedAt":1791568400000,"ret1":0.04,"ret5":-0.08,"ret15":-0.21,"ret60":-0.44,"mfe":0.12,"mae":-0.5,"outcome":"loss","late":false},"lastTrade":{"closedAt":1791569960000,"openedAt":1791569180000,"desk":"calls","book":"explore","mode":"paper","retPct":-0.16,"exit":"stop"},"disclaimer":"Research data from our own paper-trading desk, not trading advice."}}}},"400":{"description":"bad_address: mint is not a base58 Solana address. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"404":{"description":"mint_not_seen: the desk has no record of this mint in the last 48 h. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/scanner/{mint}":{"get":{"operationId":"getScannerGrade","tags":["Both chains"],"summary":"Our grade (A-F) for a Solana or Robinhood Chain token from the holder structure on scanner-bot cards: holders, top-10 sh","description":"Our grade (A-F) for a Solana or Robinhood Chain token from the holder structure on scanner-bot cards: holders, top-10 share, largest holder, snipers, bundles, dev holding, fresh wallets, curve progress, as numbers, with the penalties that set the grade. Derived fields only; the bots' cards are not reproduced. Covers tokens our desk scanned in the last 48 h; others answer 404 and are not charged. Data rewritten every 30 s; refused (503, not charged) if older than 180 s. Research data from our own paper-trading desk, not trading advice.","parameters":[{"name":"mint","in":"path","required":true,"description":"Solana mint (base58) or Robinhood token address (0x + 40 hex)","schema":{"type":"string","pattern":"^([1-9A-HJ-NP-Za-km-z]{32,44}|0x[0-9a-fA-F]{40})$"},"example":"8Fz3kQ2vXr7nTq1mWc5yBd9LhP4sGa6eRu2oJx3Kpump"}],"security":[{"x402":[]}],"x-price-usd":0.01,"x-price-unit":"call","x-payment":{"protocol":"x402","scheme":"exact","asset":"USDC","currency":"USDC","priceUsd":0.01,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"]},"x-bazaar":{"tags":["token-safety","holder-analysis","solana","robinhood-chain","memecoins"],"resource":"https://api.paxie.fun/v1/scanner/:mint"},"responses":{"200":{"description":"Data. Settled: carries PAYMENT-RESPONSE. Cache-Control: private, no-store.","headers":{"PAYMENT-RESPONSE":{"description":"base64 JSON settlement receipt (transaction, network, payer).","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/RugEnvelope"},{"type":"object","properties":{"mint":{"type":"string"},"symbol":{"type":["string","null"]},"scannedAt":{"type":["integer","null"]},"sources":{"type":"integer"},"grade":{"type":"string","enum":["A","B","C","D","F"]},"score":{"type":"number"},"reasons":{"type":"array","items":{"type":"string"}},"fields":{"type":"object","description":"Numbers parsed from scanner-bot replies (shares 0-1). The most cautious reading across bots.","additionalProperties":{"type":["number","boolean","null"]}},"gradeRules":{"type":["object","null"]},"note":{"type":"string"}},"required":["mint","grade","score","fields"]}]},"example":{"chain":"solana","schemaVersion":1,"generatedAt":1791570200000,"ageSec":12,"mint":"8Fz3kQ2vXr7nTq1mWc5yBd9LhP4sGa6eRu2oJx3Kpump","symbol":"CAT","scannedAt":1791569060000,"sources":1,"grade":"C","score":65,"reasons":["top 10 holders hold > 30%","bundled buys hold > 20%"],"fields":{"holders":410,"top10Pct":0.34,"snipers":3,"sniperPct":0.05,"bundlers":2,"bundlePct":0.25,"devLeftPct":0.01,"fresh1d":0.12,"fresh7d":0.2,"ageMin":14,"curveProgress":0.36,"topHolder1Pct":0.05,"devSold":true},"gradeRules":{"scale":"100 minus penalties: A >= 85, B >= 70, C >= 55, D >= 40, else F. Missing fields add no penalty.","penalties":["top 10 holders hold > 50% (top10Pct > 0.5): -35","top 10 holders hold > 30% (top10Pct > 0.3): -15","largest holder > 10% (topHolder1Pct > 0.1): -10","bundled buys hold > 20% (bundlePct > 0.2): -20","snipers hold > 20% (sniperPct > 0.2): -15","dev still holds > 10% (devLeftPct > 0.1): -15","fresh (1-day-old) wallets hold > 30% (fresh1d > 0.3): -10","low liquidity warning on the card: -10"],"note":"One penalty per field (the larger applies). The inputs are numbers we parse from scanner-bot replies; the grade is ours."},"note":"Our grade from numbers we parse out of scanner-bot replies. The bots' cards are not reproduced."}}}},"400":{"description":"bad_address: neither a base58 mint nor a 0x address. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Payment required. The PAYMENT-REQUIRED header carries the x402 requirements (price, asset, network, payTo). Retry with a signed PAYMENT-SIGNATURE header.","headers":{"PAYMENT-REQUIRED":{"description":"base64 JSON x402 PaymentRequired.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"404":{"description":"not_scanned: no scanner card for this token in the last 48 h. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"warming_up, data_stale (older than its freshness limit) or payments_not_live. Not charged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/sample":{"get":{"operationId":"getSample","tags":["Free"],"summary":"Free delayed sample","description":"3 bursts per chain at least 15 minutes old, plus 3 young Robinhood pools with the most net buying. No payment. 30 requests a minute per IP.","security":[],"responses":{"200":{"description":"Free delayed sample","content":{"application/json":{"schema":{"type":"object","properties":{"sample":{"type":"boolean"},"delayedMin":{"type":"integer"},"generatedAt":{"type":"integer"},"robinhood":{"type":"object","properties":{"bursts":{"type":"array","items":{"$ref":"#/components/schemas/RhBurst"}},"pools":{"type":"array","items":{"$ref":"#/components/schemas/Pool"}}}},"solana":{"type":"object","properties":{"bursts":{"type":"array","items":{"$ref":"#/components/schemas/SolBurst"}}}}}}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}},"503":{"description":"warming_up","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/health":{"get":{"operationId":"getHealth","tags":["Free"],"summary":"Service health","description":"ok is false (503) when the data is missing or older than 120 s.","security":[],"responses":{"200":{"description":"Service health","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"dataAgeSec":{"type":["integer","null"]},"staleAfterSec":{"type":"integer"},"payments":{"type":"string","enum":["on","off"]}}}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}},"503":{"description":"data stale or warming up","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/fields":{"get":{"operationId":"getFields","tags":["Free"],"summary":"Data dictionary","description":"Every field, what it means, and WHEN it becomes available (signal, signal+seconds, signal+30m, now). Errors, freshness, limits and versioning.","security":[],"responses":{"200":{"description":"Data dictionary","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/stats":{"get":{"operationId":"getStats","tags":["Free"],"summary":"Settled calls by route and day","description":"Counts and USDC of settled paid requests by route per UTC day (last 30 days). No payer addresses.","security":[],"responses":{"200":{"description":"Settled calls by route and day","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"integer"},"currency":{"type":"string"},"totals":{"type":"object","properties":{"n":{"type":"integer"},"usd":{"type":"number"}}},"days":{"type":"array","items":{"type":"object","properties":{"day":{"type":"string"},"n":{"type":"integer"},"usd":{"type":"number"},"routes":{"type":"object","additionalProperties":{"type":"object","properties":{"n":{"type":"integer"},"usd":{"type":"number"}}}}}}}}}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/openapi.json":{"get":{"operationId":"getOpenapi","tags":["Free"],"summary":"This document","description":"OpenAPI 3.1. Also at /openapi.json.","security":[],"responses":{"200":{"description":"This document","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"description":"Seconds to wait.","schema":{"type":"integer"}}}}}}},"/v1/desk/stats":{"get":{"operationId":"getDeskStats","tags":["Free"],"summary":"Desk track record (free)","description":"The desk's paper track record: main book and explore book separately (count, win rate, mean / median return on cost with fees, best / worst, median hold), last 24 h / 7 d and per desk, and the main-book equity index by day. Random-twin baselines excluded. No payment.","security":[],"responses":{"200":{"description":"Track record","content":{"application/json":{"schema":{"type":"object","properties":{"schemaVersion":{"type":"integer"},"generatedAt":{"type":"integer"},"ageSec":{"type":"integer"},"mode":{"type":"string"},"books":{"type":"object"},"equity":{"type":"object"}}}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"warming_up or data_stale","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/sol/bursts/stream":{"get":{"operationId":"getBurstStream","tags":["Free"],"summary":"Live event stream (needs a stream pass)","description":"Server-Sent Events: sol.burst, rh.burst, sol.grad, call. Needs ?token= from the paid /v1/stream/pass; optional ?types= (comma list). Heartbeat comment every 15 s; an 'expired' event closes the stream when the pass ends. 503 stream_disabled when the server has no STREAM_PASS_SECRET.","security":[],"parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string"},"description":"Stream pass from /v1/stream/pass"},{"name":"types","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated subset of sol.burst, rh.burst, sol.grad, call"}],"responses":{"200":{"description":"text/event-stream","content":{"text/event-stream":{"schema":{"type":"string"}}}},"401":{"description":"bad_token or token_expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"pass_in_use or rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"stream_disabled or stream_full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"docs":{"type":"string"},"ageSec":{"type":"integer"},"maxAgeSec":{"type":"integer"},"retryAfterSec":{"type":"integer"}}},"PaymentRequired":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","const":"payment required"},"code":{"type":"string","const":"payment_required"},"docs":{"type":"string"},"paid":{"type":"boolean"},"price":{"type":"string"},"priceUsd":{"type":"number"},"currency":{"type":"string"}}},"Envelope":{"type":"object","required":["chain","schemaVersion","generatedAt","ageSec"],"properties":{"chain":{"type":"string","enum":["robinhood","solana"]},"schemaVersion":{"type":"integer"},"generatedAt":{"type":"integer","description":"When the worker wrote the data, epoch ms."},"ageSec":{"type":"integer","description":"Seconds since generatedAt at response time. Paid routes refuse > 120."}}},"RhEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"ethUsd":{"type":["number","null"]},"rules":{"type":"object","additionalProperties":{"type":"string"},"description":"Burst tier and outcome rules in words."}}}]},"SolEnvelope":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"solUsd":{"type":["number","null"]},"rule":{"type":"string"}}}]},"RugEnvelope":{"$ref":"#/components/schemas/Envelope"},"WalletsEnvelope":{"$ref":"#/components/schemas/Envelope"},"RhBurst":{"type":"object","description":"Robinhood Chain buyer burst: net ETH buying into one ETH-quoted Uniswap v4 or v3 pool within 60 s while buying is still building.","properties":{"at":{"type":["integer","null"],"description":"Signal time, epoch ms (when our scout saw the threshold crossed).","x-available":"signal"},"token":{"type":["string","null"],"description":"Token contract address.","x-available":"signal"},"pool":{"type":["string","null"],"description":"Pool id: v4 PoolId (bytes32) or v3 pool address.","x-available":"signal"},"tier":{"type":["string","null"],"description":"main: >= 1 ETH net in and >= 12 buy swaps in 60 s, still buying over the last 15 s, pool 5 min-6 h old. lite: >= 0.5 ETH and >= 8 buys (fires earlier, noisier). refire: main thresholds again on the same pool >= 30 min after its last burst. old: first main-threshold burst on a 6-24 h pool.","x-available":"signal","enum":["main","lite","refire","old",null]},"dex":{"type":["string","null"],"description":"Uniswap version of the pool.","x-available":"signal","enum":["v4","v3",null]},"shape":{"type":["string","null"],"description":"scripted: >= 5 buy swaps of an identical size inside the window (one crew splitting a bag). spread: the 3 largest buys are < 50% of the buying. other: neither. v3: a v3-pool burst (tracked as its own lane, shape not classified).","x-available":"signal","enum":["scripted","spread","other","v3",null]},"inflowEth":{"type":["number","null"],"description":"Net ETH into the pool over the window (buys minus sells).","x-available":"signal"},"buys":{"type":["integer","null"],"description":"Buy swaps in the window.","x-available":"signal"},"sells":{"type":["integer","null"],"description":"Sell swaps in the window.","x-available":"signal"},"windowSec":{"type":["integer","null"],"description":"Window length in seconds (60).","x-available":"signal"},"poolAgeMin":{"type":["number","null"],"description":"Minutes since the pool was created.","x-available":"signal"},"sameSizeMax":{"type":["integer","null"],"description":"Largest count of buy swaps with an identical ETH size in the window.","x-available":"signal"},"top3Share":{"type":["number","null"],"description":"Share of the window's buy ETH from its 3 largest buy swaps (0-1).","x-available":"signal"},"sizeCV":{"type":["number","null"],"description":"Coefficient of variation of buy sizes (stdev / mean). Low = uniform, scripted-looking.","x-available":"signal"},"buyers":{"type":["integer","null"],"description":"Distinct buyer wallets (tx senders) in the window. Main tier only; null otherwise.","x-available":"signal+seconds"},"repeatBuyers":{"type":["integer","null"],"description":"Of those, wallets seen in earlier bursts. Main tier only.","x-available":"signal+seconds"},"lp":{"anyOf":[{"$ref":"#/components/schemas/Lp"},{"type":"null"}],"description":"Rug check: who held the pool's liquidity at the signal block. v4 main and lite bursts; null otherwise. See lp fields.","x-available":"signal+seconds"},"outcome":{"allOf":[{"$ref":"#/components/schemas/RhOutcome"}],"description":"Scored 30 minutes after the signal. { scored: false } until then. See rhOutcome fields.","x-available":"signal+30m"}}},"Lp":{"type":"object","description":"Rug check at the signal block. Liquidity-weighted shares of who held the pool's LP position NFTs. insider = the wallet that created the pool or sent an LP add; they can pull it whenever they like.","properties":{"class":{"type":["string","null"],"description":"held: the creator / LP adder held >= 50% of the liquidity (the rug tell). safe: burned, launchpad or locker contracts, or other wallets held >= 50%. unknown: the LP owner could not be read; never treat as safe.","x-available":"signal+seconds","enum":["held","safe","unknown",null]},"insiderShare":{"type":["number","null"],"description":"Share of liquidity whose LP NFT the pool creator / LP adder still held (0-1). On Robinhood Chain >= 0.5 is the rug tell: most such pools are pulled within ~10 minutes of liquidity going in.","x-available":"signal+seconds"},"burnedShare":{"type":["number","null"],"description":"Share whose LP NFT was sent to the zero or dead address (cannot be pulled).","x-available":"signal+seconds"},"contractShare":{"type":["number","null"],"description":"Share added by a contract other than Uniswap's position manager (a launchpad or locker).","x-available":"signal+seconds"},"otherShare":{"type":["number","null"],"description":"Share held by any other wallet.","x-available":"signal+seconds"},"unknownShare":{"type":["number","null"],"description":"Share whose LP NFT owner could not be read.","x-available":"signal+seconds"},"lpAgeMin":{"type":["number","null"],"description":"Minutes from the first liquidity add to the signal.","x-available":"signal+seconds"},"estimated":{"type":["boolean","null"],"description":"true on bursts before Oct 8 2026 21:10 PT, profiled afterwards with the signal block estimated from block time (minute-level precision).","x-available":"signal+seconds"}}},"RhOutcome":{"type":"object","description":"What happened in the 30 minutes after a Robinhood burst, priced from the pool's own swaps. 2% round-trip costs included in every return.","properties":{"scored":{"type":["boolean","null"],"description":"false until the 30-minute window closes.","x-available":"signal+30m"},"ret30m":{"type":["number","null"],"description":"Return holding from the signal price to 30 minutes (-1 = worthless).","x-available":"signal+30m"},"peakRet":{"type":["number","null"],"description":"Best price in the window vs the signal price. Not reachable in practice: you do not know the top.","x-available":"signal+30m"},"ruleRet":{"type":["number","null"],"description":"Return under our live exit rule (fade 0.5 ETH from the high-water inflow, or 60 s without a new price high; -15% stop).","x-available":"signal+30m"},"byRule":{"anyOf":[{"$ref":"#/components/schemas/ByRule"},{"type":"null"}],"description":"Return, exit reason and exit second under each exit rule we test.","x-available":"signal+30m"},"rug":{"anyOf":[{"$ref":"#/components/schemas/RugEvent"},{"type":"null"}],"description":"{ atSec, lpRemoved }: >= 80% of the pool's liquidity was removed atSec after the signal. Every exit rule that had not fired by then scores -100% (minus costs). null = no rug in the window.","x-available":"signal+30m"}}},"RugEvent":{"type":"object","properties":{"atSec":{"type":"integer"},"lpRemoved":{"type":"number"}}},"ByRule":{"type":"object","additionalProperties":{"type":"object","properties":{"ret":{"type":["number","null"]},"why":{"type":["string","null"]},"sec":{"type":["integer","null"]}}}},"SolBurst":{"type":"object","description":"Solana pump.fun bonding-curve buyer burst: >= 10 SOL net in within 60 s, token >= 5 min old, curve 25-55% full, still buying. Tokens 5 min to 4 h old that show curve progress are watched.","properties":{"at":{"type":["integer","null"],"description":"Signal time, epoch ms.","x-available":"signal"},"mint":{"type":["string","null"],"description":"Token mint.","x-available":"signal"},"inflowSol":{"type":["number","null"],"description":"Net SOL into the curve over the window.","x-available":"signal"},"windowSec":{"type":["integer","null"],"description":"Window length in seconds.","x-available":"signal"},"curveFrom":{"type":["number","null"],"description":"Curve fill at the start of the window (0-1).","x-available":"signal"},"curveAt":{"type":["number","null"],"description":"Curve fill at the signal (0-1).","x-available":"signal"},"tokenAgeMin":{"type":["number","null"],"description":"Minutes since the token launched.","x-available":"signal"},"anatomy":{"anyOf":[{"$ref":"#/components/schemas/SolAnatomy"},{"type":"null"}],"description":"Sampled bursts only. See solAnatomy fields. null when not sampled.","x-available":"signal+seconds"},"outcome":{"allOf":[{"$ref":"#/components/schemas/SolOutcome"}],"description":"Scored at graduation or 20 minutes. { scored: false } until then. See solOutcome fields.","x-available":"signal+30m"}}},"SolAnatomy":{"type":"object","description":"Who bought inside a Solana burst window (sampled bursts).","properties":{"buys":{"type":["integer","null"],"description":"Buy trades in the window.","x-available":"signal+seconds"},"buyers":{"type":["integer","null"],"description":"Distinct buyer wallets.","x-available":"signal+seconds"},"sameSlotMax":{"type":["integer","null"],"description":"Most buys landed in one slot (bundling).","x-available":"signal+seconds"},"bundledShare":{"type":["number","null"],"description":"Share of buy SOL that landed in multi-buy slots (0-1).","x-available":"signal+seconds"},"sameSizeMax":{"type":["integer","null"],"description":"Largest count of buys with an identical size.","x-available":"signal+seconds"},"top3Share":{"type":["number","null"],"description":"Share of buy SOL from the 3 largest buys (0-1).","x-available":"signal+seconds"},"holdersTop10":{"type":["number","null"],"description":"Share of supply held by the top 10 holders (0-1).","x-available":"signal+seconds"},"holderTop1":{"type":["number","null"],"description":"Share of supply held by the largest holder (0-1).","x-available":"signal+seconds"},"repeatBuyers":{"type":["integer","null"],"description":"Buyers seen in earlier Solana bursts.","x-available":"signal+seconds"}}},"SolOutcome":{"type":"object","description":"What happened after a Solana burst: the curve path to graduation or 20 minutes (price = curve SOL squared). 2.5% round-trip costs included.","properties":{"scored":{"type":["boolean","null"],"description":"false until graduation or 20 minutes.","x-available":"signal+30m"},"graduated":{"type":["boolean","null"],"description":"The curve completed inside the window.","x-available":"signal+30m"},"gradMin":{"type":["number","null"],"description":"Minutes from the signal to graduation; null if it did not graduate.","x-available":"signal+30m"},"peakRet":{"type":["number","null"],"description":"Best curve price in the window vs the signal.","x-available":"signal+30m"},"gradRet":{"type":["number","null"],"description":"Return at graduation; null if it did not graduate.","x-available":"signal+30m"},"ret20m":{"type":["number","null"],"description":"Return at the 20-minute close; null if it graduated first.","x-available":"signal+30m"},"ruleRet":{"type":["number","null"],"description":"Return under our live abandon-ship exit rule.","x-available":"signal+30m"},"nonStandardCurve":{"type":["boolean","null"],"description":"true when the curve reserves were outside the standard pump.fun range (prices less reliable).","x-available":"signal+30m"},"byRule":{"anyOf":[{"$ref":"#/components/schemas/ByRule"},{"type":"null"}],"description":"Return, exit reason and exit second under each exit rule we test.","x-available":"signal+30m"}}},"Pool":{"type":"object","description":"An ETH-quoted Uniswap v4 or v3 pool on Robinhood Chain created in the last 24 h.","properties":{"id":{"type":["string","null"],"description":"v4 PoolId or v3 pool address.","x-available":"now"},"dex":{"type":["string","null"],"description":"v4 or v3.","x-available":"now","enum":["v4","v3",null]},"token":{"type":["string","null"],"description":"Token address.","x-available":"now"},"createdBlock":{"type":["integer","null"],"description":"Block the pool was created in.","x-available":"now"},"ageMin":{"type":["number","null"],"description":"Minutes since creation.","x-available":"now"},"lastPx":{"type":["number","null"],"description":"Last swap price, ETH per raw token unit (scale by the token's decimals).","x-available":"now"},"liqEth":{"type":["number","null"],"description":"ETH-side liquidity estimate at the last swap.","x-available":"now"},"lastSwapAt":{"type":["integer","null"],"description":"Time of the last swap, epoch ms.","x-available":"now"},"net60m":{"type":["number","null"],"description":"Net ETH in over the last 60 minutes.","x-available":"now"},"buys60m":{"type":["integer","null"],"description":"Buy swaps, last 60 minutes.","x-available":"now"},"sells60m":{"type":["integer","null"],"description":"Sell swaps, last 60 minutes.","x-available":"now"},"fired":{"type":["array","null"],"description":"Burst tiers that have fired on this pool (main, lite, refire, old).","x-available":"now","items":{"type":"string"}}}},"PoolFlow":{"allOf":[{"$ref":"#/components/schemas/Pool"},{"type":"object","properties":{"mins":{"type":"array","items":{"type":"array","items":{"type":["number","null"]},"minItems":6,"maxItems":6},"description":"One row per minute, columns as in minCols."},"minCols":{"type":"array","items":{"type":"string"}}}}]},"Flow":{"type":"object","required":["pool","bursts"],"properties":{"pool":{"$ref":"#/components/schemas/PoolFlow"},"bursts":{"type":"array","items":{"$ref":"#/components/schemas/RhBurst"}}}},"Snapshot":{"type":"object","required":["schemaVersion","generatedAt","ageSec","robinhood","solana"],"properties":{"schemaVersion":{"type":"integer"},"generatedAt":{"type":"integer"},"ageSec":{"type":"integer"},"windowMin":{"type":"integer"},"robinhood":{"type":"object","properties":{"ethUsd":{"type":["number","null"]},"bursts":{"type":"array","items":{"$ref":"#/components/schemas/RhBurst"}},"newPools":{"type":"array","items":{"$ref":"#/components/schemas/Pool"}},"last24h":{"type":"object","properties":{"bursts":{"type":"integer"},"scored":{"type":"integer"},"medianRet30m":{"type":["number","null"]},"medianRuleRet":{"type":["number","null"]},"rugCheck":{"type":"object","additionalProperties":{"type":["number","null"]}}}}}},"solana":{"type":"object","properties":{"solUsd":{"type":["number","null"]},"bursts":{"type":"array","items":{"$ref":"#/components/schemas/SolBurst"}},"last24h":{"type":"object","properties":{"bursts":{"type":"integer"},"scored":{"type":"integer"},"graduated":{"type":"integer"}}}}}}},"RugProfile":{"type":"object","description":"Rug check for one pool right now (GET /v1/rh/token/{addr}/rugcheck). Same reading as the per-burst lp object, taken at the latest block the scout had when it profiled the pool.","properties":{"pool":{"type":["string","null"],"description":"v4 PoolId.","x-available":"now"},"token":{"type":["string","null"],"description":"Token address.","x-available":"now"},"dex":{"type":["string","null"],"description":"Always v4 (v3 LP ownership is not profiled).","x-available":"now"},"poolAgeMin":{"type":["number","null"],"description":"Pool age at the check, minutes.","x-available":"now"},"checkedAt":{"type":["integer","null"],"description":"When this profile was taken, epoch ms. Active pools are re-profiled about every 10 minutes.","x-available":"now"},"block":{"type":["integer","null"],"description":"Block the ownership was read at.","x-available":"now"},"class":{"type":["string","null"],"description":"held / safe / unknown as on bursts, plus empty: no liquidity in the pool (never added, or already pulled).","x-available":"now","enum":["held","safe","unknown","empty",null]},"insiderShare":{"type":["number","null"],"description":"Share of liquidity the creator / LP adder can pull (0-1).","x-available":"now"},"burnedShare":{"type":["number","null"],"description":"Share burned (cannot be pulled).","x-available":"now"},"contractShare":{"type":["number","null"],"description":"Share added by a launchpad or locker contract.","x-available":"now"},"otherShare":{"type":["number","null"],"description":"Share held by other wallets.","x-available":"now"},"unknownShare":{"type":["number","null"],"description":"Share whose LP NFT owner could not be read.","x-available":"now"},"lpAgeMin":{"type":["number","null"],"description":"Minutes since the first liquidity add.","x-available":"now"},"lpAdds":{"type":["integer","null"],"description":"Liquidity adds seen.","x-available":"now"},"creator":{"type":["string","null"],"description":"Address that created the pool (Initialize tx sender).","x-available":"now"}}},"WalletLeader":{"type":"object","description":"A Solana wallet whose pump.fun buys we replay as copy trades (GET /v1/sol/wallets/leaders). Replays use one fixed exit plan over a 60-minute price path; fees in; each capped at +100%.","properties":{"rank":{"type":["integer","null"],"description":"Rank by evShrunk.","x-available":"now"},"wallet":{"type":["string","null"],"description":"Wallet address (on-chain).","x-available":"now"},"n":{"type":["integer","null"],"description":"Replayed big buys (up to the last 60).","x-available":"now"},"evShrunk":{"type":["number","null"],"description":"Mean replay return per copy, shrunk toward the pooled mean with k pseudo-buys (see method.shrink).","x-available":"now"},"evRaw":{"type":["number","null"],"description":"Unshrunk mean replay return per copy.","x-available":"now"},"winShare":{"type":["number","null"],"description":"Share of replays that ended positive.","x-available":"now"},"shadowed":{"type":["integer","null"],"description":"Buys shadowed for 60 min (all sizes).","x-available":"now"},"shadowHit":{"type":["number","null"],"description":"Share of shadowed buys that hit +35% before -20%.","x-available":"now"},"lastBuyAt":{"type":["integer","null"],"description":"Last buy we saw, epoch ms.","x-available":"now"},"sells":{"anyOf":[{"$ref":"#/components/schemas/SellPattern"},{"type":"null"}],"description":"The leader's own exits on the buys we followed: observed, sold, soldShare, medSoldSec, medSellGain (leader's gain at its first sell), soldWithin60sShare. null when none observed.","x-available":"now"}}},"SellPattern":{"type":"object","properties":{"observed":{"type":"integer"},"sold":{"type":"integer"},"soldShare":{"type":["number","null"]},"medSoldSec":{"type":["number","null"]},"medSellGain":{"type":["number","null"]},"soldWithin60sShare":{"type":["number","null"]}}},"Crew":{"type":"object","description":"A repeat buyer in Robinhood Chain bursts (GET /v1/rh/crews): a tx sender of buy swaps inside 3 or more burst windows.","properties":{"wallet":{"type":["string","null"],"description":"Wallet address (on-chain).","x-available":"now"},"bursts":{"type":["integer","null"],"description":"Bursts it bought into.","x-available":"now"},"lastSeenAt":{"type":["integer","null"],"description":"Last burst it bought into, epoch ms (minute precision).","x-available":"now"},"lastSeenMinAgo":{"type":["integer","null"],"description":"Minutes since then, at snapshot time.","x-available":"now"}}}},"securitySchemes":{"x402":{"type":"apiKey","in":"header","name":"PAYMENT-SIGNATURE","description":"x402 v2 pay-per-call (https://www.x402.org). Call without it to get 402 + a PAYMENT-REQUIRED header (base64 JSON: price, USDC asset, network, payTo); sign and retry with PAYMENT-SIGNATURE. The 200 carries PAYMENT-RESPONSE (settlement tx). No accounts or API keys.","x-x402":{"x402Version":2,"scheme":"exact","asset":"USDC"}}}}}