{"openapi":"3.1.0","info":{"title":"DEEP API","version":"0.1.0","description":"Indexed data for DEEP (deep-curve launchpad and DeepSwap) on Solana mainnet-beta. On-chain state is authoritative: build transactions from chain reads, not from this API.\n\nAmounts (lamports, token base units) are decimal strings of integers. Times: `createdAt`/`asOf` unix ms, trade `timestamp` and candle `time` unix seconds.\n\nRate limits are per client IP: 300 requests per minute by default, lower on the routes whose `x-rate-limit` says so. A 429 carries `retry-after`; every response carries `x-ratelimit-limit`, `x-ratelimit-remaining` and `x-ratelimit-reset`.\n\nBrowser CORS is limited to DEEP's own sites on the hosted deployment; call it from a server or proxy it. The Solana Actions routes (`/v1/actions/*`, `/actions.json`) answer any origin, as the Actions spec requires.\n\nAPI keys (optional): send `x-api-key: deep_…` (never in the URL). A key gets its tier's higher limit, counted per key instead of per IP, and its usage is shown on the developer dashboard (developers.deepliquidity.fun). Without a key every route works at the limits above; an unknown or revoked key is refused with 401.\n\nThe programs are not audited. Market cap figures are not liquidity.","license":{"name":"MIT","identifier":"MIT"}},"tags":[{"name":"Tokens"},{"name":"Creators"},{"name":"Pools"},{"name":"Pairs"},{"name":"Stats"},{"name":"Chain"},{"name":"Realtime"},{"name":"Share"},{"name":"Meta"}],"paths":{"/v1/integrations":{"get":{"tags":["Meta"],"summary":"Approved integration partners that chose to be listed","description":"Partners approved by DEEP whose visibility is public. Private partners are never listed. Apply on the developer dashboard.","operationId":"getV1Integrations","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Integrations"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/metadata":{"post":{"tags":["Creators"],"summary":"Upload a token image and get its Metaplex metadata URI","description":"multipart/form-data: `image` (PNG, JPEG, GIF or WebP, ≤ 1 MB) and the fields name, symbol, description and links. Only on deployments with metadata storage.","operationId":"postV1Metadata","responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataUploadResponse"}}}},"400":{"description":"Invalid form","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Image too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported image type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Blocked term in name or symbol","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"10 requests per 1 minute per IP"}},"/v1/reports":{"post":{"tags":["Meta"],"summary":"Report a token to DEEP moderation","operationId":"postV1Reports","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["mint","reason"],"additionalProperties":false,"properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"reason":{"type":"string","enum":["impersonation","scam","illegal","offensive","other"]},"detail":{"type":"string","maxLength":500}}}}}},"responses":{"202":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"const":true}},"required":["ok"]}}}},"400":{"description":"Invalid body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"5 requests per 1 minute per IP"}},"/actions.json":{"get":{"tags":["Share"],"summary":"Solana Actions mapping of the app host (served at its root)","operationId":"getActionsJson","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"rules":{"type":"array","items":{"type":"object","properties":{"pathPattern":{"type":"string"},"apiPath":{"type":"string"}},"required":["pathPattern","apiPath"]}}},"required":["rules"]}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"not rate limited"}},"/v1/actions/buy/{mint}":{"get":{"tags":["Share"],"summary":"Solana Action: buy a DEEP token (metadata)","description":"Actions spec 2.x GET: the token's DEEP-hosted logo, name and its own total fee read from its on-chain account, with amount buttons and an input. Any origin may call it (CORS `*`, Actions spec). Off unless the deployment enables Actions; on mainnet only with the owner's switch.","operationId":"getV1ActionsBuyMint","parameters":[{"schema":{"type":"string"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"ActionGetResponse","content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"400":{"description":"Bad mint, account, amount, percent or slippage","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Not a DEEP token, or hidden by moderation","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"The curve completed and its DeepSwap pool is not open yet","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Actions are switched off on this deployment (cluster guard), or the RPC failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}},"x-rate-limit":"120 requests per 1 minute per IP"},"post":{"tags":["Share"],"summary":"Solana Action: buy transaction for a wallet to sign","description":"Query or `data`: `amount` (SOL, up to 9 decimals). Optional `slippageBps` (1..1000, default 100) and `ref` (an approved partner; ignored otherwise). Body `{account}`. Returns an unsigned transaction (base64) for the venue the token trades on now (Deep Curve or DeepSwap) with a minimum-out from a fresh chain quote. No fee is added; the server signs nothing.","operationId":"postV1ActionsBuyMint","parameters":[{"schema":{"type":"string"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"TransactionResponse","content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"400":{"description":"Bad mint, account, amount, percent or slippage","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Not a DEEP token, or hidden by moderation","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"The curve completed and its DeepSwap pool is not open yet","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Actions are switched off on this deployment (cluster guard), or the RPC failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}},"x-rate-limit":"60 requests per 1 minute per IP"}},"/v1/actions/sell/{mint}":{"get":{"tags":["Share"],"summary":"Solana Action: sell a DEEP token (metadata)","description":"Actions spec 2.x GET: the token's DEEP-hosted logo, name and its own total fee read from its on-chain account, with amount buttons and an input. Any origin may call it (CORS `*`, Actions spec). Off unless the deployment enables Actions; on mainnet only with the owner's switch.","operationId":"getV1ActionsSellMint","parameters":[{"schema":{"type":"string"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"ActionGetResponse","content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"400":{"description":"Bad mint, account, amount, percent or slippage","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Not a DEEP token, or hidden by moderation","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"The curve completed and its DeepSwap pool is not open yet","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Actions are switched off on this deployment (cluster guard), or the RPC failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}},"x-rate-limit":"120 requests per 1 minute per IP"},"post":{"tags":["Share"],"summary":"Solana Action: sell transaction for a wallet to sign","description":"Query or `data`: `percent` (1..100 of the wallet's balance) or `amount` (tokens). Optional `slippageBps` (1..1000, default 100) and `ref` (an approved partner; ignored otherwise). Body `{account}`. Returns an unsigned transaction (base64) for the venue the token trades on now (Deep Curve or DeepSwap) with a minimum-out from a fresh chain quote. No fee is added; the server signs nothing.","operationId":"postV1ActionsSellMint","parameters":[{"schema":{"type":"string"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"TransactionResponse","content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"400":{"description":"Bad mint, account, amount, percent or slippage","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"404":{"description":"Not a DEEP token, or hidden by moderation","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"409":{"description":"The curve completed and its DeepSwap pool is not open yet","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Actions are switched off on this deployment (cluster guard), or the RPC failed","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}},"x-rate-limit":"60 requests per 1 minute per IP"}},"/v1/cards/trade/{file}":{"get":{"tags":["Share"],"summary":"Share card of one trade (`<signature>.png`)","description":"Drawn only when the indexed trade matches its finalized transaction (DEEP's program, mint, side, trader and amounts). Cached by content.","operationId":"getV1CardsTradeFile","parameters":[{"schema":{"type":"string"},"in":"path","name":"file","required":true}],"responses":{"200":{"description":"1200×630 PNG","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Not `<signature>.png`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No DEEP trade with this signature, or not on chain","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"not_finalized: try again in a few seconds","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"transaction_failed | mismatch: the chain does not confirm the indexed trade","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"The API has no RPC connection or the chain read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"30 requests per 1 minute per IP"}},"/v1/cards/token/{file}":{"get":{"tags":["Share"],"summary":"Share card of a token (`<mint>.png`)","description":"Venue, price and the token's own total fees, read from chain (cached 15 s).","operationId":"getV1CardsTokenFile","parameters":[{"schema":{"type":"string"},"in":"path","name":"file","required":true}],"responses":{"200":{"description":"1200×630 PNG","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Not `<mint>.png`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"The API has no RPC connection or the chain read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"30 requests per 1 minute per IP"}},"/v1/share/t/{signature}":{"get":{"tags":["Share"],"summary":"Share page of a verified trade (Open Graph), then the token's page","operationId":"getV1ShareTSignature","parameters":[{"schema":{"type":"string"},"in":"path","name":"signature","required":true}],"responses":{"200":{"description":"HTML with Open Graph tags","content":{"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"HTML with Open Graph tags","content":{"text/html":{"schema":{"type":"string"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/share/token/{mint}":{"get":{"tags":["Share"],"summary":"Share page of a token (Open Graph), for link-preview bots","operationId":"getV1ShareTokenMint","parameters":[{"schema":{"type":"string"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"HTML with Open Graph tags","content":{"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"HTML with Open Graph tags","content":{"text/html":{"schema":{"type":"string"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/share/c/{mint}":{"get":{"tags":["Share"],"summary":"Share page of a token's public community preview (chat, voice, chart)","operationId":"getV1ShareCMint","parameters":[{"schema":{"type":"string"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"HTML with Open Graph tags","content":{"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"HTML with Open Graph tags","content":{"text/html":{"schema":{"type":"string"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/cards/week/{file}":{"get":{"tags":["Share"],"summary":"My week card (`<wallet>.png`): a season's realized result by day","description":"Same figures as GET /v1/traders/:wallet/week (`season`, default current).","operationId":"getV1CardsWeekFile","parameters":[{"schema":{"type":"string","pattern":"^(current|[0-9]{4}-[0-9]{2}-[0-9]{2})$","default":"current"},"in":"query","name":"season","required":false},{"schema":{"type":"string"},"in":"path","name":"file","required":true}],"responses":{"200":{"description":"1200×630 PNG","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Not `<wallet>.png`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"30 requests per 1 minute per IP"}},"/v1/cards/season/{id}/{board}/{file}":{"get":{"tags":["Share"],"summary":"Season rank card (`<wallet>.png`): a wallet's place on a season board","operationId":"getV1CardsSeasonIdBoardFile","parameters":[{"schema":{"type":"string","pattern":"^(current|[0-9]{4}-[0-9]{2}-[0-9]{2})$"},"in":"path","name":"id","required":true},{"schema":{"type":"string","enum":["traders","creators"]},"in":"path","name":"board","required":true},{"schema":{"type":"string"},"in":"path","name":"file","required":true}],"responses":{"200":{"description":"1200×630 PNG","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Not `<wallet>.png`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown season, or the wallet is not on that board","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"30 requests per 1 minute per IP"}},"/v1/share/week/{wallet}":{"get":{"tags":["Share"],"summary":"Share page of a My week card, then the sharer's profile (`?ref=`)","operationId":"getV1ShareWeekWallet","parameters":[{"schema":{"type":"string"},"in":"path","name":"wallet","required":true}],"responses":{"200":{"description":"HTML with Open Graph tags","content":{"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"HTML with Open Graph tags","content":{"text/html":{"schema":{"type":"string"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/share/season/{id}":{"get":{"tags":["Share"],"summary":"Share page of a season (with `?wallet&board`: that wallet's rank card)","operationId":"getV1ShareSeasonId","parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"HTML with Open Graph tags","content":{"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"HTML with Open Graph tags","content":{"text/html":{"schema":{"type":"string"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/tokens":{"get":{"tags":["Tokens"],"summary":"Every launch","description":"Newest first. Moderation-hidden tokens are left out (they still exist on chain).","operationId":"getV1Tokens","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TokenSummary"}}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/tokens/{mint}":{"get":{"tags":["Tokens"],"summary":"One launch","description":"A hidden token is returned with `moderation`. The DEEP platform's own token carries `official: true`.","operationId":"getV1TokensMint","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSummary"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/tokens/{mint}/trades":{"get":{"tags":["Tokens"],"summary":"Recent curve trades of a token","description":"Newest first.","operationId":"getV1TokensMintTrades","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":500,"default":50},"in":"query","name":"limit","required":false},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Trade"}}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/trades/recent":{"get":{"tags":["Tokens"],"summary":"The newest trades across every token","description":"Curve trades and graduation-pool swaps of every listed token, newest first (`limit` 1–100, default 40). Moderation-hidden tokens are left out.","operationId":"getV1TradesRecent","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":40},"in":"query","name":"limit","required":false}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Trade"}}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/tokens/{mint}/candles":{"get":{"tags":["Tokens"],"summary":"OHLCV candles of a token","description":"Price in SOL per whole token, volume in SOL. Timeframes: 1m, 5m, 15m, 1h, 4h, 24h, 7d.","operationId":"getV1TokensMintCandles","parameters":[{"schema":{"type":"string","enum":["1m","5m","15m","1h","4h","24h","7d"]},"in":"query","name":"tf","required":true},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Candle"}}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/price/sol":{"get":{"tags":["Chain"],"summary":"SOL/USD from the on-chain Pyth account","description":"The sponsored Pyth PriceUpdateV2 read over RPC; refused when older than the cluster's deep-curve limit.","operationId":"getV1PriceSol","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SolPrice"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"price_unavailable (stale or unreadable) or rpc_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/stats":{"get":{"tags":["Stats"],"summary":"Protocol totals from indexed events","operationId":"getV1Stats","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtocolStats"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/stats/tvl":{"get":{"tags":["Stats"],"summary":"TVL history of all graduation pools","operationId":"getV1StatsTvl","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":90,"default":30},"in":"query","name":"days","required":false}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TvlPoint"}}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/stats/history":{"get":{"tags":["Stats"],"summary":"Trades, volume, launches and graduations per hour or day","description":"`days` 1..90 (default 30): hourly buckets up to 7 days, daily (UTC) beyond, every bucket of the window listed. Cached 10 s.","operationId":"getV1StatsHistory","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":90,"default":30},"in":"query","name":"days","required":false}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtocolHistory"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/pools/{address}/tvl":{"get":{"tags":["Pools"],"summary":"TVL history of one graduation pool","description":"Hourly buckets for days ≤ 7, daily (UTC) otherwise, oldest first.","operationId":"getV1PoolsAddressTvl","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":90,"default":30},"in":"query","name":"days","required":false},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"address","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TvlPoint"}}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/tokens/{mint}/stats":{"get":{"tags":["Tokens"],"summary":"24h stats, holders and sanitized metadata","description":"Holders are read from chain (cached 5 min; `holders.error` explains a missing list).","operationId":"getV1TokensMintStats","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenStats"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/traders/{wallet}/trades":{"get":{"tags":["Tokens"],"summary":"A wallet's trades on the curve and on DeepSwap","operationId":"getV1TradersWalletTrades","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"in":"query","name":"limit","required":false},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"wallet","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TraderTrade"}}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/creators/{creator}/history":{"get":{"tags":["Creators"],"summary":"Fees earned and volume of a wallet's launches over time","description":"Per token and bucket over the last `days`: hourly buckets for days ≤ 7, daily (UTC) otherwise. A wallet without launches gets empty lists.","operationId":"getV1CreatorsCreatorHistory","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":90,"default":30},"in":"query","name":"days","required":false},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"creator","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatorHistory"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/splitter":{"get":{"tags":["Chain"],"summary":"DEEP fee vault: revenue collected and distributed","description":"DEEP V1: every DEEP fee lands in the deep-curve fee vault and is paid out to DEEP by the permissionless `distribute`, twice daily (00:00 and 12:00 America/Los_Angeles). Chain state plus the latest indexed distributions (totals only).","operationId":"getV1Splitter","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SplitterStatus"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"The API has no RPC connection or the chain read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/network":{"get":{"tags":["Chain"],"summary":"Cluster, slot, epoch and TPS","operationId":"getV1Network","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkInfo"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"The API has no RPC connection or the chain read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/status":{"get":{"tags":["Chain"],"summary":"Service monitors and program deployment check","description":"`programs`: each program's ProgramData hash compared with the recorded release build.","operationId":"getV1Status","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceStatus"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"status_unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/governance":{"get":{"tags":["Chain"],"summary":"Pending DEEP multisig proposals","description":"The DEEP Squads multisig as the API watches it (SQUADS_WATCH): threshold, time lock and every proposal that still needs votes or waits for its time lock, so a queued change is visible before it executes. `enabled: false` when the API watches no multisig on this cluster.","operationId":"getV1Governance","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GovernanceStatus"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/pools":{"get":{"tags":["Pools"],"summary":"Graduation pools (launchpad view, token/SOL)","description":"`lp` is the LP state verified on chain when the API has an RPC connection.","operationId":"getV1Pools","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PoolSummary"}}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/tokens/{mint}/links":{"post":{"tags":["Creators"],"summary":"Replace a token's links (signed by its creator)","description":"The body is signed with `buildLinksMessage` from the SDK by the wallet recorded as BondingCurve.creator on chain. Errors: 400 invalid_body | invalid_link | bad_issued_at | stale_message, 401 bad_signature, 403 not_creator | links_hidden, 404 not_found, 409 nonce_used | superseded, 413, 429, 503.","operationId":"postV1TokensMintLinks","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["links","issuedAt","nonce","signature","publicKey"],"additionalProperties":false,"properties":{"links":{"type":"object","additionalProperties":false,"properties":{"twitter":{"type":"string","maxLength":200,"nullable":true},"telegram":{"type":"string","maxLength":200,"nullable":true},"website":{"type":"string","maxLength":200,"nullable":true},"discord":{"type":"string","maxLength":200,"nullable":true}}},"issuedAt":{"type":"string","maxLength":40},"nonce":{"type":"string","pattern":"^[0-9a-f]{32}$"},"signature":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{64,90}$"},"publicKey":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTokenLinksResponse"}}}},"400":{"description":"Invalid body or link","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Bad signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Not the creator, or links hidden by moderation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Nonce reused or superseded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"The API has no RPC connection or the chain read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"10 requests per 60 s per IP"}},"/v1/launch/mint":{"post":{"tags":["Creators"],"summary":"A mint keypair whose address ends in \"deep\"","description":"One pre-computed mint keypair for a launch. Every keypair is handed out once and never again; the response is `cache-control: no-store`. Send no body.\n`vanity` is null when none is ready, or when the deployment does not compute them: launch with any new random mint instead, the program accepts both.\nThe key signs `create_token` once to create the mint account; afterwards it holds no mint, freeze or metadata authority. Check that the secret key derives `mint` before using it, and do not request one you will not use.","operationId":"postV1LaunchMint","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VanityMintResponse"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"6 requests per 1 hour per IP"}},"/v1/trades/feed":{"get":{"tags":["Tokens"],"summary":"Every trade after a cursor, oldest first","description":"Curve trades and graduation-pool swaps ordered by (timestamp, signature, event index), strictly after `after` (`<unix ms>.<signature>.<index>`, or `<unix ms>..-1` to start at a time); `limit` 1–500, default 200. Pass the returned `cursor` back as `after`. A trade indexed late can land before a cursor already read, so readers re-read a short overlap and de-duplicate. Moderation-hidden tokens are left out.","operationId":"getV1TradesFeed","parameters":[{"schema":{"type":"string","maxLength":140},"in":"query","name":"after","required":true},{"schema":{"type":"integer","minimum":1,"maximum":500,"default":200},"in":"query","name":"limit","required":false}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradeFeedPage"}}}},"400":{"description":"Bad cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/tokens/{mint}/holders/{wallet}":{"get":{"tags":["Tokens"],"summary":"A wallet's verified position in a token","description":"Balance and rank among holders from chain (cached 60 s per mint; program-owned accounts, pools, the burn address and LP locks are never ranked), first buy and sells from the indexer. When the chain read fails the chain fields are null and `holdersError` says why.","operationId":"getV1TokensMintHoldersWallet","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"wallet","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HolderPosition"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"600 requests per 1 minute per IP"}},"/v1/pairs":{"get":{"tags":["Pairs"],"summary":"Every DeepSwap pool, any two tokens","operationId":"getV1Pairs","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PairSummary"}}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/pairs/{address}":{"get":{"tags":["Pairs"],"summary":"One DeepSwap pool","operationId":"getV1PairsAddress","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"address","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PairSummary"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/pairs/{address}/trades":{"get":{"tags":["Pairs"],"summary":"Recent swaps of a pool","description":"Newest first; amounts in base units of each side.","operationId":"getV1PairsAddressTrades","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":500,"default":50},"in":"query","name":"limit","required":false},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"address","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PairTrade"}}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/pairs/{address}/candles":{"get":{"tags":["Pairs"],"summary":"OHLCV candles of a pool","description":"Price = token1 per whole token0, volume in token1.","operationId":"getV1PairsAddressCandles","parameters":[{"schema":{"type":"string","enum":["1m","5m","15m","1h","4h","24h","7d"]},"in":"query","name":"tf","required":true},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"address","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Candle"}}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/stocks":{"get":{"tags":["Pairs"],"summary":"Tokenized stock listings and their DeepSwap pairs","description":"Tokenized stock pairs. Off until the operator enables them after legal sign-off; until then `enabled` is false and the lists are empty. Requests from countries the operator lists are refused with 451.","operationId":"getV1Stocks","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StocksResponse"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"451":{"description":"unavailable_in_region","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/rewards/squads":{"post":{"tags":["Tokens"],"summary":"Register a Squads v4 multisig's vaults for Holder Rewards","description":"Body `{ multisig }`. The account is read on chain: it must be owned by the Squads v4 program (SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf) and decode as a Multisig. Its vaults 0–3 (PDA [\"multisig\", multisig, \"vault\", index]) then count as holders in the next snapshot; they claim through a Squads transaction. Idempotent; anyone may register any multisig. Errors: 400 invalid body, 422 not_a_squads_multisig, 429, 503.","operationId":"postV1RewardsSquads","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["multisig"],"additionalProperties":false,"properties":{"multisig":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SquadsVaults"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Not a Squads v4 multisig","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"The API has no RPC connection or the chain read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"10 requests per 1 minute per IP"}},"/v1/rewards/squads/{multisig}":{"get":{"tags":["Tokens"],"summary":"A multisig's Squads vaults registered for Holder Rewards","description":"Empty `vaults` when the multisig was never registered.","operationId":"getV1RewardsSquadsMultisig","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"multisig","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SquadsVaults"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"60 requests per 1 minute per IP"}},"/v1/rewards/wallet/{wallet}":{"get":{"tags":["Tokens"],"summary":"A wallet's Holder Rewards across every token, with Merkle proofs","description":"Same rules as /v1/rewards/:mint/:wallet for each token the wallet has a leaf in (only the root active on chain). One entry per (mint, distributor) leaf; `claimed`/`claimable` are null when the chain read fails.","operationId":"getV1RewardsWalletWallet","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"wallet","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletAllRewards"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"The API has no RPC connection or the chain read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"30 requests per 1 minute per IP"}},"/v1/rewards/{mint}":{"get":{"tags":["Tokens"],"summary":"Holder Rewards of a token: config, distributors and snapshot rounds","description":"deep-rewards. One distributor per reward asset (SOL, or the pool's quote token). Rounds every `roundSeconds`; `enabled` is false when the token has no distributor.","operationId":"getV1RewardsMint","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenRewards"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"The API has no RPC connection or the chain read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/rewards/{mint}/{wallet}":{"get":{"tags":["Tokens"],"summary":"A wallet's claimable Holder Rewards with Merkle proofs","description":"Only proofs for the root active on chain are served. `claimable` = cumulative − ClaimStatus.claimed (read on chain; null if unreadable). Claim with the SDK's `rewardsClaimIx`.","operationId":"getV1RewardsMintWallet","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"wallet","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletRewards"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"The API has no RPC connection or the chain read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/rewards/{mint}/tree/{round}":{"get":{"tags":["Tokens"],"summary":"The canonical tree file of a rewards round","description":"sha256 of the body is the round's on-chain `data_hash`; every root and proof can be recomputed from it. `rewardMint` picks the distributor when a token has several.","operationId":"getV1RewardsMintTreeRound","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"query","name":"rewardMint","required":false},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true},{"schema":{"type":"integer","minimum":1,"maximum":4294967295},"in":"path","name":"round","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"30 requests per 1 minute per IP"}},"/v1/rewards/{mint}/snapshot/{round}":{"get":{"tags":["Tokens"],"summary":"The snapshot behind a rewards round (pool, weights, exclusions)","description":"Canonical JSON (SDK `rewardSnapshotFile`): with the previous round's tree file it recomputes the round's allocation exactly. Served from the moment the round is built, before its root is proposed. `rewardMint` picks the distributor when a token has several.","operationId":"getV1RewardsMintSnapshotRound","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"query","name":"rewardMint","required":false},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true},{"schema":{"type":"integer","minimum":1,"maximum":4294967295},"in":"path","name":"round","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"30 requests per 1 minute per IP"}},"/v1/rewards/{mint}/verify":{"get":{"tags":["Tokens"],"summary":"Independent checks of the active and pending rewards roots","description":"Runs the SDK's `verifyRewardTree` against the chain for each distributor: data hash, recomputed root and total, no decreased cumulative amount, allocation recomputed from the snapshot, exclusions. A failing pending root is grounds for the admin's `veto_root` during the root delay.","operationId":"getV1RewardsMintVerify","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RewardsVerify"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"The API has no RPC connection or the chain read failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"30 requests per 1 minute per IP"}},"/v1/creators/{creator}/tokens":{"get":{"tags":["Creators"],"summary":"Tokens launched by a wallet","operationId":"getV1CreatorsCreatorTokens","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"creator","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TokenSummary"}}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/traders/{wallet}/reputation":{"get":{"tags":["Tokens"],"summary":"A wallet's DEEP trading record (reputation)","description":"From the indexer: trades, volume, tokens traded, FIFO hold time, realized results and win rate of closed positions (exact SOL in vs SOL out of the wallet's own fills), and its launch track record, each for all time and the last 30 days with the trades it covers. `coverage` says when the indexer holds only part of the history (a sell larger than the indexed buys, the read limit, or open positions whose chain balance shows transfers: `transferPositions`). Open positions carry the wallet's chain balance and the tokens moved by transfer (`pnlPartial`); tokens sent away are never counted as profit. Program-derived addresses are not ranked (`eligible: false`). `limit` (0–200, default 50) cuts each position list. Cached per wallet for 60 s.","operationId":"getV1TradersWalletReputation","parameters":[{"schema":{"type":"integer","minimum":0,"maximum":200,"default":50},"in":"query","name":"limit","required":false},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"wallet","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraderReputation"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"30 requests per 1 minute per IP"}},"/v1/traders/{wallet}/compare/{other}":{"get":{"tags":["Tokens"],"summary":"Two wallets' reputations side by side (You vs @name)","description":"Both reputations exactly as GET /v1/traders/:wallet/reputation computes them (same cache, 60 s per wallet); no figure is added. `limit` (0–200, default 0) cuts each position list.","operationId":"getV1TradersWalletCompareOther","parameters":[{"schema":{"type":"integer","minimum":0,"maximum":200,"default":0},"in":"query","name":"limit","required":false},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"wallet","required":true},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"other","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraderComparison"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"30 requests per 1 minute per IP"}},"/v1/traders/{wallet}/days":{"get":{"tags":["Tokens"],"summary":"The UTC days a wallet traded on","description":"Newest first, at most 400 (`truncated` says when there are more). DEEP Social computes trading streaks from it. Cached 60 s.","operationId":"getV1TradersWalletDays","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"wallet","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraderDays"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"60 requests per 1 minute per IP"}},"/v1/trades/{signature}":{"get":{"tags":["Tokens"],"summary":"A transaction's indexed trades","description":"Every curve trade and DeepSwap swap the indexer stored for the signature, in event order. 404 when the transaction is unknown to the indexer or its token is moderation-hidden. DEEP Social verifies a thesis' trade with it.","operationId":"getV1TradesSignature","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{64,90}$"},"in":"path","name":"signature","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TraderTrade"}}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/leaderboard/traders":{"get":{"tags":["Tokens"],"summary":"Trader leaderboard: realized result, win rate or volume","description":"The reputation math applied to every wallet with a trade in `window` (7d | 30d | all; the 2,000 most active are scanned), ranked by `by`: realized (closed positions' exact SOL out − SOL in; wallets with a closed position), winrate (wallets with at least 5 closed, complete positions), volume (wallets with a trade). Program-owned wallets are never ranked. Snapshots are computed by the indexer leader every 5 minutes and stored; `asOf` is the snapshot time. `offset`/`limit` page the ranking.","operationId":"getV1LeaderboardTraders","parameters":[{"schema":{"type":"string","enum":["7d","30d","all"],"default":"30d"},"in":"query","name":"window","required":false},{"schema":{"type":"string","enum":["realized","winrate","volume"],"default":"realized"},"in":"query","name":"by","required":false},{"schema":{"type":"integer","minimum":0,"maximum":10000,"default":0},"in":"query","name":"offset","required":false},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"in":"query","name":"limit","required":false}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraderLeaderboard"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/leaderboard/creators":{"get":{"tags":["Creators"],"summary":"Creator leaderboard: launches and graduation rate","description":"Every wallet with a launch in `window` (by launch time): launched, bonding, graduating, graduated and graduated × 10000 / launched, ranked by graduated, then graduation rate, then launches. Program-owned wallets are never ranked. Snapshots are computed by the indexer leader every 5 minutes.","operationId":"getV1LeaderboardCreators","parameters":[{"schema":{"type":"string","enum":["7d","30d","all"],"default":"30d"},"in":"query","name":"window","required":false},{"schema":{"type":"integer","minimum":0,"maximum":10000,"default":0},"in":"query","name":"offset","required":false},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"in":"query","name":"limit","required":false}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatorLeaderboard"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"req=>req.apiKey?Math.max(base,Math.ceil(base*req.apiKey.perMinute/rateLimitMax)):base requests per 1 minute per IP"}},"/v1/leaderboard/holders/{mint}":{"get":{"tags":["Tokens"],"summary":"Holder leaderboard of a token: size or hold time","description":"Holders from chain (every token account of the mint summed per owner; the curve vault, DeepSwap pool vaults, the holder and fee vaults, the burn address and any program-owned owner are excluded), joined with each wallet's first indexed buy. `by=size`: balance, largest first. `by=holdtime`: wallets with an indexed buy, longest held first (tokens received by transfer have no hold time). Cached 5 min per token; `error` says when the chain read is missing.","operationId":"getV1LeaderboardHoldersMint","parameters":[{"schema":{"type":"string","enum":["size","holdtime"],"default":"size"},"in":"query","name":"by","required":false},{"schema":{"type":"integer","minimum":0,"maximum":10000,"default":0},"in":"query","name":"offset","required":false},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"in":"query","name":"limit","required":false},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HolderLeaderboard"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"req=>req.apiKey?Math.max(base,Math.ceil(base*req.apiKey.perMinute/rateLimitMax)):base requests per 1 minute per IP"}},"/v1/creators/{creator}/dashboard":{"get":{"tags":["Creators"],"summary":"Creator dashboard: every launch's state, holders, activity and Creator Rewards","description":"Per token: lifecycle, curve depth, holders now (chain, cached 5 min; the 20 newest launches per request) and the daily holder snapshots the API has recorded (the series starts with the first recorded day), daily trades and volume over the last 90 days, and Creator Rewards: earned and claimed from indexed events, unclaimed read from the curve and pool accounts. Cached per wallet for 30 s.","operationId":"getV1CreatorsCreatorDashboard","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"creator","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatorDashboard"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"30 requests per 1 minute per IP"}},"/v1/seasons":{"get":{"tags":["Tokens"],"summary":"Weekly seasons: the current one and every past one","description":"A season runs Monday 00:00 UTC to the next Monday. Final seasons are frozen snapshots taken after the season ended.","operationId":"getV1Seasons","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeasonList"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/seasons/{id}/traders":{"get":{"tags":["Tokens"],"summary":"Season board: traders by realized result","description":"`id` is the season's Monday (YYYY-MM-DD) or `current`. Realized result of positions closed in the season; fills of a token bought and sold in one transaction (self-trades) are left out. Every wallet with a closed position is on the board; `eligible` says whether it can win a prize (the season's minimum volume, not disqualified). `prizes` are optional and set by DEEP per season; empty means bragging rights only.","operationId":"getV1SeasonsIdTraders","parameters":[{"schema":{"type":"integer","minimum":0,"maximum":10000,"default":0},"in":"query","name":"offset","required":false},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"in":"query","name":"limit","required":false},{"schema":{"type":"string","pattern":"^(current|[0-9]{4}-[0-9]{2}-[0-9]{2})$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeasonTraderBoard"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"req=>req.apiKey?Math.max(base,Math.ceil(base*req.apiKey.perMinute/rateLimitMax)):base requests per 1 minute per IP"}},"/v1/seasons/{id}/creators":{"get":{"tags":["Creators"],"summary":"Season board: creators by graduations","description":"Launches made in the season, ranked by graduated, then graduation rate, then launches.","operationId":"getV1SeasonsIdCreators","parameters":[{"schema":{"type":"integer","minimum":0,"maximum":10000,"default":0},"in":"query","name":"offset","required":false},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"in":"query","name":"limit","required":false},{"schema":{"type":"string","pattern":"^(current|[0-9]{4}-[0-9]{2}-[0-9]{2})$"},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeasonCreatorBoard"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"req=>req.apiKey?Math.max(base,Math.ceil(base*req.apiKey.perMinute/rateLimitMax)):base requests per 1 minute per IP"}},"/v1/seasons/{id}/wallets/{wallet}":{"get":{"tags":["Tokens"],"summary":"One wallet's place on a season's boards","operationId":"getV1SeasonsIdWalletsWallet","parameters":[{"schema":{"type":"string","pattern":"^(current|[0-9]{4}-[0-9]{2}-[0-9]{2})$"},"in":"path","name":"id","required":true},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"wallet","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeasonStanding"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"req=>req.apiKey?Math.max(base,Math.ceil(base*req.apiKey.perMinute/rateLimitMax)):base requests per 1 minute per IP"}},"/v1/traders/{wallet}/week":{"get":{"tags":["Tokens"],"summary":"My week: a wallet's realized result in a season, by UTC day","description":"`season` defaults to the current one. Same fold and self-trade rule as the season board.","operationId":"getV1TradersWalletWeek","parameters":[{"schema":{"type":"string","pattern":"^(current|[0-9]{4}-[0-9]{2}-[0-9]{2})$","default":"current"},"in":"query","name":"season","required":false},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"wallet","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraderWeek"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"30 requests per 1 minute per IP"}},"/v1/tokens/{mint}/chart-trades":{"get":{"tags":["Tokens"],"summary":"A token's trades in a time window, for faces on the candle chart","description":"Curve trades and graduation-pool swaps with `from` ≤ time ≤ `to` (unix ms; default the last 24 h), newest last. `minSol` (lamports, default 0) drops smaller trades; `limit` 1–300 (default 300) keeps the newest and sets `truncated` when older ones were left out. `creator` marks the token creator's trades.","operationId":"getV1TokensMintChartTrades","parameters":[{"schema":{"type":"integer","minimum":0},"in":"query","name":"from","required":false},{"schema":{"type":"integer","minimum":0},"in":"query","name":"to","required":false},{"schema":{"type":"string","pattern":"^[0-9]{1,20}$","default":"0"},"in":"query","name":"minSol","required":false},{"schema":{"type":"integer","minimum":1,"maximum":300,"default":300},"in":"query","name":"limit","required":false},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartTrades"}}}},"400":{"description":"from is after to","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/tokens/{mint}/flow":{"get":{"tags":["Tokens"],"summary":"Order flow: buys vs sells over 1h, 24h or 7d","description":"Exact lamport sums of the indexed trades in the window; `buySellRatioBps` is buySol × 10000 / sellSol, null without sells. Cached 15 s.","operationId":"getV1TokensMintFlow","parameters":[{"schema":{"type":"string","enum":["1h","24h","7d"],"default":"24h"},"in":"query","name":"window","required":false},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderFlow"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/tokens/{mint}/top-traders":{"get":{"tags":["Tokens"],"summary":"Top traders of a token, by result or volume","description":"Per wallet, from its own fills in this token: FIFO cost, `realized` (SOL out − cost of the sold tokens) and `unrealized` (held tokens at the current spot price − their cost; an estimate). Held tokens are each wallet's chain balance (every token account of the mint, read with the ranking): tokens that left by transfer or burn are taken out of the FIFO lots at cost (no profit, no loss; `transferredOut`), tokens received by transfer have no known cost and are not valued (`transferredIn`); either sets `pnlPartial: \"transfers\"`. Without balances (`balancesError`) `unrealized` is null. A wallet that sold more than its indexed buys, or whose trades predate the newest 20,000 the computation reads, has `complete: false` and null results. Program-owned wallets, vaults and pools are never listed. `by=result` ranks wallets with a result first; `limit` 1–50. Cached 45 s.","operationId":"getV1TokensMintTopTraders","parameters":[{"schema":{"type":"string","enum":["result","volume"],"default":"result"},"in":"query","name":"by","required":false},{"schema":{"type":"integer","minimum":1,"maximum":50,"default":20},"in":"query","name":"limit","required":false},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenTraders"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"60 requests per 1 minute per IP"}},"/v1/tokens/{mint}/position/{wallet}":{"get":{"tags":["Tokens"],"summary":"One wallet's position in a token","description":"Exactly the wallet's top-traders row (the same FIFO book over its own indexed trades in this token, held tokens = its chain balance, transfers out at cost, transfers in never valued in a result), plus its average entry, the cost of the tokens still held (`costBasis`) and the returns on the sold (`realizedBps`) and held (`unrealizedBps`) part. `unrealized` is an estimate at the current spot price; null without a chain balance (`errors`). A wallet that sold more than its indexed buys, or with more than 10,000 trades in the token, has `complete: false` and null results. A wallet that never traded the token gets zeros. Cached 5 s.","operationId":"getV1TokensMintPositionWallet","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"wallet","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Position"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/tokens/{mint}/facts":{"get":{"tags":["Tokens"],"summary":"Token facts: supply, authorities, creator holding, pool liquidity","description":"Supply, decimals and mint/freeze authorities from the mint account; the creator's balance from its token accounts; `creatorStatus` from that balance and the creator's indexed trades (`moved`: the wallet is empty but DEEP sells don't cover its buys, e.g. a transfer; the trades alone when the balance read failed); for a graduated token its DeepSwap pool and two-sided liquidity (SOL reserves × 2). A failed read is null and named in `errors`. Cached 60 s.","operationId":"getV1TokensMintFacts","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenFacts"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/tokens/{mint}/friends":{"post":{"tags":["Tokens"],"summary":"Given wallets in one token: indexed trades and chain balance","description":"Body `{wallets}` (at most 200, e.g. the people a DEEP Social user follows). Answers the wallets that traded the token on DEEP (exact indexed totals and the newest trade) or hold it in their associated token account (chain). Holders first by balance, then by newest trade. When the balance read fails, balances are null and `errors` says why. 404 for an unknown or hidden token. Cached 15 s.","operationId":"postV1TokensMintFriends","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["wallets"],"properties":{"wallets":{"type":"array","items":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"maxItems":200}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenFriends"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"60 requests per 1 minute per IP"}},"/v1/traders/{wallet}/holdings":{"get":{"tags":["Tokens"],"summary":"A wallet's DEEP tokens, valued at the current price","description":"Balances of DEEP-launched tokens (SPL token accounts of the wallet, chain) valued at each token's current spot price (floor). Other tokens and moderation-hidden ones are left out. When the chain read fails `items` is empty and `error` says why. Cached 30 s.","operationId":"getV1TradersWalletHoldings","parameters":[{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"wallet","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Holdings"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"60 requests per 1 minute per IP"}},"/v1/tokens/{mint}/bubblemap":{"get":{"tags":["Tokens"],"summary":"Bubblemap: the largest holders by share of supply","description":"Every token account of the mint read from chain (cached 60 s), summed per owner, largest first; `limit` 1–100 (default 100). Program accounts are labelled (curve, pool, burned, deep). `top10ShareBps` counts wallets only. Links between holders need indexed transfers, which are not recorded yet: `clusters` is `not-tracked` and `links` is empty. A failed chain read is 200 with no bubbles and `error`.","operationId":"getV1TokensMintBubblemap","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":100},"in":"query","name":"limit","required":false},{"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"in":"path","name":"mint","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenBubbleMap"}}}},"400":{"description":"Request failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Unknown (or moderation-hidden) item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"60 requests per 1 minute per IP"}},"/v1/stats/tokens":{"get":{"tags":["Stats"],"summary":"Tokens directory: launched, volume and creator rewards","description":"Exact sums of the indexed trades: tokens launched, lifetime and 24h volume (curve + graduation pools), and per Creator Rewards token the reward fee its trades paid its creator (`creatorEarned`; Standard and Holder Rewards tokens are absent). Cached 60 s.","operationId":"getV1StatsTokens","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokensDirectoryStats"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"120 requests per 1 minute per IP"}},"/v1/ws":{"get":{"tags":["Realtime"],"summary":"WebSocket feed (upgrade)","description":"Connect with a WebSocket client (`wss://<host>/v1/ws`). Client messages are JSON:\n`{\"subscribe\":\"tokens\"}`, `{\"subscribe\":\"trades:<mint>\"}`, `{\"unsubscribe\":\"<topic>\"}`.\nReplies: `{\"subscribed\":\"<topic>\"}`, or `{\"error\":\"bad_json\" | \"bad_topic\" | \"too_many_topics\"}`.\nMessages: `{\"topic\":\"tokens\",\"data\":TokenSummary}` when a token changes, and\n`{\"topic\":\"trades:<mint>\",\"data\":Trade}` for each indexed curve trade.\nLimits: 20 topics per connection, 4096-byte client messages.","operationId":"getV1Ws","responses":{"101":{"description":"Switching Protocols"},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}},"/v1/openapi.json":{"get":{"tags":["Meta"],"summary":"This document","operationId":"getV1OpenapiJson","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Rate limited (headers: retry-after, x-ratelimit-*)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-rate-limit":"300 requests per minute per IP (default)"}}},"components":{"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string","description":"Machine-readable code, e.g. not_found, rpc_unavailable."}},"required":["error"]},"TokenSummary":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"name":{"type":"string"},"symbol":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"creator":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"createdAt":{"type":"integer","description":"unix ms"},"decimals":{"type":"integer"},"lifecycle":{"type":"string","enum":["bonding","graduating","graduated"]},"virtualSolReserves":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"virtualTokenReserves":{"type":"string","pattern":"^[0-9]+$","description":"base units"},"realSolReserves":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"realTokenReserves":{"type":"string","pattern":"^[0-9]+$","description":"base units left on the curve"},"curveSupply":{"type":"string","pattern":"^[0-9]+$"},"tokenTotalSupply":{"type":"string","pattern":"^[0-9]+$","description":"supply minted at launch, base units; burns do not change it"},"currentSupply":{"type":"string","pattern":"^[0-9]+$","description":"the mint's supply on chain now (launch supply minus burns), base units, read by the indexer about every 2 minutes; absent until the first read. Market cap = price × this supply (the launch supply until then); market cap is not liquidity"},"volume24h":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"poolSolLiquidity":{"type":"string","pattern":"^[0-9]+$","description":"DeepSwap pool SOL reserves once graduated"},"poolTokenReserves":{"type":"string","pattern":"^[0-9]+$"},"poolAddress":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"priceChange24hBps":{"type":"integer"},"trades24h":{"type":"integer"},"socials":{"type":"object","properties":{"website":{"type":"string"},"x":{"type":"string"},"telegram":{"type":"string"},"discord":{"type":"string"}},"required":[]},"metadataUri":{"type":"string"},"source":{"type":"string","enum":["chain","indexer","mock"]},"moderation":{"type":"object","properties":{"hidden":{"const":true},"reason":{"type":"string"}},"required":["hidden","reason"]},"linksSource":{"type":"string","enum":["metadata","creator"]},"linksUpdatedAt":{"type":["integer","null"]},"linksHidden":{"const":true},"official":{"const":true,"description":"The DEEP platform's own token (DEEP), set by a DEEP operator. At most one mint carries it; look-alikes never do."},"rewardModel":{"type":"string","enum":["standard","creator","holder"],"description":"The token's reward model, chosen at launch and never changed (BondingCurve.reward_model). Absent while the curve account still has the pre-V1 layout, which stores no model, or has not been read yet."},"rewardBps":{"type":"integer","description":"The token's own reward rate, basis points per side, chosen by its creator at launch (0 for standard): from the creation event, then from the curve account. Equal to curveFees.rewardBps once that is known."},"curveFees":{"type":"object","properties":{"buyProtocolFeeBps":{"type":"integer","description":"DEEP's fee on a curve buy, basis points"},"sellProtocolFeeBps":{"type":"integer","description":"DEEP's fee on a curve sell, basis points"},"rewardBps":{"type":"integer","description":"The curve's reward rate on both sides, on top of the protocol fee, basis points: to the creator (standard / creator) or to the holder vault (holder)"}},"required":["buyProtocolFeeBps","sellProtocolFeeBps","rewardBps"],"description":"The fee terms the bonding curve snapshotted at launch, read from its account. Absent until the curve has been read from chain."}},"required":["mint","name","symbol","description","creator","createdAt","decimals","lifecycle","virtualSolReserves","virtualTokenReserves","realSolReserves","realTokenReserves","curveSupply","tokenTotalSupply","volume24h","priceChange24hBps","trades24h","socials","source"],"description":"A launch and its bonding-curve state as indexed. On-chain state is authoritative."},"Trade":{"type":"object","properties":{"signature":{"type":"string"},"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"side":{"type":"string","enum":["buy","sell"]},"trader":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"solAmount":{"type":"string","pattern":"^[0-9]+$","description":"lamports: gross paid on a buy, net received on a sell"},"tokenAmount":{"type":"string","pattern":"^[0-9]+$"},"timestamp":{"type":"integer","description":"unix seconds"},"source":{"type":"string","enum":["chain","indexer","mock"]}},"required":["signature","mint","side","trader","solAmount","tokenAmount","timestamp","source"]},"TraderTrade":{"allOf":[{"$ref":"#/components/schemas/Trade"},{"type":"object","properties":{"venue":{"type":"string","enum":["curve","deepswap"]},"symbol":{"type":["string","null"]},"name":{"type":["string","null"]}},"required":["venue","symbol","name"]}]},"FeedTrade":{"type":"object","properties":{"signature":{"type":"string"},"index":{"type":"integer","description":"event index within the transaction"},"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"symbol":{"type":["string","null"]},"side":{"type":"string","enum":["buy","sell"]},"trader":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"venue":{"type":"string","enum":["curve","deepswap"]},"solAmount":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"tokenAmount":{"type":"string","pattern":"^[0-9]+$","description":"base units"},"timestamp":{"type":"integer","description":"unix ms (block time)"}},"required":["signature","index","mint","symbol","side","trader","venue","solAmount","tokenAmount","timestamp"]},"TradeFeedPage":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/FeedTrade"}},"cursor":{"type":"string","description":"position of the last item; pass it back as `after`"}},"required":["items","cursor"]},"HolderPosition":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"balance":{"type":["string","null"],"pattern":"^[0-9]+$","description":"base units over all the wallet's token accounts"},"rank":{"type":["integer","null"],"description":"1-based among real holders, largest first"},"holders":{"type":["integer","null"],"description":"holders counted for ranking"},"shareBps":{"type":["integer","null"],"description":"balance / total supply, basis points"},"excluded":{"type":"boolean"},"creator":{"type":"boolean"},"firstBuyAt":{"type":["integer","null"],"description":"unix ms"},"firstBuyTradeNumber":{"type":["integer","null"]},"lastSellAt":{"type":["integer","null"],"description":"unix ms"},"buys":{"type":"integer"},"sells":{"type":"integer"},"tokensBought":{"type":"string","pattern":"^[0-9]+$"},"tokensSold":{"type":"string","pattern":"^[0-9]+$"},"holdersAsOf":{"type":["integer","null"],"description":"unix ms"},"holdersError":{"type":"string","description":"rpc_unavailable | rpc_refused | pending"},"source":{"type":"string","enum":["indexer+chain"]}},"required":["mint","wallet","balance","rank","holders","shareBps","excluded","creator","firstBuyAt","firstBuyTradeNumber","lastSellAt","buys","sells","tokensBought","tokensSold","holdersAsOf","source"]},"Candle":{"type":"object","properties":{"time":{"type":"integer","description":"bucket start, unix seconds"},"open":{"type":"number"},"high":{"type":"number"},"low":{"type":"number"},"close":{"type":"number"},"volume":{"type":"number"},"liquidity":{"type":"number","description":"real SOL in the curve or pool at close, SOL"}},"required":["time","open","high","low","close","volume"]},"PoolLpStatus":{"type":"object","properties":{"program":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"lpMint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"poolLpSupply":{"type":"string","pattern":"^[0-9]+$"},"lpMintSupply":{"type":"string","pattern":"^[0-9]+$"},"lockedBps":{"type":"integer"},"burned":{"type":"boolean"},"solReserves":{"type":"string","pattern":"^[0-9]+$"},"tokenReserves":{"type":"string","pattern":"^[0-9]+$"},"slot":{"type":"integer"},"checkedAt":{"type":"integer","description":"unix ms"}},"required":["program","lpMint","poolLpSupply","lpMintSupply","lockedBps","burned","solReserves","tokenReserves","slot","checkedAt"]},"PoolSummary":{"type":"object","properties":{"address":{"type":"string"},"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"symbol":{"type":"string"},"provider":{"type":"string","enum":["deepswap","pending","external","mock"]},"solReserves":{"type":"string","pattern":"^[0-9]+$"},"tokenReserves":{"type":"string","pattern":"^[0-9]+$"},"lpSupply":{"type":"string","pattern":"^[0-9]+$"},"lpLockedBps":{"type":"integer"},"volume24h":{"type":"string","pattern":"^[0-9]+$"},"fees24h":{"type":"string","pattern":"^[0-9]+$","description":"trade fees, lamports (creator fee excluded)"},"createdAt":{"type":"integer"},"source":{"type":"string","enum":["chain","indexer","mock"]},"name":{"type":"string"},"imageUrl":{"type":"string"},"graduatedAt":{"type":"integer"},"lpFees24h":{"type":"string","pattern":"^[0-9]+$"},"protocolFees24h":{"type":"string","pattern":"^[0-9]+$","description":"protocol + fund part of fees24h, lamports, net of referralFees24h (fees24h = lpFees24h + protocolFees24h + referralFees24h)"},"referralFees24h":{"type":"string","pattern":"^[0-9]+$","description":"referral shares the pool's swaps paid to approved partners out of DEEP's protocol fee in 24h, lamports (0 while no swap names a referrer)"},"fundFees24h":{"type":"string","pattern":"^[0-9]+$","description":"fund-fee part of protocolFees24h, lamports (0 under DEEP V1: all DEEP revenue goes to the fee vault, see GET /v1/splitter)"},"creatorFees24h":{"type":"string","pattern":"^[0-9]+$","description":"MISLEADING NAME, kept for existing consumers: every fee charged on top of the pool fee in 24h, lamports. That is a legacy pool's creator fee (shared by the pool's creator and DEEP) plus a DEEP V1 pool's reward fees WHOEVER receives them, so on a Holder Rewards pool it counts fees paid to the token's holders, not to a creator. Use creatorRewardFees24h / holderRewardFees24h for V1 pools"},"creatorRewardFees24h":{"type":"string","pattern":"^[0-9]+$","description":"DEEP V1 Creator Rewards pool: the 24h reward fees, 100% the pool's reward recipient's (fees.rewardRecipient), lamports. \"0\" on any other pool. Absent until the pool's fee terms are read"},"holderRewardFees24h":{"type":"string","pattern":"^[0-9]+$","description":"DEEP V1 Holder Rewards pool: the 24h reward fees, paid to the token's holder vault (fees.rewardRecipient) for its holders, lamports. \"0\" on any other pool. Absent until the pool's fee terms are read"},"rewardFees24h":{"type":"string","pattern":"^[0-9]+$","description":"the part of creatorFees24h charged by DEEP V1 swaps (the pool's reward rate, 100% its reward recipient's), lamports"},"fees":{"type":"object","properties":{"feeModel":{"type":"string","enum":["legacy","v1"],"description":"legacy: upstream cp-swap semantics, both sides equal. v1: DEEP V1, side-dependent, every part taken in the quote token."},"buy":{"type":"object","properties":{"lp":{"type":"integer","description":"stays in the pool for liquidity providers, millionths"},"protocol":{"type":"integer","description":"DEEP's part, millionths"},"reward":{"type":"integer","description":"DEEP V1: the pool's own reward rate, 100% its reward recipient's. Legacy: the creator fee when enabled (shared with DEEP at settlement). Millionths"},"total":{"type":"integer","description":"lp + protocol + reward: what a trader pays on this side, millionths"}},"required":["lp","protocol","reward","total"]},"sell":{"type":"object","properties":{"lp":{"type":"integer","description":"stays in the pool for liquidity providers, millionths"},"protocol":{"type":"integer","description":"DEEP's part, millionths"},"reward":{"type":"integer","description":"DEEP V1: the pool's own reward rate, 100% its reward recipient's. Legacy: the creator fee when enabled (shared with DEEP at settlement). Millionths"},"total":{"type":"integer","description":"lp + protocol + reward: what a trader pays on this side, millionths"}},"required":["lp","protocol","reward","total"]},"rewardModel":{"type":"string","enum":["standard","creator","holder"]},"rewardRecipient":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"quoteMint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"}},"required":["feeModel","buy","sell"],"description":"The pool's own fee per side (buy: the input is the quote token; sell: the output is), read from its PoolState and AmmConfig. rewardModel, rewardRecipient and quoteMint are set on a v1 pool only."},"tvl":{"type":"string","pattern":"^[0-9]+$","description":"SOL reserves × 2, lamports: an estimate, not a market cap"},"priceChange24hBps":{"type":"integer"},"priceSol":{"type":"number"},"lp":{"anyOf":[{"$ref":"#/components/schemas/PoolLpStatus"},{"type":"null"}]}},"required":["address","mint","symbol","provider","solReserves","tokenReserves","lpSupply","lpLockedBps","volume24h","fees24h","createdAt","source"]},"ProtocolStats":{"type":"object","properties":{"tokens":{"type":"integer"},"bonding":{"type":"integer"},"graduating":{"type":"integer"},"graduated":{"type":"integer"},"trades24h":{"type":"integer"},"curveTrades24h":{"type":"integer"},"poolTrades24h":{"type":"integer"},"curveVolume24h":{"type":"string","pattern":"^[0-9]+$"},"poolVolume24h":{"type":"string","pattern":"^[0-9]+$"},"curveProtocolFees24h":{"type":"string","pattern":"^[0-9]+$","description":"DEEP's protocol fees of curve trades in 24h, lamports, net of curveReferralFees24h"},"curveReferralFees24h":{"type":"string","pattern":"^[0-9]+$","description":"referral shares curve trades paid to approved partners out of DEEP's protocol fee in 24h, lamports"},"curveCreatorFees24h":{"type":"string","pattern":"^[0-9]+$","description":"curve reward fees credited to token creators in 24h, lamports (not DEEP revenue)"},"curveHolderFees24h":{"type":"string","pattern":"^[0-9]+$","description":"curve reward fees credited to holder vaults in 24h, lamports (not DEEP revenue)"},"poolLpFees24h":{"type":"string","pattern":"^[0-9]+$"},"poolProtocolFees24h":{"type":"string","pattern":"^[0-9]+$","description":"DEEP's share of DeepSwap trade fees in 24h, lamports, net of poolReferralFees24h"},"poolReferralFees24h":{"type":"string","pattern":"^[0-9]+$","description":"referral shares DeepSwap swaps paid out of DEEP's protocol fee in 24h, lamports"},"poolFundFees24h":{"type":"string","pattern":"^[0-9]+$","description":"fund-fee part of poolProtocolFees24h, lamports (0 under DEEP V1)"},"poolCreatorFees24h":{"type":"string","pattern":"^[0-9]+$"},"poolRewardFees24h":{"type":"string","pattern":"^[0-9]+$","description":"the part of poolCreatorFees24h charged by DEEP V1 swaps (100% the pools' reward recipients'), lamports"},"poolTvl":{"type":"string","pattern":"^[0-9]+$"},"solLockedInCurves":{"type":"string","pattern":"^[0-9]+$"},"asOf":{"type":"integer","description":"unix ms"},"source":{"const":"indexer"}},"required":["tokens","bonding","graduating","graduated","trades24h","curveTrades24h","poolTrades24h","curveVolume24h","poolVolume24h","curveProtocolFees24h","poolLpFees24h","poolProtocolFees24h","poolTvl","solLockedInCurves","asOf","source"]},"TvlPoint":{"type":"object","properties":{"time":{"type":"integer","description":"bucket start, unix seconds"},"tvl":{"type":"string","pattern":"^[0-9]+$","description":"lamports"}},"required":["time","tvl"]},"ProtocolHistory":{"type":"object","properties":{"days":{"type":"integer"},"bucketSeconds":{"type":"integer","description":"3600 for days ≤ 7, 86400 (UTC days) otherwise"},"from":{"type":"integer","description":"first bucket start of the window, unix seconds"},"to":{"type":"integer","description":"last bucket start (the bucket that contains now), unix seconds"},"buckets":{"type":"array","items":{"type":"object","properties":{"time":{"type":"integer","description":"bucket start, unix seconds"},"curveTrades":{"type":"integer","description":"bonding-curve trades"},"poolTrades":{"type":"integer","description":"DeepSwap graduation-pool swaps"},"curveVolume":{"type":"string","pattern":"^[0-9]+$","description":"SOL traded on bonding curves, lamports"},"poolVolume":{"type":"string","pattern":"^[0-9]+$","description":"SOL traded in graduation pools, lamports"},"launches":{"type":"integer","description":"tokens launched"},"graduations":{"type":"integer","description":"tokens graduated"}},"required":["time","curveTrades","poolTrades","curveVolume","poolVolume","launches","graduations"]}},"source":{"type":"string","enum":["indexer"]}},"required":["days","bucketSeconds","from","to","buckets","source"],"description":"Exact sums of the indexed events per bucket, every bucket of the window listed oldest first (zero when nothing happened). `days=1` is the last 24 hours, hour by hour."},"CreatorHistory":{"type":"object","properties":{"creator":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"days":{"type":"integer"},"bucketSeconds":{"type":"integer","description":"3600 for days ≤ 7, 86400 (UTC days) otherwise"},"from":{"type":"integer","description":"first bucket start of the window, unix seconds"},"to":{"type":"integer","description":"last bucket start (the bucket that contains now), unix seconds"},"tokens":{"type":"array","items":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"symbol":{"type":"string"},"name":{"type":"string"}},"required":["mint","symbol","name"]}},"buckets":{"type":"array","items":{"type":"object","properties":{"time":{"type":"integer","description":"bucket start, unix seconds"},"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"trades":{"type":"integer","description":"curve and DeepSwap trades in the bucket"},"curveVolume":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"poolVolume":{"type":"string","pattern":"^[0-9]+$","description":"lamports, the token's DeepSwap graduation pool"},"curveCreatorFees":{"type":"string","pattern":"^[0-9]+$","description":"curve reward fees paid to the creator, lamports"},"poolCreatorFees":{"type":"string","pattern":"^[0-9]+$","description":"DeepSwap V1 reward fees of a Creator Rewards graduation pool, 100% the creator's, lamports"},"poolLegacyCreatorFees":{"type":"string","pattern":"^[0-9]+$","description":"a legacy pool's creator fee, GROSS (shared with DEEP at settlement), lamports; never part of the two fields above"}},"required":["time","mint","trades","curveVolume","poolVolume","curveCreatorFees","poolCreatorFees","poolLegacyCreatorFees"]}},"source":{"type":"string","enum":["indexer"]}},"required":["creator","days","bucketSeconds","from","to","tokens","buckets","source"],"description":"Exact sums of indexed trades per token and bucket. Only buckets with at least one trade are listed, oldest first; fees are what the trades charged for the creator, claimed or not."},"TokenStats":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"creator":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"createdAt":{"type":"integer"},"priceSol":{"type":"number","description":"SOL per whole token"},"high24h":{"type":["number","null"]},"low24h":{"type":["number","null"]},"volume24h":{"type":"object","properties":{"total":{"type":"string","pattern":"^[0-9]+$"},"curve":{"type":"string","pattern":"^[0-9]+$"},"pool":{"type":"string","pattern":"^[0-9]+$"}},"required":["total","curve","pool"]},"buyVolume24h":{"type":"string","pattern":"^[0-9]+$"},"sellVolume24h":{"type":"string","pattern":"^[0-9]+$"},"trades24h":{"type":"integer"},"buys24h":{"type":"integer"},"sells24h":{"type":"integer"},"holders":{"type":"object","properties":{"count":{"type":["integer","null"]},"owners":{"type":["integer","null"]},"top":{"type":["array","null"],"items":{"type":"object","properties":{"owner":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"tokenAccount":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"amount":{"type":"string","pattern":"^[0-9]+$"},"shareBps":{"type":"integer"},"label":{"type":["string","null"],"enum":["bonding-curve","pool",null]}},"required":["owner","tokenAccount","amount","shareBps","label"]}},"asOf":{"type":"integer"},"error":{"type":"string","description":"rpc_unavailable | rpc_refused | pending"}},"required":["count","owners","top","asOf"]},"metadata":{"type":"object","properties":{"description":{"type":["string","null"]},"image":{"type":["string","null"],"description":"Always on DEEP's storage (its IPFS gateway), never a creator's host."},"imageSource":{"type":"string","enum":["deep","ipfs","none"],"description":"deep: an object on DEEP's storage. ipfs: an IPFS CID named elsewhere that DEEP's node holds. none: no image DEEP shows."},"links":{"type":"object","properties":{"twitter":{"type":["string","null"]},"telegram":{"type":["string","null"]},"website":{"type":["string","null"]},"discord":{"type":["string","null"]}},"required":["twitter","telegram","website","discord"]},"source":{"type":"string","enum":["uri","indexer","none"]}},"required":["description","image","imageSource","links","source"]},"source":{"const":"indexer"},"linksSource":{"type":"string","enum":["metadata","creator"]},"linksUpdatedAt":{"type":["integer","null"]},"linksHidden":{"const":true}},"required":["mint","creator","createdAt","priceSol","high24h","low24h","volume24h","buyVolume24h","sellVolume24h","trades24h","buys24h","sells24h","holders","metadata","source"]},"SolPrice":{"type":"object","properties":{"usd":{"type":"number"},"conf":{"type":"number","description":"confidence interval, USD"},"publishTime":{"type":"integer","description":"Pyth publish time, unix seconds"},"change24hPct":{"type":["number","null"]},"source":{"const":"pyth"}},"required":["usd","conf","publishTime","change24hPct","source"]},"RevenueDistribution":{"type":"object","properties":{"signature":{"type":"string"},"index":{"type":"integer","description":"event index among the transaction's deep-curve fee events"},"slot":{"type":"integer"},"timestamp":{"type":"integer","description":"unix seconds"},"base":{"type":"string","pattern":"^[0-9]+$","description":"DEEP revenue distributed this round, lamports"}},"required":["signature","index","slot","timestamp","base"]},"SplitterStatus":{"type":"object","properties":{"source":{"type":"string","enum":["chain"]},"cluster":{"type":"string"},"feeVault":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"feeVaultWsol":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"initialized":{"type":"boolean"},"vaultLamports":{"type":"string","pattern":"^[0-9]+$","description":"fee_vault balance including its rent"},"vaultWsol":{"type":"string","pattern":"^[0-9]+$","description":"WSOL in the vault's ATA (unwrapped by distribute)"},"pendingRevenue":{"type":"string","pattern":"^[0-9]+$","description":"what the next distribution would pay out now"},"minDistributeLamports":{"type":"string","pattern":"^[0-9]+$"},"baseTotal":{"type":"string","pattern":"^[0-9]+$","description":"all DEEP revenue distributed so far, lamports"},"distributions":{"type":"integer"},"lastDistributeAt":{"type":["integer","null"],"description":"unix seconds"},"nextDistributionAt":{"type":"string","description":"next scheduled keeper run, ISO-8601 (00:00 / 12:00 America/Los_Angeles)"},"history":{"type":"array","items":{"$ref":"#/components/schemas/RevenueDistribution"}}},"required":["source","cluster","feeVault","feeVaultWsol","initialized","vaultLamports","vaultWsol","pendingRevenue","minDistributeLamports","baseTotal","distributions","lastDistributeAt","nextDistributionAt","history"]},"NetworkInfo":{"type":"object","properties":{"cluster":{"type":"string"},"slot":{"type":"integer"},"blockHeight":{"type":"integer"},"epoch":{"type":"integer"},"slotIndex":{"type":"integer"},"slotsInEpoch":{"type":"integer"},"tps":{"type":["number","null"]},"nonVoteTps":{"type":["number","null"]},"sampleSeconds":{"type":"number"},"rpcLatencyMs":{"type":"number"},"asOf":{"type":"integer"}},"required":["cluster","slot","blockHeight","epoch","slotIndex","slotsInEpoch","tps","nonVoteTps","sampleSeconds","rpcLatencyMs","asOf"]},"ProgramStatus":{"type":"object","properties":{"name":{"type":"string","enum":["deep-curve","deep-amm","deep-rewards"]},"programId":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"deployed":{"type":"boolean"},"upgradeAuthority":{"type":["string","null"]},"lastDeploySlot":{"type":["integer","null"]},"releaseHash":{"type":"string"},"deployedHash":{"type":["string","null"]},"matchesRelease":{"type":["boolean","null"]}},"required":["name","programId","deployed","upgradeAuthority","lastDeploySlot","releaseHash","deployedHash","matchesRelease"]},"ServiceStatus":{"type":"object","properties":{"title":{"type":"string"},"monitors":{"type":"array","items":{"type":"object"}},"incident":{"type":["object","null"]},"maintenance":{"type":"array","items":{"type":"object"}},"programs":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ProgramStatus"}},"programsError":{"type":"string"},"asOf":{"type":"integer"}},"required":["title","monitors","incident","maintenance","programs","asOf"]},"GovernanceProposal":{"type":"object","properties":{"index":{"type":"string","description":"Squads transaction index (u64 as a decimal string)"},"status":{"type":"string","description":"Squads proposal status, or \"no-proposal\""},"statusAt":{"type":["integer","null"],"description":"unix seconds the status was entered"},"approvals":{"type":"integer"},"rejections":{"type":"integer"},"kind":{"type":"string","enum":["vault","config","batch","unknown"]},"summary":{"type":"string","description":"What the transaction does (programs and instructions)"},"stale":{"type":"boolean"},"executableAt":{"type":["integer","null"],"description":"unix seconds the time lock releases it (approved only)"}},"required":["index","status","statusAt","approvals","rejections","kind","summary","stale","executableAt"]},"GovernanceStatus":{"type":"object","properties":{"enabled":{"type":"boolean"},"failing":{"type":"boolean"},"lastRunAt":{"type":["integer","null"],"description":"unix ms of the last successful poll"},"cluster":{"type":["string","null"]},"multisig":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"threshold":{"type":["integer","null"]},"timeLockSeconds":{"type":["integer","null"]},"pending":{"type":"array","items":{"$ref":"#/components/schemas/GovernanceProposal"}},"asOf":{"type":"integer"}},"required":["enabled","failing","lastRunAt","cluster","multisig","threshold","timeLockSeconds","pending","asOf"]},"PairToken":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"symbol":{"type":"string"},"name":{"type":"string"},"imageUrl":{"type":"string"},"decimals":{"type":"integer"},"tokenProgram":{"type":"string","enum":["spl-token","token-2022"]},"extensions":{"type":"array","items":{"type":"string"}},"freezable":{"type":"boolean"},"uiMultiplier":{"type":"number","description":"Token-2022 ScaledUiAmount multiplier (1 when none)"},"metadataSource":{"type":"string","enum":["deep","metaplex","token-2022","none"]},"transferHookProgram":{"type":"string"}},"required":["mint","symbol","decimals","tokenProgram","extensions","freezable","uiMultiplier","metadataSource"]},"PairSummary":{"type":"object","properties":{"address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"kind":{"type":"string","enum":["graduation","user"]},"token0":{"$ref":"#/components/schemas/PairToken"},"token1":{"$ref":"#/components/schemas/PairToken"},"reserve0":{"type":"string","pattern":"^[0-9]+$"},"reserve1":{"type":"string","pattern":"^[0-9]+$"},"lpMint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"lpSupply":{"type":"string","pattern":"^[0-9]+$"},"ammConfig":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"tradeFeeRate":{"type":"integer","description":"millionths of the input"},"protocolShareRate":{"type":"integer","description":"millionths of the trade fee"},"creator":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"openTime":{"type":"integer","description":"unix seconds"},"createdAt":{"type":"integer","description":"unix ms"},"price":{"type":"number","description":"token1 per whole token0 (presentation only)"},"volume24h0":{"type":"string","pattern":"^[0-9]+$"},"volume24h1":{"type":"string","pattern":"^[0-9]+$"},"trades24h":{"type":"integer"},"priceChange24hBps":{"type":"integer"},"slot":{"type":"integer"},"source":{"type":"string","enum":["chain","indexer","mock"]},"fees":{"type":"object","properties":{"feeModel":{"type":"string","enum":["legacy","v1"],"description":"legacy: upstream cp-swap semantics, both sides equal. v1: DEEP V1, side-dependent, every part taken in the quote token."},"buy":{"type":"object","properties":{"lp":{"type":"integer","description":"stays in the pool for liquidity providers, millionths"},"protocol":{"type":"integer","description":"DEEP's part, millionths"},"reward":{"type":"integer","description":"DEEP V1: the pool's own reward rate, 100% its reward recipient's. Legacy: the creator fee when enabled (shared with DEEP at settlement). Millionths"},"total":{"type":"integer","description":"lp + protocol + reward: what a trader pays on this side, millionths"}},"required":["lp","protocol","reward","total"]},"sell":{"type":"object","properties":{"lp":{"type":"integer","description":"stays in the pool for liquidity providers, millionths"},"protocol":{"type":"integer","description":"DEEP's part, millionths"},"reward":{"type":"integer","description":"DEEP V1: the pool's own reward rate, 100% its reward recipient's. Legacy: the creator fee when enabled (shared with DEEP at settlement). Millionths"},"total":{"type":"integer","description":"lp + protocol + reward: what a trader pays on this side, millionths"}},"required":["lp","protocol","reward","total"]},"rewardModel":{"type":"string","enum":["standard","creator","holder"]},"rewardRecipient":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"quoteMint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"}},"required":["feeModel","buy","sell"],"description":"The pool's own fee per side (buy: the input is the quote token; sell: the output is), read from its PoolState and AmmConfig. rewardModel, rewardRecipient and quoteMint are set on a v1 pool only."},"fees24h":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"lp":{"type":"string","pattern":"^[0-9]+$"},"protocol":{"type":"string","pattern":"^[0-9]+$"},"reward":{"type":"string","pattern":"^[0-9]+$"},"referral":{"type":"string","pattern":"^[0-9]+$"}},"required":["mint","lp","protocol","reward"],"description":"DEEP V1 pools only: LP, DEEP and reward fees of the last 24h, base units of `mint` (the quote token), summed from each swap's SwapFeesV1 event. `protocol` is net of `referral`, the shares paid to approved partners (present only when there are any)."}},"required":["address","kind","token0","token1","reserve0","reserve1","lpMint","lpSupply","ammConfig","tradeFeeRate","protocolShareRate","openTime","createdAt","price","volume24h0","volume24h1","trades24h","priceChange24hBps","slot","source"]},"PairTrade":{"type":"object","properties":{"signature":{"type":"string"},"index":{"type":"integer"},"pair":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"trader":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"zeroForOne":{"type":"boolean"},"amount0":{"type":"string","pattern":"^[0-9]+$"},"amount1":{"type":"string","pattern":"^[0-9]+$"},"fee":{"type":"string","pattern":"^[0-9]+$","description":"legacy pool: the trade fee, in the input token. DEEP V1 pool (v1 present): the LP + DEEP parts, in the quote token"},"price":{"type":"number"},"slot":{"type":"integer"},"timestamp":{"type":"integer"},"source":{"type":"string","enum":["chain","indexer","mock"]},"v1":{"type":"object","properties":{"isBuy":{"type":"boolean"},"feeMint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"lpFee":{"type":"string","pattern":"^[0-9]+$"},"protocolFee":{"type":"string","pattern":"^[0-9]+$"},"rewardFee":{"type":"string","pattern":"^[0-9]+$"},"rewardModel":{"type":"string","enum":["standard","creator","holder"]}},"required":["isBuy","feeMint","lpFee","protocolFee","rewardFee","rewardModel"],"description":"DEEP V1 swaps only: the exact fee parts from the swap's SwapFeesV1 event, all in feeMint (the pool's quote token). On a sell the quote amount is already net of all three."}},"required":["signature","index","pair","trader","zeroForOne","amount0","amount1","fee","price","slot","timestamp","source"]},"StocksResponse":{"type":"object","properties":{"cluster":{"type":"string"},"enabled":{"type":"boolean"},"mode":{"type":"string"},"reason":{"type":"string"},"listings":{"type":"array","items":{"type":"object"}},"quotes":{"type":"array","items":{"type":"object"}},"pairs":{"type":"array","items":{"$ref":"#/components/schemas/PairSummary"}}},"required":["cluster","enabled","mode","reason","listings","quotes","pairs"]},"TokenRewards":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"enabled":{"type":"boolean"},"roundSeconds":{"type":"integer","description":"snapshot window, seconds (the sample time inside it is random)"},"holdingWeighting":{"type":"boolean"},"config":{"type":["object","null"],"properties":{"admin":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"rootAuthority":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"payoutMode":{"type":"string","enum":["claim","autoSend"]},"paused":{"type":"boolean"},"rootDelaySeconds":{"type":"integer"},"pushMinUsdMicros":{"type":"string","pattern":"^[0-9]+$","description":"AUTO-SEND threshold, USD micro-dollars"},"minHoldingUsdMicros":{"type":"string","pattern":"^[0-9]+$","description":"minimum holding to qualify, USD micro-dollars"},"stableMints":{"type":"array","items":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"}}},"required":["admin","rootAuthority","payoutMode","paused","rootDelaySeconds","pushMinUsdMicros","minHoldingUsdMicros","stableMints"]},"distributors":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"rewardMint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"rewardSymbol":{"type":["string","null"]},"rewardDecimals":{"type":"integer"},"round":{"type":"integer"},"root":{"type":"string","pattern":"^[0-9a-f]{64}$"},"maxTotalClaim":{"type":"string","pattern":"^[0-9]+$"},"totalClaimed":{"type":"string","pattern":"^[0-9]+$"},"available":{"type":"string","pattern":"^[0-9]+$","description":"payable vault balance (SOL: above the rent reserve)"},"unallocated":{"type":"string","pattern":"^[0-9]+$","description":"not yet in any root: goes into the next round"},"snapshotSlot":{"type":"string","pattern":"^[0-9]+$"},"dataHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"hasPendingRoot":{"type":"boolean"}},"required":["address","rewardMint","rewardSymbol","rewardDecimals","round","root","maxTotalClaim","totalClaimed","available","unallocated","snapshotSlot","dataHash","hasPendingRoot"]}},"rounds":{"type":"array","items":{"type":"object","properties":{"distributor":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"rewardMint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"round":{"type":"integer"},"status":{"type":"string","enum":["built","proposed","active","failed","superseded"]},"snapshotSlot":{"type":"string","pattern":"^[0-9]+$"},"sampledAt":{"type":"integer","description":"unix ms"},"pool":{"type":"string","pattern":"^[0-9]+$"},"allocated":{"type":"string","pattern":"^[0-9]+$"},"dust":{"type":"string","pattern":"^[0-9]+$","description":"carried to the next round"},"maxTotalClaim":{"type":"string","pattern":"^[0-9]+$"},"root":{"type":"string","pattern":"^[0-9a-f]{64}$"},"dataHash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"leaves":{"type":"integer"},"eligible":{"type":"integer"},"excluded":{"type":"integer"},"sampleCommit":{"type":"string","pattern":"^[0-9a-f]{64}$"},"sampleSeed":{"type":["string","null"]},"signature":{"type":["string","null"]},"createdAt":{"type":"integer","description":"unix ms"}},"required":["distributor","rewardMint","round","status","snapshotSlot","sampledAt","pool","allocated","dust","maxTotalClaim","root","dataHash","leaves","eligible","excluded","sampleCommit","sampleSeed","signature","createdAt"]}},"nextWindowAt":{"type":["integer","null"],"description":"unix ms"},"source":{"type":"string","enum":["chain","mock"]}},"required":["mint","enabled","roundSeconds","holdingWeighting","config","distributors","rounds","nextWindowAt","source"]},"RewardsVerify":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"distributors":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"rewardMint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"active":{"type":["object","null"],"properties":{"round":{"type":"integer"},"ok":{"type":"boolean"},"checks":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"ok":{"type":"boolean"},"detail":{"type":"string"}},"required":["name","ok"]}}},"required":["round","ok","checks"]},"pending":{"type":["object","null"],"properties":{"round":{"type":"integer"},"ok":{"type":"boolean"},"checks":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"ok":{"type":"boolean"},"detail":{"type":"string"}},"required":["name","ok"]}},"eta":{"type":"integer","description":"unix seconds"}},"required":["round","ok","checks","eta"]}},"required":["address","rewardMint","active","pending"]}},"source":{"type":"string","enum":["chain"]}},"required":["mint","distributors","source"]},"WalletRewards":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"rewards":{"type":"array","items":{"type":"object","properties":{"distributor":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"rewardMint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"rewardDecimals":{"type":"integer"},"round":{"type":"integer"},"root":{"type":"string","pattern":"^[0-9a-f]{64}$"},"cumulative":{"type":"string","pattern":"^[0-9]+$","description":"cumulative amount in the active root"},"claimed":{"type":["string","null"],"pattern":"^[0-9]+$"},"claimable":{"type":["string","null"],"pattern":"^[0-9]+$"},"proof":{"type":"array","items":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"required":["distributor","rewardMint","rewardDecimals","round","root","cumulative","claimed","claimable","proof"]}},"source":{"type":"string","enum":["chain","mock"]}},"required":["mint","wallet","rewards","source"]},"WalletAllRewards":{"type":"object","properties":{"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"rewards":{"type":"array","items":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"symbol":{"type":["string","null"]},"name":{"type":["string","null"]},"image":{"type":["string","null"]},"distributor":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"rewardMint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"rewardDecimals":{"type":"integer"},"round":{"type":"integer"},"root":{"type":"string","pattern":"^[0-9a-f]{64}$"},"cumulative":{"type":"string","pattern":"^[0-9]+$","description":"cumulative amount in the active root"},"claimed":{"type":["string","null"],"pattern":"^[0-9]+$"},"claimable":{"type":["string","null"],"pattern":"^[0-9]+$"},"proof":{"type":"array","items":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"required":["mint","symbol","name","image","distributor","rewardMint","rewardDecimals","round","root","cumulative","claimed","claimable","proof"]}},"source":{"type":"string","enum":["chain"]}},"required":["wallet","rewards","source"]},"Integrations":{"type":"object","properties":{"partners":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"website":{"type":"string","description":"https URL"},"logoUrl":{"type":["string","null"],"description":"On DEEP storage"},"integration":{"type":"string","enum":["wallet","bot","aggregator","dapp","analytics"]},"tier":{"type":"string","enum":["starter","partner","featured"]}},"required":["name","website","logoUrl","integration","tier"]}},"program":{"type":"object","properties":{"referralShareBps":{"type":"integer","description":"Share of DEEP's fee on routed trades, bps (2000 = 20%)"},"referralActive":{"type":"boolean","description":"false until the program upgrade that pays it ships"},"anonymousPerMinute":{"type":"integer","description":"Requests per minute without a key, per IP"},"tierLimits":{"type":"object","properties":{"starter":{"type":"integer"},"partner":{"type":"integer"},"featured":{"type":"integer"}},"required":["starter","partner","featured"]}},"required":["referralShareBps","referralActive","anonymousPerMinute","tierLimits"]}},"required":["partners","program"]},"SquadsVaults":{"type":"object","properties":{"multisig":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"vaults":{"type":"array","items":{"type":"object","properties":{"vault":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"index":{"type":"integer"}},"required":["vault","index"]}}},"required":["multisig","vaults"]},"UpdateTokenLinksResponse":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"links":{"type":"object","properties":{"twitter":{"type":["string","null"]},"telegram":{"type":["string","null"]},"website":{"type":["string","null"]},"discord":{"type":["string","null"]}},"required":["twitter","telegram","website","discord"]},"linksSource":{"const":"creator"},"linksUpdatedAt":{"type":"integer"}},"required":["mint","links","linksSource","linksUpdatedAt"]},"MetadataUploadResponse":{"type":"object","properties":{"uri":{"type":"string","description":"Metaplex JSON URI to pass to create_token"},"imageUrl":{"type":"string"}},"required":["uri","imageUrl"]},"TraderReputation":{"type":"object","properties":{"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"asOf":{"type":"integer"},"eligible":{"type":"boolean"},"ineligibleReason":{"const":"program_owned"},"trading":{"type":["object","null"],"properties":{"all":{"type":"object","properties":{"window":{"type":"object","properties":{"id":{"type":"string","enum":["all","30d","7d"]},"from":{"type":["integer","null"],"description":"first instant counted, unix ms; null = from the first indexed event"},"to":{"type":"integer","description":"when it was computed, unix ms"}},"required":["id","from","to"]},"trades":{"type":"integer","description":"trades in the window"},"buys":{"type":"integer"},"sells":{"type":"integer"},"volume":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"buyVolume":{"type":"string","pattern":"^[0-9]+$"},"sellVolume":{"type":"string","pattern":"^[0-9]+$"},"tokensTraded":{"type":"integer"},"firstTradeAt":{"type":["integer","null"]},"lastTradeAt":{"type":["integer","null"]},"hold":{"type":"object","properties":{"averageSeconds":{"type":["integer","null"],"description":"FIFO, token-weighted, closed positions only"},"trades":{"type":"integer","description":"sells covered"},"matchedTokens":{"type":"string","pattern":"^[0-9]+$"}},"required":["averageSeconds","trades","matchedTokens"]},"results":{"type":"object","properties":{"closed":{"type":"integer"},"wins":{"type":"integer"},"losses":{"type":"integer"},"breakeven":{"type":"integer"},"winRateBps":{"type":["integer","null"],"description":"null when no position closed"},"solIn":{"type":"string","pattern":"^[0-9]+$"},"solOut":{"type":"string","pattern":"^[0-9]+$"},"realized":{"type":"string","pattern":"^-?[0-9]+$","description":"solOut − solIn, lamports"},"trades":{"type":"integer","description":"trades of the positions counted"},"excludedIncomplete":{"type":"integer"}},"required":["closed","wins","losses","breakeven","winRateBps","solIn","solOut","realized","trades","excludedIncomplete"]}},"required":["window","trades","buys","sells","volume","buyVolume","sellVolume","tokensTraded","firstTradeAt","lastTradeAt","hold","results"]},"last30d":{"type":"object","properties":{"window":{"type":"object","properties":{"id":{"type":"string","enum":["all","30d","7d"]},"from":{"type":["integer","null"],"description":"first instant counted, unix ms; null = from the first indexed event"},"to":{"type":"integer","description":"when it was computed, unix ms"}},"required":["id","from","to"]},"trades":{"type":"integer","description":"trades in the window"},"buys":{"type":"integer"},"sells":{"type":"integer"},"volume":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"buyVolume":{"type":"string","pattern":"^[0-9]+$"},"sellVolume":{"type":"string","pattern":"^[0-9]+$"},"tokensTraded":{"type":"integer"},"firstTradeAt":{"type":["integer","null"]},"lastTradeAt":{"type":["integer","null"]},"hold":{"type":"object","properties":{"averageSeconds":{"type":["integer","null"],"description":"FIFO, token-weighted, closed positions only"},"trades":{"type":"integer","description":"sells covered"},"matchedTokens":{"type":"string","pattern":"^[0-9]+$"}},"required":["averageSeconds","trades","matchedTokens"]},"results":{"type":"object","properties":{"closed":{"type":"integer"},"wins":{"type":"integer"},"losses":{"type":"integer"},"breakeven":{"type":"integer"},"winRateBps":{"type":["integer","null"],"description":"null when no position closed"},"solIn":{"type":"string","pattern":"^[0-9]+$"},"solOut":{"type":"string","pattern":"^[0-9]+$"},"realized":{"type":"string","pattern":"^-?[0-9]+$","description":"solOut − solIn, lamports"},"trades":{"type":"integer","description":"trades of the positions counted"},"excludedIncomplete":{"type":"integer"}},"required":["closed","wins","losses","breakeven","winRateBps","solIn","solOut","realized","trades","excludedIncomplete"]}},"required":["window","trades","buys","sells","volume","buyVolume","sellVolume","tokensTraded","firstTradeAt","lastTradeAt","hold","results"]}},"required":["all","last30d"]},"positions":{"type":["object","null"],"properties":{"closed":{"type":"array","items":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"symbol":{"type":["string","null"]},"name":{"type":["string","null"]},"status":{"type":"string","enum":["open","closed"]},"complete":{"type":"boolean"},"openedAt":{"type":"integer"},"closedAt":{"type":["integer","null"]},"venues":{"type":"array","items":{"type":"string","enum":["curve","deepswap"]}},"buys":{"type":"integer"},"sells":{"type":"integer"},"solIn":{"type":"string","pattern":"^[0-9]+$"},"solOut":{"type":"string","pattern":"^[0-9]+$"},"realized":{"type":["string","null"],"pattern":"^-?[0-9]+$"},"result":{"type":["string","null"],"enum":["win","loss","breakeven",null]},"tokensBought":{"type":"string","pattern":"^[0-9]+$"},"tokensSold":{"type":"string","pattern":"^[0-9]+$"},"tokensHeld":{"type":"string","pattern":"^[0-9]+$","description":"by the indexed fills"},"unmatchedTokens":{"type":"string","pattern":"^[0-9]+$"},"holdSeconds":{"type":["integer","null"]},"chainBalance":{"type":["string","null"],"pattern":"^[0-9]+$","description":"open positions (reputation): the wallet's balance of the mint on chain; null when the read failed. Absent on closed positions"},"transferredOut":{"type":"string","pattern":"^[0-9]+$","description":"open positions: tokens the fills hold but the chain does not (sent away or burned); never a profit"},"transferredIn":{"type":"string","pattern":"^[0-9]+$","description":"open positions: tokens on chain beyond the fills (received by transfer)"},"pnlPartial":{"type":["string","null"],"enum":["transfers",null],"description":"open positions: 'transfers' when either amount is non-zero"}},"required":["mint","symbol","name","status","complete","openedAt","closedAt","venues","buys","sells","solIn","solOut","realized","result","tokensBought","tokensSold","tokensHeld","unmatchedTokens","holdSeconds"]}},"open":{"type":"array","items":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"symbol":{"type":["string","null"]},"name":{"type":["string","null"]},"status":{"type":"string","enum":["open","closed"]},"complete":{"type":"boolean"},"openedAt":{"type":"integer"},"closedAt":{"type":["integer","null"]},"venues":{"type":"array","items":{"type":"string","enum":["curve","deepswap"]}},"buys":{"type":"integer"},"sells":{"type":"integer"},"solIn":{"type":"string","pattern":"^[0-9]+$"},"solOut":{"type":"string","pattern":"^[0-9]+$"},"realized":{"type":["string","null"],"pattern":"^-?[0-9]+$"},"result":{"type":["string","null"],"enum":["win","loss","breakeven",null]},"tokensBought":{"type":"string","pattern":"^[0-9]+$"},"tokensSold":{"type":"string","pattern":"^[0-9]+$"},"tokensHeld":{"type":"string","pattern":"^[0-9]+$","description":"by the indexed fills"},"unmatchedTokens":{"type":"string","pattern":"^[0-9]+$"},"holdSeconds":{"type":["integer","null"]},"chainBalance":{"type":["string","null"],"pattern":"^[0-9]+$","description":"open positions (reputation): the wallet's balance of the mint on chain; null when the read failed. Absent on closed positions"},"transferredOut":{"type":"string","pattern":"^[0-9]+$","description":"open positions: tokens the fills hold but the chain does not (sent away or burned); never a profit"},"transferredIn":{"type":"string","pattern":"^[0-9]+$","description":"open positions: tokens on chain beyond the fills (received by transfer)"},"pnlPartial":{"type":["string","null"],"enum":["transfers",null],"description":"open positions: 'transfers' when either amount is non-zero"}},"required":["mint","symbol","name","status","complete","openedAt","closedAt","venues","buys","sells","solIn","solOut","realized","result","tokensBought","tokensSold","tokensHeld","unmatchedTokens","holdSeconds"]}},"closedTotal":{"type":"integer"},"openTotal":{"type":"integer"},"limit":{"type":"integer"}},"required":["closed","open","closedTotal","openTotal","limit"]},"creator":{"type":["object","null"],"properties":{"all":{"type":"object","properties":{"window":{"type":"object","properties":{"id":{"type":"string","enum":["all","30d","7d"]},"from":{"type":["integer","null"],"description":"first instant counted, unix ms; null = from the first indexed event"},"to":{"type":"integer","description":"when it was computed, unix ms"}},"required":["id","from","to"]},"launched":{"type":"integer"},"bonding":{"type":"integer"},"graduating":{"type":"integer"},"graduated":{"type":"integer"},"graduationRateBps":{"type":["integer","null"],"description":"graduated × 10000 / launched, floor; null without launches"}},"required":["window","launched","bonding","graduating","graduated","graduationRateBps"]},"last30d":{"type":"object","properties":{"window":{"type":"object","properties":{"id":{"type":"string","enum":["all","30d","7d"]},"from":{"type":["integer","null"],"description":"first instant counted, unix ms; null = from the first indexed event"},"to":{"type":"integer","description":"when it was computed, unix ms"}},"required":["id","from","to"]},"launched":{"type":"integer"},"bonding":{"type":"integer"},"graduating":{"type":"integer"},"graduated":{"type":"integer"},"graduationRateBps":{"type":["integer","null"],"description":"graduated × 10000 / launched, floor; null without launches"}},"required":["window","launched","bonding","graduating","graduated","graduationRateBps"]}},"required":["all","last30d"]},"coverage":{"type":["object","null"],"properties":{"status":{"type":"string","enum":["complete","partial","none"]},"unmatchedSells":{"type":"integer"},"tokensAffected":{"type":"array","items":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"}},"tradesRead":{"type":"integer"},"truncated":{"type":"boolean"},"maxTrades":{"type":"integer"},"indexedFrom":{"type":["integer","null"]},"scope":{"type":"string"},"transferPositions":{"type":"integer","description":"open positions whose chain balance differs from the fills (tokens moved by transfer); they make the status partial"},"balancesAsOf":{"type":["integer","null"],"description":"when the wallet's chain balances were read, unix ms"},"balancesError":{"type":"string","description":"rpc_unavailable | rpc_refused"}},"required":["status","unmatchedSells","tokensAffected","tradesRead","truncated","maxTrades","indexedFrom","scope"]},"source":{"const":"indexer"}},"required":["wallet","asOf","eligible","trading","positions","creator","coverage","source"]},"CreatorDashboard":{"type":"object","properties":{"creator":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"asOf":{"type":"integer"},"series":{"type":"object","properties":{"days":{"type":"integer"},"from":{"type":"integer"},"to":{"type":"integer"},"bucketSeconds":{"type":"integer"}},"required":["days","from","to","bucketSeconds"]},"tokens":{"type":"array","items":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"symbol":{"type":"string"},"name":{"type":"string"},"createdAt":{"type":"integer"},"lifecycle":{"type":"string","enum":["bonding","graduating","graduated"]},"moderation":{"type":"object","properties":{"hidden":{"const":true},"reason":{"type":"string"}},"required":["hidden","reason"]},"depthBps":{"type":["integer","null"],"description":"tokens sold / curve supply, bps"},"curveSol":{"type":["string","null"],"pattern":"^[0-9]+$","description":"real SOL in the curve"},"poolAddress":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"holders":{"type":"object","properties":{"now":{"type":["integer","null"],"description":"distinct owners, vaults excluded"},"accounts":{"type":["integer","null"]},"asOf":{"type":["integer","null"]},"error":{"type":"string","description":"rpc_unavailable | rpc_refused | pending | not_read"},"series":{"type":"array","items":{"type":"object","properties":{"day":{"type":"string","description":"YYYY-MM-DD (UTC)"},"holders":{"type":"integer"},"accounts":{"type":"integer"},"asOf":{"type":"integer"}},"required":["day","holders","accounts","asOf"]}},"seriesStartsAt":{"type":["string","null"]}},"required":["now","accounts","asOf","series","seriesStartsAt"]},"activity":{"type":"object","properties":{"all":{"type":"object","properties":{"trades":{"type":"integer"},"curveVolume":{"type":"string","pattern":"^[0-9]+$"},"poolVolume":{"type":"string","pattern":"^[0-9]+$"},"firstTradeAt":{"type":["integer","null"]},"lastTradeAt":{"type":["integer","null"]}},"required":["trades","curveVolume","poolVolume","firstTradeAt","lastTradeAt"]},"daily":{"type":"array","items":{"type":"object","properties":{"time":{"type":"integer","description":"UTC day start, unix seconds"},"trades":{"type":"integer"},"curveVolume":{"type":"string","pattern":"^[0-9]+$"},"poolVolume":{"type":"string","pattern":"^[0-9]+$"},"creatorRewards":{"type":"string","pattern":"^[0-9]+$"}},"required":["time","trades","curveVolume","poolVolume","creatorRewards"]}}},"required":["all","daily"]},"rewards":{"type":"object","properties":{"model":{"type":["string","null"],"enum":["standard","creator","holder",null]},"rateBps":{"type":["integer","null"]},"toCreator":{"type":"boolean"},"curve":{"type":"object","properties":{"earned":{"type":"string","pattern":"^[0-9]+$","description":"Σ indexed creator fees"},"claimed":{"type":"string","pattern":"^[0-9]+$","description":"Σ indexed CreatorFeesClaimed"},"unclaimed":{"type":["string","null"],"pattern":"^[0-9]+$","description":"BondingCurve.creator_fees_unclaimed on chain"}},"required":["earned","claimed","unclaimed"]},"pool":{"type":["object","null"],"properties":{"address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"earned":{"type":"string","pattern":"^[0-9]+$"},"claimed":{"type":"null"},"unclaimed":{"type":["string","null"],"pattern":"^[0-9]+$","description":"claimable from the pool account on chain"},"legacyGross":{"type":"string","pattern":"^[0-9]+$"}},"required":["address","earned","claimed","unclaimed","legacyGross"]},"chainError":{"type":"string"}},"required":["model","rateBps","toCreator","curve","pool"]},"chat":{"type":"object","properties":{"messages":{"type":"integer"},"window":{"type":"object","properties":{"id":{"type":"string","enum":["all","30d","7d"]},"from":{"type":["integer","null"],"description":"first instant counted, unix ms; null = from the first indexed event"},"to":{"type":"integer","description":"when it was computed, unix ms"}},"required":["id","from","to"]}},"required":["messages","window"]}},"required":["mint","symbol","name","createdAt","lifecycle","depthBps","curveSol","poolAddress","holders","activity","rewards"]}},"trackRecord":{"type":"object","properties":{"all":{"type":"object","properties":{"window":{"type":"object","properties":{"id":{"type":"string","enum":["all","30d","7d"]},"from":{"type":["integer","null"],"description":"first instant counted, unix ms; null = from the first indexed event"},"to":{"type":"integer","description":"when it was computed, unix ms"}},"required":["id","from","to"]},"launched":{"type":"integer"},"bonding":{"type":"integer"},"graduating":{"type":"integer"},"graduated":{"type":"integer"},"graduationRateBps":{"type":["integer","null"],"description":"graduated × 10000 / launched, floor; null without launches"}},"required":["window","launched","bonding","graduating","graduated","graduationRateBps"]},"last30d":{"type":"object","properties":{"window":{"type":"object","properties":{"id":{"type":"string","enum":["all","30d","7d"]},"from":{"type":["integer","null"],"description":"first instant counted, unix ms; null = from the first indexed event"},"to":{"type":"integer","description":"when it was computed, unix ms"}},"required":["id","from","to"]},"launched":{"type":"integer"},"bonding":{"type":"integer"},"graduating":{"type":"integer"},"graduated":{"type":"integer"},"graduationRateBps":{"type":["integer","null"],"description":"graduated × 10000 / launched, floor; null without launches"}},"required":["window","launched","bonding","graduating","graduated","graduationRateBps"]}},"required":["all","last30d"]},"rewardsTotal":{"type":"object","properties":{"earned":{"type":"string","pattern":"^[0-9]+$"},"claimed":{"type":"string","pattern":"^[0-9]+$"},"unclaimed":{"type":["string","null"],"pattern":"^[0-9]+$"}},"required":["earned","claimed","unclaimed"]},"holderReadLimit":{"type":"integer"},"source":{"const":"indexer+chain"}},"required":["creator","asOf","series","tokens","trackRecord","rewardsTotal","holderReadLimit","source"]},"TraderComparison":{"type":"object","properties":{"a":{"$ref":"#/components/schemas/TraderReputation"},"b":{"$ref":"#/components/schemas/TraderReputation"},"asOf":{"type":"integer"},"source":{"const":"indexer"}},"required":["a","b","asOf","source"]},"TraderDays":{"type":"object","properties":{"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"days":{"type":"array","items":{"type":"string","description":"YYYY-MM-DD (UTC), newest first"}},"limit":{"type":"integer"},"truncated":{"type":"boolean"},"source":{"const":"indexer"}},"required":["wallet","days","limit","truncated","source"]},"SeasonInfo":{"type":"object","properties":{"id":{"type":"string","description":"YYYY-MM-DD of the season's Monday (UTC)"},"from":{"type":"integer","description":"unix ms, inclusive"},"to":{"type":"integer","description":"unix ms, exclusive"},"status":{"type":"string","enum":["upcoming","live","final"]},"frozenAt":{"type":["integer","null"],"description":"unix ms the standings were frozen"}},"required":["id","from","to","status","frozenAt"]},"SeasonList":{"type":"object","properties":{"current":{"type":"object","properties":{"id":{"type":"string","description":"YYYY-MM-DD of the season's Monday (UTC)"},"from":{"type":"integer","description":"unix ms, inclusive"},"to":{"type":"integer","description":"unix ms, exclusive"},"status":{"type":"string","enum":["upcoming","live","final"]},"frozenAt":{"type":["integer","null"],"description":"unix ms the standings were frozen"}},"required":["id","from","to","status","frozenAt"]},"seasons":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"YYYY-MM-DD of the season's Monday (UTC)"},"from":{"type":"integer","description":"unix ms, inclusive"},"to":{"type":"integer","description":"unix ms, exclusive"},"status":{"type":"string","enum":["upcoming","live","final"]},"frozenAt":{"type":["integer","null"],"description":"unix ms the standings were frozen"}},"required":["id","from","to","status","frozenAt"]}}},"required":["current","seasons"]},"SeasonTraderBoard":{"type":"object","properties":{"season":{"type":"object","properties":{"id":{"type":"string","description":"YYYY-MM-DD of the season's Monday (UTC)"},"from":{"type":"integer","description":"unix ms, inclusive"},"to":{"type":"integer","description":"unix ms, exclusive"},"status":{"type":"string","enum":["upcoming","live","final"]},"frozenAt":{"type":["integer","null"],"description":"unix ms the standings were frozen"}},"required":["id","from","to","status","frozenAt"]},"board":{"const":"traders"},"asOf":{"type":"integer"},"entries":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer","description":"place on the board"},"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"eligible":{"type":"boolean","description":"prize-eligible (minimum met, not disqualified)"},"ineligible":{"type":"string","enum":["below_minimum","disqualified"]},"prizeRank":{"type":["integer","null"],"description":"place among prize-eligible entries"},"prize":{"type":["string","null"],"pattern":"^[0-9]+$","description":"lamports set for prizeRank"},"payout":{"type":["object","null"],"properties":{"signature":{"type":"string","description":"the treasury transaction"},"paidAt":{"type":"integer"}},"required":["signature","paidAt"]},"realized":{"type":"string","pattern":"^-?[0-9]+$","description":"lamports: SOL out − SOL in of positions closed in the season"},"closed":{"type":"integer"},"wins":{"type":"integer"},"losses":{"type":"integer"},"trades":{"type":"integer"},"volume":{"type":"string","pattern":"^[0-9]+$","description":"lamports traded in the season, self-trades excluded"},"selfTrades":{"type":"integer","description":"fills left out: a token bought and sold in one transaction"},"coverage":{"type":"string","enum":["complete","partial"]}},"required":["rank","wallet","eligible","prizeRank","prize","payout","realized","closed","volume","selfTrades","coverage"]}},"total":{"type":"integer"},"offset":{"type":"integer"},"limit":{"type":"integer"},"rules":{"type":"object","properties":{"minVolumeLamports":{"type":"string","pattern":"^[0-9]+$"},"creatorMinGraduated":{"type":"integer"},"text":{"type":"array","items":{"type":"string"}}},"required":["minVolumeLamports","creatorMinGraduated","text"]},"prizes":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer"},"lamports":{"type":"string","pattern":"^[0-9]+$"}},"required":["rank","lamports"]}},"source":{"const":"indexer"}},"required":["season","board","asOf","entries","total","offset","limit","rules","prizes","source"]},"SeasonCreatorBoard":{"type":"object","properties":{"season":{"type":"object","properties":{"id":{"type":"string","description":"YYYY-MM-DD of the season's Monday (UTC)"},"from":{"type":"integer","description":"unix ms, inclusive"},"to":{"type":"integer","description":"unix ms, exclusive"},"status":{"type":"string","enum":["upcoming","live","final"]},"frozenAt":{"type":["integer","null"],"description":"unix ms the standings were frozen"}},"required":["id","from","to","status","frozenAt"]},"board":{"const":"creators"},"asOf":{"type":"integer"},"entries":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer","description":"place on the board"},"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"eligible":{"type":"boolean","description":"prize-eligible (minimum met, not disqualified)"},"ineligible":{"type":"string","enum":["below_minimum","disqualified"]},"prizeRank":{"type":["integer","null"],"description":"place among prize-eligible entries"},"prize":{"type":["string","null"],"pattern":"^[0-9]+$","description":"lamports set for prizeRank"},"payout":{"type":["object","null"],"properties":{"signature":{"type":"string","description":"the treasury transaction"},"paidAt":{"type":"integer"}},"required":["signature","paidAt"]},"launched":{"type":"integer"},"bonding":{"type":"integer"},"graduating":{"type":"integer"},"graduated":{"type":"integer"},"graduationRateBps":{"type":"integer"}},"required":["rank","wallet","eligible","prizeRank","prize","payout","launched","graduated"]}},"total":{"type":"integer"},"offset":{"type":"integer"},"limit":{"type":"integer"},"rules":{"type":"object","properties":{"minVolumeLamports":{"type":"string","pattern":"^[0-9]+$"},"creatorMinGraduated":{"type":"integer"},"text":{"type":"array","items":{"type":"string"}}},"required":["minVolumeLamports","creatorMinGraduated","text"]},"prizes":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer"},"lamports":{"type":"string","pattern":"^[0-9]+$"}},"required":["rank","lamports"]}},"source":{"const":"indexer"}},"required":["season","board","asOf","entries","total","offset","limit","rules","prizes","source"]},"SeasonStanding":{"type":"object","properties":{"season":{"type":"object","properties":{"id":{"type":"string","description":"YYYY-MM-DD of the season's Monday (UTC)"},"from":{"type":"integer","description":"unix ms, inclusive"},"to":{"type":"integer","description":"unix ms, exclusive"},"status":{"type":"string","enum":["upcoming","live","final"]},"frozenAt":{"type":["integer","null"],"description":"unix ms the standings were frozen"}},"required":["id","from","to","status","frozenAt"]},"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"asOf":{"type":"integer"},"traders":{"type":"object","properties":{"entry":{"type":["object","null"]},"total":{"type":"integer"}},"required":["entry","total"]},"creators":{"type":"object","properties":{"entry":{"type":["object","null"]},"total":{"type":"integer"}},"required":["entry","total"]}},"required":["season","wallet","asOf","traders","creators"]},"TraderWeek":{"type":"object","properties":{"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"season":{"type":"object","properties":{"id":{"type":"string","description":"YYYY-MM-DD of the season's Monday (UTC)"},"from":{"type":"integer","description":"unix ms, inclusive"},"to":{"type":"integer","description":"unix ms, exclusive"},"status":{"type":"string","enum":["upcoming","live","final"]},"frozenAt":{"type":["integer","null"],"description":"unix ms the standings were frozen"}},"required":["id","from","to","status","frozenAt"]},"asOf":{"type":"integer"},"realized":{"type":"string","pattern":"^-?[0-9]+$","description":"lamports"},"closed":{"type":"integer"},"wins":{"type":"integer"},"losses":{"type":"integer"},"trades":{"type":"integer"},"volume":{"type":"string","pattern":"^[0-9]+$","description":"lamports, self-trades excluded"},"days":{"type":"array","items":{"type":"object","properties":{"day":{"type":"string","description":"YYYY-MM-DD (UTC)"},"realized":{"type":"string","pattern":"^-?[0-9]+$","description":"lamports"},"closed":{"type":"integer"}},"required":["day","realized","closed"]}},"coverage":{"type":"string","enum":["complete","partial"]},"source":{"const":"indexer"}},"required":["wallet","season","asOf","realized","closed","wins","losses","trades","volume","days","coverage","source"]},"TraderLeaderboard":{"type":"object","properties":{"window":{"type":"string","enum":["7d","30d","all"]},"by":{"type":"string","enum":["realized","winrate","volume"]},"asOf":{"type":"integer","description":"unix ms the snapshot was computed"},"from":{"type":["integer","null"]},"to":{"type":"integer"},"entries":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer"},"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"closed":{"type":"integer","description":"closed, complete positions in the window"},"wins":{"type":"integer"},"losses":{"type":"integer"},"breakeven":{"type":"integer"},"winRateBps":{"type":["integer","null"]},"realized":{"type":"string","pattern":"^-?[0-9]+$","description":"lamports"},"trades":{"type":"integer"},"volume":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"tokensTraded":{"type":"integer"},"excludedIncomplete":{"type":"integer"},"coverage":{"type":"string","enum":["complete","partial"]}},"required":["rank","wallet","closed","wins","losses","breakeven","winRateBps","realized","trades","volume","tokensTraded","excludedIncomplete","coverage"]}},"total":{"type":"integer","description":"entries that qualify, before paging"},"offset":{"type":"integer"},"limit":{"type":"integer"},"minClosedForWinRate":{"type":"integer"},"coverage":{"type":"object","properties":{"walletsScanned":{"type":"integer"},"walletsActive":{"type":"integer"},"walletCap":{"type":"integer"},"programOwned":{"type":"integer"},"fillsRead":{"type":"integer"},"scope":{"type":"string"}},"required":["walletsScanned","walletsActive","walletCap","programOwned","fillsRead","scope"]},"source":{"const":"indexer"}},"required":["window","by","asOf","from","to","entries","total","offset","limit","minClosedForWinRate","coverage","source"]},"HolderLeaderboard":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"by":{"type":"string","enum":["holdtime","size"]},"asOf":{"type":"integer"},"entries":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer"},"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"balance":{"type":"string","pattern":"^[0-9]+$","description":"base units (chain)"},"shareBps":{"type":"integer"},"firstBuyAt":{"type":["integer","null"],"description":"unix ms of the first indexed buy"},"holdSeconds":{"type":["integer","null"]},"buys":{"type":"integer"},"sells":{"type":"integer"}},"required":["rank","wallet","balance","shareBps","firstBuyAt","holdSeconds","buys","sells"]}},"total":{"type":"integer"},"offset":{"type":"integer"},"limit":{"type":"integer"},"holders":{"type":"integer","description":"holders ranked: non-zero balance, not a vault or program-owned"},"error":{"type":"string","description":"rpc_unavailable | rpc_refused: the chain read is missing, entries are empty"},"source":{"const":"indexer+chain"}},"required":["mint","by","asOf","entries","total","offset","limit","holders","source"]},"CreatorLeaderboard":{"type":"object","properties":{"window":{"type":"string","enum":["7d","30d","all"]},"asOf":{"type":"integer"},"from":{"type":["integer","null"]},"to":{"type":"integer"},"entries":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer"},"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"launched":{"type":"integer"},"bonding":{"type":"integer"},"graduating":{"type":"integer"},"graduated":{"type":"integer"},"graduationRateBps":{"type":"integer"}},"required":["rank","wallet","launched","bonding","graduating","graduated","graduationRateBps"]}},"total":{"type":"integer"},"offset":{"type":"integer"},"limit":{"type":"integer"},"programOwned":{"type":"integer"},"source":{"const":"indexer"}},"required":["window","asOf","from","to","entries","total","offset","limit","programOwned","source"]},"ChartTrades":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"from":{"type":"integer","description":"unix ms, inclusive"},"to":{"type":"integer","description":"unix ms, inclusive"},"trades":{"type":"array","items":{"type":"object","properties":{"signature":{"type":"string"},"index":{"type":"integer","description":"event index inside the transaction"},"trader":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"side":{"type":"string","enum":["buy","sell"]},"solAmount":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"tokenAmount":{"type":"string","pattern":"^[0-9]+$","description":"base units"},"priceLamports":{"type":"string","pattern":"^[0-9]+$","description":"post-trade spot price, lamports per whole token (floor), from the reserves the indexer recorded"},"timestamp":{"type":"integer","description":"unix ms"},"venue":{"type":"string","enum":["curve","deepswap"]},"creator":{"type":"boolean"}},"required":["signature","index","trader","side","solAmount","tokenAmount","priceLamports","timestamp","venue","creator"]}},"truncated":{"type":"boolean"}},"required":["mint","from","to","trades","truncated"]},"OrderFlow":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"window":{"type":"string","enum":["1h","24h","7d"]},"buys":{"type":"integer"},"sells":{"type":"integer"},"buySol":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"sellSol":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"netSol":{"type":"string","pattern":"^-?[0-9]+$","description":"buySol − sellSol, lamports"},"buySellRatioBps":{"type":["integer","null"],"description":"buySol × 10000 / sellSol (floor); null without sells"},"asOf":{"type":"integer"}},"required":["mint","window","buys","sells","buySol","sellSol","netSol","buySellRatioBps","asOf"]},"TokenTraders":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"by":{"type":"string","enum":["result","volume"]},"priceLamports":{"type":["string","null"],"pattern":"^[0-9]+$","description":"current spot price, lamports per whole token"},"asOf":{"type":"integer"},"balancesAsOf":{"type":["integer","null"],"description":"when the wallets' chain balances were read, unix ms; null if they could not be"},"balancesError":{"type":"string","description":"why there are no chain balances: rpc_unavailable | rpc_refused"},"traders":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer"},"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"buys":{"type":"integer"},"sells":{"type":"integer"},"solIn":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"solOut":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"realized":{"type":["string","null"],"pattern":"^-?[0-9]+$","description":"SOL out − FIFO cost of the sold tokens, lamports"},"unrealized":{"type":["string","null"],"pattern":"^-?[0-9]+$","description":"bought tokens still held on chain at the current spot price − their FIFO cost, lamports (estimate); null without a chain balance"},"returnBps":{"type":["integer","null"],"description":"(realized + unrealized) × 10000 / (SOL in − transferredOutCost)"},"tokensHeld":{"type":"string","pattern":"^[0-9]+$","description":"base units: the chain balance, or the indexed fills' net without one"},"creator":{"type":"boolean"},"complete":{"type":"boolean"},"chainBalance":{"type":["string","null"],"pattern":"^[0-9]+$","description":"the wallet's balance on chain, base units; null when the read failed"},"transferredOut":{"type":"string","pattern":"^[0-9]+$","description":"bought tokens no longer on chain (sent away or burned), base units: taken out of the FIFO lots with their cost, never a profit"},"transferredOutCost":{"type":"string","pattern":"^[0-9]+$","description":"FIFO cost of transferredOut, lamports: excluded from the result"},"transferredIn":{"type":"string","pattern":"^[0-9]+$","description":"tokens on chain beyond the fills (received by transfer, unknown cost), base units: never valued"},"pnlPartial":{"type":["string","null"],"enum":["transfers",null],"description":"'transfers' when tokens moved in or out by transfer: the result covers the traded tokens only"}},"required":["rank","wallet","buys","sells","solIn","solOut","realized","unrealized","returnBps","tokensHeld","creator","complete","chainBalance","transferredOut","transferredOutCost","transferredIn","pnlPartial"]}}},"required":["mint","by","priceLamports","asOf","balancesAsOf","traders"]},"Position":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"buys":{"type":"integer"},"sells":{"type":"integer"},"solIn":{"type":"string","pattern":"^[0-9]+$","description":"lamports paid by the wallet's buys, as recorded"},"solOut":{"type":"string","pattern":"^[0-9]+$","description":"lamports received by the wallet's sells, as recorded"},"tokensHeld":{"type":"string","pattern":"^[0-9]+$","description":"base units: the chain balance, or the indexed fills' net without one"},"chainBalance":{"type":["string","null"],"pattern":"^[0-9]+$","description":"the wallet's balance on chain (all its token accounts), base units; null when the read failed"},"transferredOut":{"type":"string","pattern":"^[0-9]+$","description":"bought tokens no longer on chain (sent away or burned), base units: taken out of the FIFO lots with their cost, never a profit"},"transferredOutCost":{"type":"string","pattern":"^[0-9]+$","description":"FIFO cost of transferredOut, lamports: excluded from the result"},"transferredIn":{"type":"string","pattern":"^[0-9]+$","description":"tokens on chain beyond the fills (received by transfer, unknown cost), base units: never in a result"},"pnlPartial":{"type":["string","null"],"enum":["transfers",null],"description":"'transfers' when tokens moved in or out by transfer: the result covers the traded tokens only"},"costedTokens":{"type":"string","pattern":"^[0-9]+$","description":"base units still held whose FIFO cost is known"},"costBasis":{"type":["string","null"],"pattern":"^[0-9]+$","description":"FIFO cost of costedTokens, lamports"},"avgEntryLamports":{"type":["string","null"],"pattern":"^[0-9]+$","description":"SOL in × 10^decimals / tokens bought, lamports per whole token (floor)"},"priceLamports":{"type":["string","null"],"pattern":"^[0-9]+$","description":"current spot price, lamports per whole token"},"valueSol":{"type":["string","null"],"pattern":"^[0-9]+$","description":"tokensHeld at spot, lamports (floor)"},"realized":{"type":["string","null"],"pattern":"^-?[0-9]+$","description":"SOL out − FIFO cost of the sold tokens, lamports"},"realizedBps":{"type":["integer","null"],"description":"realized × 10000 / cost of the sold tokens"},"unrealized":{"type":["string","null"],"pattern":"^-?[0-9]+$","description":"costedTokens at the current spot price − costBasis, lamports (estimate); null without a chain balance"},"unrealizedBps":{"type":["integer","null"],"description":"unrealized × 10000 / costBasis"},"returnBps":{"type":["integer","null"],"description":"(realized + unrealized) × 10000 / (SOL in − transferredOutCost)"},"complete":{"type":"boolean"},"asOf":{"type":"integer"},"errors":{"type":"array","items":{"type":"string"}}},"required":["mint","wallet","buys","sells","solIn","solOut","tokensHeld","chainBalance","transferredOut","transferredOutCost","transferredIn","pnlPartial","costedTokens","costBasis","avgEntryLamports","priceLamports","valueSol","realized","realizedBps","unrealized","unrealizedBps","returnBps","complete","asOf","errors"]},"TokenFacts":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"createdAt":{"type":"integer"},"supply":{"type":["string","null"],"pattern":"^[0-9]+(\\.[0-9]+)?$","description":"whole units, exact"},"decimals":{"type":["integer","null"]},"mintRenounced":{"type":["boolean","null"]},"freezeRenounced":{"type":["boolean","null"]},"creator":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"creatorBalance":{"type":["string","null"],"pattern":"^[0-9]+$","description":"base units, chain"},"creatorShareBps":{"type":["integer","null"]},"creatorStatus":{"type":["string","null"],"enum":["holding","sold-some","sold-all","never-held","moved"]},"pool":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"liquiditySol":{"type":["string","null"],"pattern":"^[0-9]+$","description":"two-sided pool liquidity: SOL reserves × 2, lamports"},"errors":{"type":"array","items":{"type":"string"}}},"required":["mint","createdAt","supply","decimals","mintRenounced","freezeRenounced","creator","creatorBalance","creatorShareBps","creatorStatus","pool","liquiditySol","errors"]},"Holdings":{"type":"object","properties":{"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"items":{"type":"array","items":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"symbol":{"type":["string","null"]},"name":{"type":["string","null"]},"imageUrl":{"type":["string","null"]},"balance":{"type":"string","pattern":"^[0-9]+$","description":"base units, chain"},"decimals":{"type":"integer"},"valueSol":{"type":["string","null"],"pattern":"^[0-9]+$","description":"balance at the current spot price, lamports (floor)"}},"required":["mint","symbol","name","imageUrl","balance","decimals","valueSol"]}},"totalSol":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"asOf":{"type":"integer"},"error":{"type":"string"}},"required":["wallet","items","totalSol","asOf"]},"TokenFriends":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"friends":{"type":"array","items":{"type":"object","properties":{"wallet":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"buys":{"type":"integer"},"sells":{"type":"integer"},"tokensBought":{"type":"string","pattern":"^[0-9]+$","description":"base units, indexed"},"tokensSold":{"type":"string","pattern":"^[0-9]+$","description":"base units, indexed"},"balance":{"type":["string","null"],"pattern":"^[0-9]+$","description":"associated token account balance, base units, chain"},"lastTrade":{"type":["object","null"],"properties":{"side":{"type":"string","enum":["buy","sell"]},"solAmount":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"tokenAmount":{"type":"string","pattern":"^[0-9]+$","description":"base units"},"timestamp":{"type":"integer"},"signature":{"type":"string"},"venue":{"type":"string","enum":["curve","deepswap"]}},"required":["side","solAmount","tokenAmount","timestamp","signature","venue"]}},"required":["wallet","buys","sells","tokensBought","tokensSold","balance","lastTrade"]}},"asOf":{"type":"integer"},"errors":{"type":"array","items":{"type":"string"}}},"required":["mint","friends","asOf","errors"]},"TokenBubbleMap":{"type":"object","properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"supply":{"type":"string","pattern":"^[0-9]+$","description":"total supply, base units"},"decimals":{"type":"integer"},"holders":{"type":["integer","null"],"description":"distinct owners with a balance, program accounts left out; null when the read failed"},"bubbles":{"type":"array","items":{"type":"object","properties":{"owner":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"amount":{"type":"string","pattern":"^[0-9]+$","description":"base units, summed over the owner's token accounts (chain)"},"shareBps":{"type":"integer","description":"amount × 10000 / supply (floor)"},"label":{"type":"string","enum":["creator","curve","pool","burned","deep","holder"],"description":"curve: the bonding curve's vault · pool: a DeepSwap pool vault · burned: the incinerator · deep: another DEEP program account"}},"required":["owner","amount","shareBps","label"]}},"top10ShareBps":{"type":["integer","null"],"description":"share of the 10 largest wallets (creator + holder bubbles), bps; null on a failed read"},"clusters":{"type":"string","enum":["tracked","not-tracked"],"description":"not-tracked: transfers between wallets are not indexed yet; links is empty"},"links":{"type":"array","items":{"type":"object","properties":{"a":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"b":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"kind":{"type":"string","enum":["token-transfer","sol-transfer","shared-funder"]}},"required":["a","b","kind"]}},"asOf":{"type":"integer"},"error":{"type":"string","description":"rpc_unavailable | rpc_refused"}},"required":["mint","supply","decimals","holders","bubbles","top10ShareBps","clusters","links","asOf"]},"TokensDirectoryStats":{"type":"object","properties":{"launched":{"type":"integer","description":"tokens launched on Deep Curve"},"totalVolume":{"type":"string","pattern":"^[0-9]+$","description":"lifetime curve + graduation-pool volume, lamports"},"volume24h":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"creatorRewards":{"type":"string","pattern":"^[0-9]+$","description":"Σ creatorEarned of every Creator Rewards token, lamports"},"creatorEarned":{"type":"object","additionalProperties":{"type":"string","pattern":"^[0-9]+$","description":"lamports"},"description":"mint → reward fees its indexed trades paid its creator. Creator Rewards tokens only; hidden tokens left out."},"asOf":{"type":"integer"}},"required":["launched","totalVolume","volume24h","creatorRewards","creatorEarned","asOf"]},"VanityMintResponse":{"type":"object","properties":{"vanity":{"type":["object","null"],"properties":{"mint":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"The mint address; ends in \"deep\""},"secretKey":{"type":"string","description":"The mint's 64-byte ed25519 secret key (seed, then public key), base58. It signs create_token once and has no authority afterwards"}},"required":["mint","secretKey"]}},"required":["vanity"]}},"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"x-api-key","description":"Optional developer API key from the developer dashboard"}}},"security":[{},{"apiKey":[]}]}