{"asyncapi":"3.1.0","info":{"title":"dydt Realtime Market Data","version":"1.0.0","description":"One multiplexed JSON WebSocket. Authenticate with `Authorization: Bearer <key>` on connect, or send {\"type\":\"auth\",\"key\":\"<key>\"} as the first frame (within 5 s). Then send subscribe/unsubscribe frames naming a stream and {\"type\":\"ping\"} every 15 s. Every event is {\"stream\": \"<name>\", \"data\": {…}}; streams that carry more than one kind of event put it in data.event. Close codes: 4401 invalid key, 4402 paid plan required (Free is REST only), 4429 connection limit or monthly message allowance used. Every data message counts toward the monthly allowance. Events are not replayed after a disconnect."},"defaultContentType":"application/json","servers":{"production":{"host":"data.dydt.ai","pathname":"/ws","protocol":"wss"}},"channels":{"market":{"address":"/ws","messages":{"subscribe_token_metadata":{"$ref":"#/components/messages/subscribe_token_metadata"},"event_token_metadata":{"$ref":"#/components/messages/event_token_metadata"},"subscribe_candles":{"$ref":"#/components/messages/subscribe_candles"},"event_candles":{"$ref":"#/components/messages/event_candles"},"subscribe_pool_metrics":{"$ref":"#/components/messages/subscribe_pool_metrics"},"event_pool_metrics":{"$ref":"#/components/messages/event_pool_metrics"},"subscribe_chart_lines":{"$ref":"#/components/messages/subscribe_chart_lines"},"event_chart_lines":{"$ref":"#/components/messages/event_chart_lines"},"subscribe_markers":{"$ref":"#/components/messages/subscribe_markers"},"event_markers":{"$ref":"#/components/messages/event_markers"},"subscribe_token_trades":{"$ref":"#/components/messages/subscribe_token_trades"},"event_token_trades":{"$ref":"#/components/messages/event_token_trades"},"subscribe_pool_trades":{"$ref":"#/components/messages/subscribe_pool_trades"},"event_pool_trades":{"$ref":"#/components/messages/event_pool_trades"},"subscribe_rankings":{"$ref":"#/components/messages/subscribe_rankings"},"event_rankings":{"$ref":"#/components/messages/event_rankings"},"subscribe_token_signals":{"$ref":"#/components/messages/subscribe_token_signals"},"event_token_signals":{"$ref":"#/components/messages/event_token_signals"},"subscribe_x_posts":{"$ref":"#/components/messages/subscribe_x_posts"},"event_x_posts":{"$ref":"#/components/messages/event_x_posts"},"subscribe_wallet_activity":{"$ref":"#/components/messages/subscribe_wallet_activity"},"event_wallet_activity":{"$ref":"#/components/messages/event_wallet_activity"},"subscribe_wallet_signals":{"$ref":"#/components/messages/subscribe_wallet_signals"},"event_wallet_signals":{"$ref":"#/components/messages/event_wallet_signals"},"auth":{"$ref":"#/components/messages/auth"},"ping":{"$ref":"#/components/messages/ping"},"pong":{"$ref":"#/components/messages/pong"},"error":{"$ref":"#/components/messages/error"}}}},"operations":{"subscribe":{"action":"send","channel":{"$ref":"#/channels/market"},"messages":[{"$ref":"#/channels/market/messages/auth"},{"$ref":"#/channels/market/messages/subscribe_token_metadata"},{"$ref":"#/channels/market/messages/subscribe_candles"},{"$ref":"#/channels/market/messages/subscribe_pool_metrics"},{"$ref":"#/channels/market/messages/subscribe_chart_lines"},{"$ref":"#/channels/market/messages/subscribe_markers"},{"$ref":"#/channels/market/messages/subscribe_token_trades"},{"$ref":"#/channels/market/messages/subscribe_pool_trades"},{"$ref":"#/channels/market/messages/subscribe_rankings"},{"$ref":"#/channels/market/messages/subscribe_token_signals"},{"$ref":"#/channels/market/messages/subscribe_x_posts"},{"$ref":"#/channels/market/messages/subscribe_wallet_activity"},{"$ref":"#/channels/market/messages/subscribe_wallet_signals"},{"$ref":"#/channels/market/messages/ping"}]},"receive":{"action":"receive","channel":{"$ref":"#/channels/market"},"messages":[{"$ref":"#/channels/market/messages/event_token_metadata"},{"$ref":"#/channels/market/messages/event_candles"},{"$ref":"#/channels/market/messages/event_pool_metrics"},{"$ref":"#/channels/market/messages/event_chart_lines"},{"$ref":"#/channels/market/messages/event_markers"},{"$ref":"#/channels/market/messages/event_token_trades"},{"$ref":"#/channels/market/messages/event_pool_trades"},{"$ref":"#/channels/market/messages/event_rankings"},{"$ref":"#/channels/market/messages/event_token_signals"},{"$ref":"#/channels/market/messages/event_x_posts"},{"$ref":"#/channels/market/messages/event_wallet_activity"},{"$ref":"#/channels/market/messages/event_wallet_signals"},{"$ref":"#/channels/market/messages/pong"},{"$ref":"#/channels/market/messages/error"}]}},"components":{"messages":{"subscribe_token_metadata":{"name":"subscribe_token_metadata","title":"Subscribe: Token Metadata","summary":"Token names, images, and links as they change.","payload":{"type":"object","required":["type","stream","payload"],"properties":{"type":{"enum":["subscribe","unsubscribe"]},"stream":{"const":"token_metadata"},"payload":{"type":"object","properties":{}}}}},"event_token_metadata":{"name":"event_token_metadata","title":"Event: Token Metadata","payload":{"type":"object","required":["stream","data"],"properties":{"stream":{"const":"token_metadata"},"data":{"type":"object","required":["token_address","symbol","name","image_url","description","socials"],"properties":{"token_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token mint address."},"symbol":{"type":["string","null"],"description":"Token symbol."},"name":{"type":["string","null"],"description":"Token name."},"image_url":{"type":["string","null"],"format":"uri","description":"Token image URL on the dydt CDN."},"description":{"type":["string","null"],"description":"Token description."},"socials":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"Platform name to URL, for example twitter, telegram, website. Only known links are present."}}}}}},"subscribe_candles":{"name":"subscribe_candles","title":"Subscribe: OHLCV Candles","summary":"Keep a pool chart current with live candle updates.","payload":{"type":"object","required":["type","stream","payload"],"properties":{"type":{"enum":["subscribe","unsubscribe"]},"stream":{"const":"candles"},"payload":{"type":"object","required":["pool_address","interval","mode","currency"],"properties":{"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool to watch."},"interval":{"type":"string","enum":["1s","15s","1m","15m","1h","6h","24h"],"description":"Candle size.","default":"1m"},"mode":{"type":"string","enum":["price","market_cap"],"description":"Price candles or market-cap candles.","default":"price"},"currency":{"type":"string","enum":["usd","quote"],"description":"Values in USD or in the pool quote asset.","default":"usd"},"subscription_id":{"type":"string","minLength":1,"maxLength":64,"description":"Your id for this subscription; echoed on every event."},"resume_after_seq":{"type":"integer","minimum":1,"description":"Last seq you received, to resume after a reconnect."},"resume_after_time":{"type":"integer","format":"int64","minimum":1,"description":"Resume from this time when you have no seq."}}}}}},"event_candles":{"name":"event_candles","title":"Event: OHLCV Candles","description":"Ignore events whose subscription_id does not match your current subscription.","payload":{"type":"object","required":["stream","data"],"properties":{"stream":{"const":"candles"},"data":{"type":"object","required":["pool_address","interval","mode","currency","seq","subscription_id","candles"],"properties":{"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool address."},"interval":{"type":"string","enum":["1s","15s","1m","15m","1h","6h","24h"],"description":"Candle size, as subscribed."},"mode":{"type":"string","enum":["price","market_cap"],"description":"price or market_cap, as subscribed."},"currency":{"type":"string","enum":["usd","quote"],"description":"usd or quote, as subscribed."},"seq":{"type":["integer","null"],"description":"Sequence number; pass it back as resume_after_seq after a reconnect."},"subscription_id":{"type":["string","null"],"description":"Echo of the subscription_id you sent."},"candles":{"type":"array","items":{"type":"object","required":["start_at","open","high","low","close","volume"],"properties":{"start_at":{"type":"integer","format":"int64","description":"Candle start."},"open":{"type":["number","null"],"description":"Opening value."},"high":{"type":["number","null"],"description":"Highest value."},"low":{"type":["number","null"],"description":"Lowest value."},"close":{"type":["number","null"],"description":"Closing value."},"volume":{"type":["number","null"],"description":"Traded volume in the requested currency."}}},"description":"Candles, oldest first. Live updates hold the current candle, updated in place until it closes."}}}}}},"subscribe_pool_metrics":{"name":"subscribe_pool_metrics","title":"Subscribe: Pool Metrics","summary":"Live market metrics for pools, between HTTP snapshots.","payload":{"type":"object","required":["type","stream","payload"],"properties":{"type":{"enum":["subscribe","unsubscribe"]},"stream":{"const":"pool_metrics"},"payload":{"type":"object","required":["pool_addresses"],"properties":{"pool_addresses":{"type":"array","items":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"maxItems":100,"description":"Pools to watch, up to 100."}}}}}},"event_pool_metrics":{"name":"event_pool_metrics","title":"Event: Pool Metrics","payload":{"type":"object","required":["stream","data"],"properties":{"stream":{"const":"pool_metrics"},"data":{"type":"object","required":["pool_address","token_address","quote_address","pool_type","slot","tx_index","ix_index","snapshot","totals","windowed","heat"],"properties":{"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool address."},"token_address":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token mint address."},"quote_address":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Mint of the asset the token is priced against, usually wrapped SOL."},"pool_type":{"type":["string","null"],"enum":["bonding_curve","amm","cpmm","clmm"],"description":"Pool model."},"slot":{"type":"integer","description":"Slot of the last trade included."},"tx_index":{"type":"integer","description":"Transaction index of that trade."},"ix_index":{"type":"integer","description":"Instruction index of that trade."},"snapshot":{"type":"object","required":["price_quote","price_usd","market_cap_quote","market_cap_usd","liquidity_quote","liquidity_usd","bonding_curve_progress_pct"],"properties":{"price_quote":{"type":"number","description":"Price per token in the quote asset."},"price_usd":{"type":["number","null"],"description":"Price per token in USD."},"market_cap_quote":{"type":"number","description":"Market cap in the quote asset."},"market_cap_usd":{"type":["number","null"],"description":"Market cap in USD."},"liquidity_quote":{"type":"number","description":"Pool liquidity in the quote asset."},"liquidity_usd":{"type":["number","null"],"description":"Pool liquidity in USD."},"bonding_curve_progress_pct":{"type":"number","description":"Bonding curve completion, 0 to 100; 0 after migration."}}},"totals":{"type":"object","required":["volume_quote","volume_usd","buy_volume_quote","buy_volume_usd","sell_volume_quote","sell_volume_usd","trade_count","buy_count","sell_count","ath_market_cap_quote","ath_market_cap_usd","first_trade_at","launch_price_quote","launch_price_usd","price_change_pct_quote","price_change_pct_usd","trader_count","buyer_count","seller_count","holder_count","total_supply","circulating_supply","lp_burned_pct","dev_pct","sniper_pct","bundle_pct","bundler_count","top10_pct","mint_revoked","freeze_revoked","dex_paid","bonding_curve_gain_5m_pct"],"properties":{"volume_quote":{"type":"number","description":"All-time volume in the quote asset."},"volume_usd":{"type":["number","null"],"description":"All-time volume in USD."},"buy_volume_quote":{"type":"number","description":"All-time buy volume in the quote asset."},"buy_volume_usd":{"type":["number","null"],"description":"All-time buy volume in USD."},"sell_volume_quote":{"type":"number","description":"All-time sell volume in the quote asset."},"sell_volume_usd":{"type":["number","null"],"description":"All-time sell volume in USD."},"trade_count":{"type":"integer","description":"All-time trades."},"buy_count":{"type":"integer","description":"All-time buys."},"sell_count":{"type":"integer","description":"All-time sells."},"ath_market_cap_quote":{"type":"number","description":"Highest market cap seen, in the quote asset."},"ath_market_cap_usd":{"type":["number","null"],"description":"Highest market cap seen, in USD."},"first_trade_at":{"type":["integer","null"],"format":"int64","description":"First trade."},"launch_price_quote":{"type":["number","null"],"description":"First traded price in the quote asset."},"launch_price_usd":{"type":["number","null"],"description":"First traded price in USD."},"price_change_pct_quote":{"type":["number","null"],"description":"Price change since launch in quote terms."},"price_change_pct_usd":{"type":["number","null"],"description":"Price change since launch in USD terms."},"trader_count":{"type":"integer","description":"Distinct wallets that have traded the token (approximate)."},"buyer_count":{"type":"integer","description":"Distinct wallets that have bought (approximate)."},"seller_count":{"type":"integer","description":"Distinct wallets that have sold (approximate)."},"holder_count":{"type":["integer","null"],"description":"Wallets holding the token now."},"total_supply":{"type":["number","null"],"description":"Total supply in whole tokens."},"circulating_supply":{"type":["number","null"],"description":"Circulating supply in whole tokens."},"lp_burned_pct":{"type":["number","null"],"description":"Share of LP tokens burned and still locked, 0 to 100."},"dev_pct":{"type":["number","null"],"description":"Share of supply held by the creator, 0 to 100."},"sniper_pct":{"type":["number","null"],"description":"Share of supply held by sniper wallets, 0 to 100."},"bundle_pct":{"type":["number","null"],"description":"Share of supply held by bundled launch buyers, 0 to 100."},"bundler_count":{"type":["integer","null"],"description":"Wallets that bought in bundled launch transactions."},"top10_pct":{"type":["number","null"],"description":"Share of supply held by the 10 largest holders, 0 to 100."},"mint_revoked":{"type":["boolean","null"],"description":"Whether the mint authority is revoked."},"freeze_revoked":{"type":["boolean","null"],"description":"Whether the freeze authority is revoked."},"dex_paid":{"type":["boolean","null"],"description":"Whether a DEX Screener profile was paid for."},"bonding_curve_gain_5m_pct":{"type":["number","null"],"description":"Bonding curve progress gained in the last 5 minutes."}}},"windowed":{"type":"object","required":["t","pp","v","vb","vs","tc","bc","sc","m","bm","sm"],"properties":{"t":{"type":"array","items":{"type":"string","enum":["1m","5m","1h","6h","24h"]},"description":"Windows present, in order. Every other array has one entry per window."},"pp":{"type":"array","items":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"minItems":2,"maxItems":2},"description":"Price change in percent, as [quote, usd]."},"v":{"type":"array","items":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"minItems":2,"maxItems":2},"description":"Volume, as [quote, usd]."},"vb":{"type":"array","items":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"minItems":2,"maxItems":2},"description":"Buy volume, as [quote, usd]."},"vs":{"type":"array","items":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"minItems":2,"maxItems":2},"description":"Sell volume, as [quote, usd]."},"tc":{"type":"array","items":{"type":"integer"},"description":"Trades."},"bc":{"type":"array","items":{"type":"integer"},"description":"Buys."},"sc":{"type":"array","items":{"type":"integer"},"description":"Sells."},"m":{"type":"array","items":{"type":"integer"},"description":"Distinct traders."},"bm":{"type":"array","items":{"type":"integer"},"description":"Distinct buyers."},"sm":{"type":"array","items":{"type":"integer"},"description":"Distinct sellers."}},"description":"Windowed metrics in compact columnar form: t lists the windows and every other array holds one entry per window at the same index."},"heat":{"type":["object","null"],"required":["absolute","momentum","direction","drivers","confidence"],"properties":{"absolute":{"type":"integer","description":"Overall activity score, 0 to 100."},"momentum":{"type":"integer","description":"Recent surge in price, volume, and trades, 0 to 100."},"direction":{"type":"string","enum":["up","down"],"description":"Direction of the 5-minute price move."},"drivers":{"type":"array","items":{"type":"string","enum":["price","volume","txns"]},"description":"What drives momentum."},"confidence":{"type":"number","description":"0 to 1; low for pools younger than a few minutes."}},"description":"How hot the pool is right now."}}}}}},"subscribe_chart_lines":{"name":"subscribe_chart_lines","title":"Subscribe: Chart Lines","summary":"Price and market-cap levels to draw on a pool chart.","payload":{"type":"object","required":["type","stream","payload"],"properties":{"type":{"enum":["subscribe","unsubscribe"]},"stream":{"const":"chart_lines"},"payload":{"type":"object","required":["pool_address","token_address","top_holder_count"],"properties":{"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool the chart shows."},"token_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token the chart shows."},"top_holder_count":{"type":"integer","minimum":0,"maximum":25,"description":"Draw levels for this many top holders.","default":0},"wallet_addresses":{"type":"array","items":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"maxItems":20,"description":"Also draw levels for these wallets."},"wallet_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Draw this wallet's own buys and sells."}}}}}},"event_chart_lines":{"name":"event_chart_lines","title":"Event: Chart Lines","description":"Each event carries every line; replace what you have.","payload":{"type":"object","required":["stream","data"],"properties":{"stream":{"const":"chart_lines"},"data":{"type":"object","required":["pool_address","token_address","wallet_address","lines"],"properties":{"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool address."},"token_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token mint address."},"wallet_address":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Wallet the self_* lines belong to."},"lines":{"type":"array","items":{"type":"object","required":["id","kind","label","supply_pct","wallet_count","set_at","price_usd","price_quote","market_cap_usd","market_cap_quote"],"properties":{"id":{"type":"string","description":"Line id; a later event with the same id replaces the line."},"kind":{"type":"string","enum":["ath","migration","dev_buy","dev_sell","top_buy","top_sell","kol_buy","watchlist_buy","self_buy","self_sell"],"description":"What the level marks."},"label":{"type":["string","null"],"description":"Short label."},"supply_pct":{"type":["number","null"],"description":"Share of supply behind the line, 0 to 100."},"wallet_count":{"type":["integer","null"],"description":"Wallets behind the line."},"set_at":{"type":["integer","null"],"format":"int64","description":"When the level was set."},"price_usd":{"type":["number","null"],"description":"Price level in USD."},"price_quote":{"type":["number","null"],"description":"Price level in the quote asset."},"market_cap_usd":{"type":["number","null"],"description":"Market cap level in USD."},"market_cap_quote":{"type":["number","null"],"description":"Market cap level in the quote asset."}}},"description":"The full set of levels; replace what you have."}}}}}},"subscribe_markers":{"name":"subscribe_markers","title":"Subscribe: Chart Markers","summary":"Chart markers for a token: market events, signals, and trades by labeled wallets.","payload":{"type":"object","required":["type","stream","payload"],"properties":{"type":{"enum":["subscribe","unsubscribe"]},"stream":{"const":"markers"},"payload":{"type":"object","required":["token_address"],"properties":{"token_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token to watch."}}}}}},"event_markers":{"name":"event_markers","title":"Event: Chart Markers","payload":{"type":"object","required":["stream","data"],"properties":{"stream":{"const":"markers"},"data":{"oneOf":[{"type":"object","required":["event","marker_id","at","type","source","detail"],"properties":{"event":{"type":"string","enum":["mark"]},"marker_id":{"type":"string","description":"Marker id."},"at":{"type":"integer","format":"int64","description":"Marker time."},"type":{"type":"string","description":"Marker type, for example callout, signal, or a market event."},"source":{"type":"string","description":"Where the marker came from."},"detail":{"type":["object","null"],"additionalProperties":{},"description":"Type-specific detail."}}},{"type":"object","required":["event","marker_id"],"properties":{"event":{"type":"string","enum":["remove"]},"marker_id":{"type":"string","description":"Id of the marker to delete."}}},{"type":"object","required":["event","trade_id","at","pool_address","wallet_address","labels","type","token_amount","amount_usd","amount_quote","price_usd","price_quote","market_cap_usd","market_cap_quote"],"properties":{"event":{"type":"string","enum":["labeled_trade"]},"trade_id":{"type":"string","description":"Trade id."},"at":{"type":"integer","format":"int64","description":"Trade time."},"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool address."},"wallet_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Wallet address."},"labels":{"type":"array","items":{"type":"object","required":["label","detail"],"properties":{"label":{"type":"string","description":"Why the wallet is marked, for example dev or kol."},"detail":{"type":["object","null"],"additionalProperties":{},"description":"Extra detail for the label."}}},"description":"Labels on the wallet."},"type":{"type":"string","enum":["buy","sell"],"description":"buy or sell."},"token_amount":{"type":"number","description":"Tokens traded, in whole tokens."},"amount_usd":{"type":"number","description":"Trade value in USD."},"amount_quote":{"type":"number","description":"Trade value in the quote asset."},"price_usd":{"type":"number","description":"Price in USD."},"price_quote":{"type":"number","description":"Price in the quote asset."},"market_cap_usd":{"type":"number","description":"Market cap in USD."},"market_cap_quote":{"type":"number","description":"Market cap in the quote asset."}}}],"discriminator":{"propertyName":"event"}}}}},"subscribe_token_trades":{"name":"subscribe_token_trades","title":"Subscribe: Token Trades","summary":"Every buy and sell of a token across all of its pools as it lands, including pools created after you subscribe, such as the pool a bonding curve migrates to.","payload":{"type":"object","required":["type","stream","payload"],"properties":{"type":{"enum":["subscribe","unsubscribe"]},"stream":{"const":"token_trades"},"payload":{"type":"object","required":["token_address"],"properties":{"token_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token to watch."}}}}}},"event_token_trades":{"name":"event_token_trades","title":"Event: Token Trades","payload":{"type":"object","required":["stream","data"],"properties":{"stream":{"const":"token_trades"},"data":{"type":"object","required":["trade_id","tx_hash","slot","tx_index","event_index","type","wallet_address","token_address","quote_address","pool_address","dex","token_amount","quote_amount","amount_usd","market_cap_quote","market_cap_usd","labels","created_at"],"properties":{"trade_id":{"type":"string","description":"Trade id, unique per trade."},"tx_hash":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{64,90}$","description":"Transaction signature."},"slot":{"type":"integer","description":"Slot the transaction landed in."},"tx_index":{"type":"integer","description":"Position of the transaction within its slot."},"event_index":{"type":"integer","description":"Position of this trade within its transaction; a multi-hop swap has one per pool."},"type":{"type":"string","enum":["buy","sell"],"description":"buy or sell."},"wallet_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Wallet that traded."},"token_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token mint address."},"quote_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Mint of the asset the token is priced against, usually wrapped SOL."},"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool address."},"dex":{"type":["string","null"],"description":"Venue of the pool, for example pumpfun, pumpAmm, raydium, meteora."},"token_amount":{"type":"number","description":"Tokens traded, in whole tokens."},"quote_amount":{"type":"number","description":"Quote asset paid or received."},"amount_usd":{"type":["number","null"],"description":"Trade value in USD."},"market_cap_quote":{"type":"number","description":"Market cap at the trade, in the quote asset."},"market_cap_usd":{"type":["number","null"],"description":"Market cap at the trade, in USD."},"labels":{"type":"array","items":{"type":"string"},"description":"dydt labels on the trader, for example kol."},"created_at":{"type":"integer","format":"int64","description":"Block time."}}}}}},"subscribe_pool_trades":{"name":"subscribe_pool_trades","title":"Subscribe: Pool Trades","summary":"Every buy and sell in a pool as it lands.","payload":{"type":"object","required":["type","stream","payload"],"properties":{"type":{"enum":["subscribe","unsubscribe"]},"stream":{"const":"pool_trades"},"payload":{"type":"object","required":["pool_address"],"properties":{"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool to watch."}}}}}},"event_pool_trades":{"name":"event_pool_trades","title":"Event: Pool Trades","payload":{"type":"object","required":["stream","data"],"properties":{"stream":{"const":"pool_trades"},"data":{"type":"object","required":["trade_id","tx_hash","slot","tx_index","event_index","type","wallet_address","token_address","quote_address","pool_address","dex","token_amount","quote_amount","amount_usd","market_cap_quote","market_cap_usd","labels","created_at"],"properties":{"trade_id":{"type":"string","description":"Trade id, unique per trade."},"tx_hash":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{64,90}$","description":"Transaction signature."},"slot":{"type":"integer","description":"Slot the transaction landed in."},"tx_index":{"type":"integer","description":"Position of the transaction within its slot."},"event_index":{"type":"integer","description":"Position of this trade within its transaction; a multi-hop swap has one per pool."},"type":{"type":"string","enum":["buy","sell"],"description":"buy or sell."},"wallet_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Wallet that traded."},"token_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token mint address."},"quote_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Mint of the asset the token is priced against, usually wrapped SOL."},"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool address."},"dex":{"type":["string","null"],"description":"Venue of the pool, for example pumpfun, pumpAmm, raydium, meteora."},"token_amount":{"type":"number","description":"Tokens traded, in whole tokens."},"quote_amount":{"type":"number","description":"Quote asset paid or received."},"amount_usd":{"type":["number","null"],"description":"Trade value in USD."},"market_cap_quote":{"type":"number","description":"Market cap at the trade, in the quote asset."},"market_cap_usd":{"type":["number","null"],"description":"Market cap at the trade, in USD."},"labels":{"type":"array","items":{"type":"string"},"description":"dydt labels on the trader, for example kol."},"created_at":{"type":"integer","format":"int64","description":"Block time."}}}}}},"subscribe_rankings":{"name":"subscribe_rankings","title":"Subscribe: Discovery Feeds","summary":"A ranked token feed kept current as pools move.","payload":{"type":"object","required":["type","stream","payload"],"properties":{"type":{"enum":["subscribe","unsubscribe"]},"stream":{"const":"rankings"},"payload":{"type":"object","required":["feed","window"],"properties":{"feed":{"type":"string","enum":["new_pair","popular","top_gainers","almost_bonded","migrated","stocks"],"description":"Ranking feed."},"window":{"type":"string","enum":["5m","1h","6h","24h"],"description":"Ranking window. Feeds are ranked over 5m, 1h, 6h or 24h.","default":"1h"}}}}}},"event_rankings":{"name":"event_rankings","title":"Event: Discovery Feeds","description":"A snapshot of the current feed arrives right after you subscribe; each later snapshot replaces the whole feed. New snapshots follow each recompute that changes the feed: every minute for 5m, every 2 minutes for 1h, every 5 minutes for 6h and every 10 minutes for 24h. Live feeds (new_pair, migrated, almost_bonded) also send enter and exit as pools join or leave, and some send window batches with insert and remove ops. Snapshot values are as of the recompute. For tick-by-tick price, market cap and volume on the rows you show, also subscribe to pool_metrics with their pool addresses.","payload":{"type":"object","required":["stream","data"],"properties":{"stream":{"const":"rankings"},"data":{"oneOf":[{"type":"object","required":["event","feed","window","rankings","updated_at"],"properties":{"event":{"type":"string","enum":["snapshot"]},"feed":{"type":"string","description":"Feed name."},"window":{"type":"string","enum":["1m","5m","1h","6h","24h"],"description":"Ranking window."},"rankings":{"type":"array","items":{"type":"object","required":["pool_address","rank","score","entered_at","token","pool","snapshot","totals","windowed"],"properties":{"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool address."},"rank":{"type":"integer","description":"Position in the feed."},"score":{"type":"number","description":"Value the feed ranks by; its meaning depends on the feed."},"entered_at":{"type":["integer","null"],"format":"int64","description":"When the pool entered this feed."},"token":{"type":"object","required":["token_address","symbol","name","image_url","decimals","description","socials","launched_at","mayhem_mode","mayhem_ends_at","creator_fee_destination"],"properties":{"token_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token mint address."},"symbol":{"type":["string","null"],"description":"Token symbol. Symbols are not unique across tokens."},"name":{"type":["string","null"],"description":"Token name."},"image_url":{"type":["string","null"],"format":"uri","description":"Token image URL on the dydt CDN."},"decimals":{"type":["integer","null"],"description":"Token decimals."},"description":{"type":["string","null"],"description":"Token description from its metadata."},"socials":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"Platform name to URL, for example twitter, telegram, website. Only known links are present."},"launched_at":{"type":["integer","null"],"format":"int64","description":"Token creation time."},"mayhem_mode":{"type":"boolean","description":"True for tokens launched in pump.fun Mayhem mode."},"mayhem_ends_at":{"type":["integer","null"],"format":"int64","description":"When Mayhem mode ends; null outside Mayhem mode."},"creator_fee_destination":{"type":"string","enum":["creator","shared","cashback","holders"],"description":"Where creator trading fees are routed."}}},"pool":{"type":["object","null"],"required":["base_address","quote_address","dex","pool_type","created_at","migrated_from_pool_address","migrated_at"],"properties":{"base_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token mint address."},"quote_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Mint of the asset the token is priced against, usually wrapped SOL."},"dex":{"type":["string","null"],"description":"Venue of the pool, for example pumpfun, pumpAmm, raydium, meteora."},"pool_type":{"type":["string","null"],"enum":["bonding_curve","amm","cpmm","clmm"],"description":"Pool model."},"created_at":{"type":["integer","null"],"format":"int64","description":"When dydt first saw the pool."},"migrated_from_pool_address":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Bonding curve pool this pool migrated from."},"migrated_at":{"type":["integer","null"],"format":"int64","description":"Migration time."}},"description":"Pool summary; null when not yet resolved."},"snapshot":{"type":"object","required":["price_quote","price_usd","market_cap_quote","market_cap_usd","liquidity_quote","liquidity_usd","bonding_curve_progress_pct"],"properties":{"price_quote":{"type":"number","description":"Price per token in the quote asset."},"price_usd":{"type":["number","null"],"description":"Price per token in USD."},"market_cap_quote":{"type":"number","description":"Market cap in the quote asset."},"market_cap_usd":{"type":["number","null"],"description":"Market cap in USD."},"liquidity_quote":{"type":"number","description":"Pool liquidity in the quote asset."},"liquidity_usd":{"type":["number","null"],"description":"Pool liquidity in USD."},"bonding_curve_progress_pct":{"type":"number","description":"Bonding curve completion, 0 to 100; 0 after migration."}}},"totals":{"type":"object","required":["volume_quote","volume_usd","buy_volume_quote","buy_volume_usd","sell_volume_quote","sell_volume_usd","trade_count","buy_count","sell_count","ath_market_cap_quote","ath_market_cap_usd","first_trade_at","launch_price_quote","launch_price_usd","price_change_pct_quote","price_change_pct_usd","trader_count","buyer_count","seller_count","holder_count","total_supply","circulating_supply","lp_burned_pct","dev_pct","sniper_pct","bundle_pct","bundler_count","top10_pct","mint_revoked","freeze_revoked","dex_paid","bonding_curve_gain_5m_pct"],"properties":{"volume_quote":{"type":"number","description":"All-time volume in the quote asset."},"volume_usd":{"type":["number","null"],"description":"All-time volume in USD."},"buy_volume_quote":{"type":"number","description":"All-time buy volume in the quote asset."},"buy_volume_usd":{"type":["number","null"],"description":"All-time buy volume in USD."},"sell_volume_quote":{"type":"number","description":"All-time sell volume in the quote asset."},"sell_volume_usd":{"type":["number","null"],"description":"All-time sell volume in USD."},"trade_count":{"type":"integer","description":"All-time trades."},"buy_count":{"type":"integer","description":"All-time buys."},"sell_count":{"type":"integer","description":"All-time sells."},"ath_market_cap_quote":{"type":"number","description":"Highest market cap seen, in the quote asset."},"ath_market_cap_usd":{"type":["number","null"],"description":"Highest market cap seen, in USD."},"first_trade_at":{"type":["integer","null"],"format":"int64","description":"First trade."},"launch_price_quote":{"type":["number","null"],"description":"First traded price in the quote asset."},"launch_price_usd":{"type":["number","null"],"description":"First traded price in USD."},"price_change_pct_quote":{"type":["number","null"],"description":"Price change since launch in quote terms."},"price_change_pct_usd":{"type":["number","null"],"description":"Price change since launch in USD terms."},"trader_count":{"type":"integer","description":"Distinct wallets that have traded the token (approximate)."},"buyer_count":{"type":"integer","description":"Distinct wallets that have bought (approximate)."},"seller_count":{"type":"integer","description":"Distinct wallets that have sold (approximate)."},"holder_count":{"type":["integer","null"],"description":"Wallets holding the token now."},"total_supply":{"type":["number","null"],"description":"Total supply in whole tokens."},"circulating_supply":{"type":["number","null"],"description":"Circulating supply in whole tokens."},"lp_burned_pct":{"type":["number","null"],"description":"Share of LP tokens burned and still locked, 0 to 100."},"dev_pct":{"type":["number","null"],"description":"Share of supply held by the creator, 0 to 100."},"sniper_pct":{"type":["number","null"],"description":"Share of supply held by sniper wallets, 0 to 100."},"bundle_pct":{"type":["number","null"],"description":"Share of supply held by bundled launch buyers, 0 to 100."},"bundler_count":{"type":["integer","null"],"description":"Wallets that bought in bundled launch transactions."},"top10_pct":{"type":["number","null"],"description":"Share of supply held by the 10 largest holders, 0 to 100."},"mint_revoked":{"type":["boolean","null"],"description":"Whether the mint authority is revoked."},"freeze_revoked":{"type":["boolean","null"],"description":"Whether the freeze authority is revoked."},"dex_paid":{"type":["boolean","null"],"description":"Whether a DEX Screener profile was paid for."},"bonding_curve_gain_5m_pct":{"type":["number","null"],"description":"Bonding curve progress gained in the last 5 minutes."}}},"windowed":{"type":"object","required":["t","pp","v","vb","vs","tc","bc","sc","m","bm","sm"],"properties":{"t":{"type":"array","items":{"type":"string","enum":["1m","5m","1h","6h","24h"]},"description":"Windows present, in order. Every other array has one entry per window."},"pp":{"type":"array","items":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"minItems":2,"maxItems":2},"description":"Price change in percent, as [quote, usd]."},"v":{"type":"array","items":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"minItems":2,"maxItems":2},"description":"Volume, as [quote, usd]."},"vb":{"type":"array","items":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"minItems":2,"maxItems":2},"description":"Buy volume, as [quote, usd]."},"vs":{"type":"array","items":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"minItems":2,"maxItems":2},"description":"Sell volume, as [quote, usd]."},"tc":{"type":"array","items":{"type":"integer"},"description":"Trades."},"bc":{"type":"array","items":{"type":"integer"},"description":"Buys."},"sc":{"type":"array","items":{"type":"integer"},"description":"Sells."},"m":{"type":"array","items":{"type":"integer"},"description":"Distinct traders."},"bm":{"type":"array","items":{"type":"integer"},"description":"Distinct buyers."},"sm":{"type":"array","items":{"type":"integer"},"description":"Distinct sellers."}},"description":"Windowed metrics in compact columnar form: t lists the windows and every other array holds one entry per window at the same index."}}},"description":"Ranked pools, best first. Replace what you have."},"updated_at":{"type":"integer","format":"int64","description":"When the feed was computed."}}},{"type":"object","required":["event","feed","pool_address","at","entry"],"properties":{"event":{"type":"string","enum":["enter","exit"]},"feed":{"type":"string","description":"Feed name."},"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool address."},"at":{"type":"integer","format":"int64","description":"When the pool entered or left the feed."},"entry":{"type":["object","null"],"required":["pool_address","rank","score","entered_at","token","pool","snapshot","totals","windowed"],"properties":{"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool address."},"rank":{"type":"integer","description":"Position in the feed."},"score":{"type":"number","description":"Value the feed ranks by; its meaning depends on the feed."},"entered_at":{"type":["integer","null"],"format":"int64","description":"When the pool entered this feed."},"token":{"type":"object","required":["token_address","symbol","name","image_url","decimals","description","socials","launched_at","mayhem_mode","mayhem_ends_at","creator_fee_destination"],"properties":{"token_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token mint address."},"symbol":{"type":["string","null"],"description":"Token symbol. Symbols are not unique across tokens."},"name":{"type":["string","null"],"description":"Token name."},"image_url":{"type":["string","null"],"format":"uri","description":"Token image URL on the dydt CDN."},"decimals":{"type":["integer","null"],"description":"Token decimals."},"description":{"type":["string","null"],"description":"Token description from its metadata."},"socials":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"Platform name to URL, for example twitter, telegram, website. Only known links are present."},"launched_at":{"type":["integer","null"],"format":"int64","description":"Token creation time."},"mayhem_mode":{"type":"boolean","description":"True for tokens launched in pump.fun Mayhem mode."},"mayhem_ends_at":{"type":["integer","null"],"format":"int64","description":"When Mayhem mode ends; null outside Mayhem mode."},"creator_fee_destination":{"type":"string","enum":["creator","shared","cashback","holders"],"description":"Where creator trading fees are routed."}}},"pool":{"type":["object","null"],"required":["base_address","quote_address","dex","pool_type","created_at","migrated_from_pool_address","migrated_at"],"properties":{"base_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token mint address."},"quote_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Mint of the asset the token is priced against, usually wrapped SOL."},"dex":{"type":["string","null"],"description":"Venue of the pool, for example pumpfun, pumpAmm, raydium, meteora."},"pool_type":{"type":["string","null"],"enum":["bonding_curve","amm","cpmm","clmm"],"description":"Pool model."},"created_at":{"type":["integer","null"],"format":"int64","description":"When dydt first saw the pool."},"migrated_from_pool_address":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Bonding curve pool this pool migrated from."},"migrated_at":{"type":["integer","null"],"format":"int64","description":"Migration time."}},"description":"Pool summary; null when not yet resolved."},"snapshot":{"type":"object","required":["price_quote","price_usd","market_cap_quote","market_cap_usd","liquidity_quote","liquidity_usd","bonding_curve_progress_pct"],"properties":{"price_quote":{"type":"number","description":"Price per token in the quote asset."},"price_usd":{"type":["number","null"],"description":"Price per token in USD."},"market_cap_quote":{"type":"number","description":"Market cap in the quote asset."},"market_cap_usd":{"type":["number","null"],"description":"Market cap in USD."},"liquidity_quote":{"type":"number","description":"Pool liquidity in the quote asset."},"liquidity_usd":{"type":["number","null"],"description":"Pool liquidity in USD."},"bonding_curve_progress_pct":{"type":"number","description":"Bonding curve completion, 0 to 100; 0 after migration."}}},"totals":{"type":"object","required":["volume_quote","volume_usd","buy_volume_quote","buy_volume_usd","sell_volume_quote","sell_volume_usd","trade_count","buy_count","sell_count","ath_market_cap_quote","ath_market_cap_usd","first_trade_at","launch_price_quote","launch_price_usd","price_change_pct_quote","price_change_pct_usd","trader_count","buyer_count","seller_count","holder_count","total_supply","circulating_supply","lp_burned_pct","dev_pct","sniper_pct","bundle_pct","bundler_count","top10_pct","mint_revoked","freeze_revoked","dex_paid","bonding_curve_gain_5m_pct"],"properties":{"volume_quote":{"type":"number","description":"All-time volume in the quote asset."},"volume_usd":{"type":["number","null"],"description":"All-time volume in USD."},"buy_volume_quote":{"type":"number","description":"All-time buy volume in the quote asset."},"buy_volume_usd":{"type":["number","null"],"description":"All-time buy volume in USD."},"sell_volume_quote":{"type":"number","description":"All-time sell volume in the quote asset."},"sell_volume_usd":{"type":["number","null"],"description":"All-time sell volume in USD."},"trade_count":{"type":"integer","description":"All-time trades."},"buy_count":{"type":"integer","description":"All-time buys."},"sell_count":{"type":"integer","description":"All-time sells."},"ath_market_cap_quote":{"type":"number","description":"Highest market cap seen, in the quote asset."},"ath_market_cap_usd":{"type":["number","null"],"description":"Highest market cap seen, in USD."},"first_trade_at":{"type":["integer","null"],"format":"int64","description":"First trade."},"launch_price_quote":{"type":["number","null"],"description":"First traded price in the quote asset."},"launch_price_usd":{"type":["number","null"],"description":"First traded price in USD."},"price_change_pct_quote":{"type":["number","null"],"description":"Price change since launch in quote terms."},"price_change_pct_usd":{"type":["number","null"],"description":"Price change since launch in USD terms."},"trader_count":{"type":"integer","description":"Distinct wallets that have traded the token (approximate)."},"buyer_count":{"type":"integer","description":"Distinct wallets that have bought (approximate)."},"seller_count":{"type":"integer","description":"Distinct wallets that have sold (approximate)."},"holder_count":{"type":["integer","null"],"description":"Wallets holding the token now."},"total_supply":{"type":["number","null"],"description":"Total supply in whole tokens."},"circulating_supply":{"type":["number","null"],"description":"Circulating supply in whole tokens."},"lp_burned_pct":{"type":["number","null"],"description":"Share of LP tokens burned and still locked, 0 to 100."},"dev_pct":{"type":["number","null"],"description":"Share of supply held by the creator, 0 to 100."},"sniper_pct":{"type":["number","null"],"description":"Share of supply held by sniper wallets, 0 to 100."},"bundle_pct":{"type":["number","null"],"description":"Share of supply held by bundled launch buyers, 0 to 100."},"bundler_count":{"type":["integer","null"],"description":"Wallets that bought in bundled launch transactions."},"top10_pct":{"type":["number","null"],"description":"Share of supply held by the 10 largest holders, 0 to 100."},"mint_revoked":{"type":["boolean","null"],"description":"Whether the mint authority is revoked."},"freeze_revoked":{"type":["boolean","null"],"description":"Whether the freeze authority is revoked."},"dex_paid":{"type":["boolean","null"],"description":"Whether a DEX Screener profile was paid for."},"bonding_curve_gain_5m_pct":{"type":["number","null"],"description":"Bonding curve progress gained in the last 5 minutes."}}},"windowed":{"type":"object","required":["t","pp","v","vb","vs","tc","bc","sc","m","bm","sm"],"properties":{"t":{"type":"array","items":{"type":"string","enum":["1m","5m","1h","6h","24h"]},"description":"Windows present, in order. Every other array has one entry per window."},"pp":{"type":"array","items":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"minItems":2,"maxItems":2},"description":"Price change in percent, as [quote, usd]."},"v":{"type":"array","items":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"minItems":2,"maxItems":2},"description":"Volume, as [quote, usd]."},"vb":{"type":"array","items":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"minItems":2,"maxItems":2},"description":"Buy volume, as [quote, usd]."},"vs":{"type":"array","items":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"minItems":2,"maxItems":2},"description":"Sell volume, as [quote, usd]."},"tc":{"type":"array","items":{"type":"integer"},"description":"Trades."},"bc":{"type":"array","items":{"type":"integer"},"description":"Buys."},"sc":{"type":"array","items":{"type":"integer"},"description":"Sells."},"m":{"type":"array","items":{"type":"integer"},"description":"Distinct traders."},"bm":{"type":"array","items":{"type":"integer"},"description":"Distinct buyers."},"sm":{"type":"array","items":{"type":"integer"},"description":"Distinct sellers."}},"description":"Windowed metrics in compact columnar form: t lists the windows and every other array holds one entry per window at the same index."}},"description":"The pool's row on enter; null on exit."}}},{"type":"object","required":["event","feed","sort","seq","depth","ops","pool_addresses"],"properties":{"event":{"type":"string","enum":["window"]},"feed":{"type":"string","description":"Feed name."},"sort":{"type":"string","description":"Field the window is ordered by."},"seq":{"type":"integer","description":"Batch sequence; a gap means you missed a batch and should reload."},"depth":{"type":"integer","description":"Rows the window holds."},"ops":{"type":"array","items":{"oneOf":[{"type":"object","required":["op","pool_address","position","entry"],"properties":{"op":{"type":"string","enum":["insert"]},"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool address."},"position":{"type":"integer","description":"Zero-based position to insert at."},"entry":{"type":"object","required":["pool_address","rank","score","entered_at","token","pool","snapshot","totals","windowed"],"properties":{"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool address."},"rank":{"type":"integer","description":"Position in the feed."},"score":{"type":"number","description":"Value the feed ranks by; its meaning depends on the feed."},"entered_at":{"type":["integer","null"],"format":"int64","description":"When the pool entered this feed."},"token":{"type":"object","required":["token_address","symbol","name","image_url","decimals","description","socials","launched_at","mayhem_mode","mayhem_ends_at","creator_fee_destination"],"properties":{"token_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token mint address."},"symbol":{"type":["string","null"],"description":"Token symbol. Symbols are not unique across tokens."},"name":{"type":["string","null"],"description":"Token name."},"image_url":{"type":["string","null"],"format":"uri","description":"Token image URL on the dydt CDN."},"decimals":{"type":["integer","null"],"description":"Token decimals."},"description":{"type":["string","null"],"description":"Token description from its metadata."},"socials":{"type":"object","additionalProperties":{"type":"string","format":"uri"},"description":"Platform name to URL, for example twitter, telegram, website. Only known links are present."},"launched_at":{"type":["integer","null"],"format":"int64","description":"Token creation time."},"mayhem_mode":{"type":"boolean","description":"True for tokens launched in pump.fun Mayhem mode."},"mayhem_ends_at":{"type":["integer","null"],"format":"int64","description":"When Mayhem mode ends; null outside Mayhem mode."},"creator_fee_destination":{"type":"string","enum":["creator","shared","cashback","holders"],"description":"Where creator trading fees are routed."}}},"pool":{"type":["object","null"],"required":["base_address","quote_address","dex","pool_type","created_at","migrated_from_pool_address","migrated_at"],"properties":{"base_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token mint address."},"quote_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Mint of the asset the token is priced against, usually wrapped SOL."},"dex":{"type":["string","null"],"description":"Venue of the pool, for example pumpfun, pumpAmm, raydium, meteora."},"pool_type":{"type":["string","null"],"enum":["bonding_curve","amm","cpmm","clmm"],"description":"Pool model."},"created_at":{"type":["integer","null"],"format":"int64","description":"When dydt first saw the pool."},"migrated_from_pool_address":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Bonding curve pool this pool migrated from."},"migrated_at":{"type":["integer","null"],"format":"int64","description":"Migration time."}},"description":"Pool summary; null when not yet resolved."},"snapshot":{"type":"object","required":["price_quote","price_usd","market_cap_quote","market_cap_usd","liquidity_quote","liquidity_usd","bonding_curve_progress_pct"],"properties":{"price_quote":{"type":"number","description":"Price per token in the quote asset."},"price_usd":{"type":["number","null"],"description":"Price per token in USD."},"market_cap_quote":{"type":"number","description":"Market cap in the quote asset."},"market_cap_usd":{"type":["number","null"],"description":"Market cap in USD."},"liquidity_quote":{"type":"number","description":"Pool liquidity in the quote asset."},"liquidity_usd":{"type":["number","null"],"description":"Pool liquidity in USD."},"bonding_curve_progress_pct":{"type":"number","description":"Bonding curve completion, 0 to 100; 0 after migration."}}},"totals":{"type":"object","required":["volume_quote","volume_usd","buy_volume_quote","buy_volume_usd","sell_volume_quote","sell_volume_usd","trade_count","buy_count","sell_count","ath_market_cap_quote","ath_market_cap_usd","first_trade_at","launch_price_quote","launch_price_usd","price_change_pct_quote","price_change_pct_usd","trader_count","buyer_count","seller_count","holder_count","total_supply","circulating_supply","lp_burned_pct","dev_pct","sniper_pct","bundle_pct","bundler_count","top10_pct","mint_revoked","freeze_revoked","dex_paid","bonding_curve_gain_5m_pct"],"properties":{"volume_quote":{"type":"number","description":"All-time volume in the quote asset."},"volume_usd":{"type":["number","null"],"description":"All-time volume in USD."},"buy_volume_quote":{"type":"number","description":"All-time buy volume in the quote asset."},"buy_volume_usd":{"type":["number","null"],"description":"All-time buy volume in USD."},"sell_volume_quote":{"type":"number","description":"All-time sell volume in the quote asset."},"sell_volume_usd":{"type":["number","null"],"description":"All-time sell volume in USD."},"trade_count":{"type":"integer","description":"All-time trades."},"buy_count":{"type":"integer","description":"All-time buys."},"sell_count":{"type":"integer","description":"All-time sells."},"ath_market_cap_quote":{"type":"number","description":"Highest market cap seen, in the quote asset."},"ath_market_cap_usd":{"type":["number","null"],"description":"Highest market cap seen, in USD."},"first_trade_at":{"type":["integer","null"],"format":"int64","description":"First trade."},"launch_price_quote":{"type":["number","null"],"description":"First traded price in the quote asset."},"launch_price_usd":{"type":["number","null"],"description":"First traded price in USD."},"price_change_pct_quote":{"type":["number","null"],"description":"Price change since launch in quote terms."},"price_change_pct_usd":{"type":["number","null"],"description":"Price change since launch in USD terms."},"trader_count":{"type":"integer","description":"Distinct wallets that have traded the token (approximate)."},"buyer_count":{"type":"integer","description":"Distinct wallets that have bought (approximate)."},"seller_count":{"type":"integer","description":"Distinct wallets that have sold (approximate)."},"holder_count":{"type":["integer","null"],"description":"Wallets holding the token now."},"total_supply":{"type":["number","null"],"description":"Total supply in whole tokens."},"circulating_supply":{"type":["number","null"],"description":"Circulating supply in whole tokens."},"lp_burned_pct":{"type":["number","null"],"description":"Share of LP tokens burned and still locked, 0 to 100."},"dev_pct":{"type":["number","null"],"description":"Share of supply held by the creator, 0 to 100."},"sniper_pct":{"type":["number","null"],"description":"Share of supply held by sniper wallets, 0 to 100."},"bundle_pct":{"type":["number","null"],"description":"Share of supply held by bundled launch buyers, 0 to 100."},"bundler_count":{"type":["integer","null"],"description":"Wallets that bought in bundled launch transactions."},"top10_pct":{"type":["number","null"],"description":"Share of supply held by the 10 largest holders, 0 to 100."},"mint_revoked":{"type":["boolean","null"],"description":"Whether the mint authority is revoked."},"freeze_revoked":{"type":["boolean","null"],"description":"Whether the freeze authority is revoked."},"dex_paid":{"type":["boolean","null"],"description":"Whether a DEX Screener profile was paid for."},"bonding_curve_gain_5m_pct":{"type":["number","null"],"description":"Bonding curve progress gained in the last 5 minutes."}}},"windowed":{"type":"object","required":["t","pp","v","vb","vs","tc","bc","sc","m","bm","sm"],"properties":{"t":{"type":"array","items":{"type":"string","enum":["1m","5m","1h","6h","24h"]},"description":"Windows present, in order. Every other array has one entry per window."},"pp":{"type":"array","items":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"minItems":2,"maxItems":2},"description":"Price change in percent, as [quote, usd]."},"v":{"type":"array","items":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"minItems":2,"maxItems":2},"description":"Volume, as [quote, usd]."},"vb":{"type":"array","items":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"minItems":2,"maxItems":2},"description":"Buy volume, as [quote, usd]."},"vs":{"type":"array","items":{"type":"array","prefixItems":[{"type":["number","null"]},{"type":["number","null"]}],"minItems":2,"maxItems":2},"description":"Sell volume, as [quote, usd]."},"tc":{"type":"array","items":{"type":"integer"},"description":"Trades."},"bc":{"type":"array","items":{"type":"integer"},"description":"Buys."},"sc":{"type":"array","items":{"type":"integer"},"description":"Sells."},"m":{"type":"array","items":{"type":"integer"},"description":"Distinct traders."},"bm":{"type":"array","items":{"type":"integer"},"description":"Distinct buyers."},"sm":{"type":"array","items":{"type":"integer"},"description":"Distinct sellers."}},"description":"Windowed metrics in compact columnar form: t lists the windows and every other array holds one entry per window at the same index."}}}}},{"type":"object","required":["op","pool_address"],"properties":{"op":{"type":"string","enum":["remove"]},"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool address."}}}],"discriminator":{"propertyName":"op"}},"description":"Apply in order."},"pool_addresses":{"type":["array","null"],"items":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool address."},"description":"Full window order on reconcile batches; null otherwise."}}}],"discriminator":{"propertyName":"event"}}}}},"subscribe_token_signals":{"name":"subscribe_token_signals","title":"Subscribe: Token Signals","summary":"New token signals, their later outcomes, and retractions.","payload":{"type":"object","required":["type","stream","payload"],"properties":{"type":{"enum":["subscribe","unsubscribe"]},"stream":{"const":"token_signals"},"payload":{"type":"object","properties":{}}}}},"event_token_signals":{"name":"event_token_signals","title":"Event: Token Signals","payload":{"type":"object","required":["stream","data"],"properties":{"stream":{"const":"token_signals"},"data":{"oneOf":[{"type":"object","required":["event","signal_id","token_address","pool_address","symbol","name","image_url","dex","tier","kind","kinds","confluence","pool_kind","anchor","fast_path","alert_index","triggered_at","detected_at","alert_market_cap_usd","alert_price_usd","alert_liquidity_usd","alert_sol_price_usd","alert_trader_count","entity_count","tier_a_count","tier_b_count","tier_c_count","cohort_buy_usd","buyer_burst","warnings"],"properties":{"event":{"type":"string","enum":["signal"]},"signal_id":{"type":"string","description":"Signal id."},"token_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token mint address."},"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool the signal fired on."},"symbol":{"type":["string","null"],"description":"Token symbol."},"name":{"type":["string","null"],"description":"Token name."},"image_url":{"type":["string","null"],"format":"uri","description":"Token image URL on the dydt CDN."},"dex":{"type":["string","null"],"description":"Venue of the pool, for example pumpfun, pumpAmm, raydium, meteora."},"tier":{"type":"string","enum":["high_conviction","qualified"],"description":"high_conviction marks a Top signal, the highest-scoring alerts on pools past the bonding curve; qualified is every other alert."},"kind":{"type":"string","enum":["cohort","momentum"],"description":"Primary detector that fired."},"kinds":{"type":"array","items":{"type":"string","enum":["cohort","momentum"]},"description":"Every detector that fired."},"confluence":{"type":"boolean","description":"True when more than one detector agreed."},"pool_kind":{"type":"string","enum":["bonding_curve","amm"],"description":"Pool model at the alert."},"anchor":{"type":"boolean","description":"True for the first signal on the token."},"fast_path":{"type":"boolean","description":"Set only on signals from the retired burst detector; always false now."},"alert_index":{"type":"integer","description":"Alert number within the signal, from 1."},"triggered_at":{"type":"integer","format":"int64","description":"Trade that triggered the alert."},"detected_at":{"type":"integer","format":"int64","description":"Detection time."},"alert_market_cap_usd":{"type":"number","description":"Market cap at the alert."},"alert_price_usd":{"type":["number","null"],"description":"Price at the alert."},"alert_liquidity_usd":{"type":"number","description":"Liquidity at the alert."},"alert_sol_price_usd":{"type":["number","null"],"description":"SOL price at the alert."},"alert_trader_count":{"type":["integer","null"],"description":"Distinct traders at the alert."},"entity_count":{"type":"integer","description":"Distinct wallets that bought in the five minutes before the alert."},"tier_a_count":{"type":"integer","description":"Smart wallets among them: a third or more of their buys over the past week doubled within an hour."},"tier_b_count":{"type":"integer","description":"Wallets among them with a measured buy record that are not smart."},"tier_c_count":{"type":"integer","description":"Wallets among them without enough recent buys to measure."},"cohort_buy_usd":{"type":"number","description":"Combined buys by those wallets in the five minutes, in USD."},"buyer_burst":{"type":"number","description":"Buys in the alert minute relative to the 15-minute average; 1 is normal."},"warnings":{"type":"array","items":{"type":"string"},"description":"Caveats, for example dev_share_unknown."}}},{"type":"object","required":["event","signal_id","token_address","pool_address","symbol","name","image_url","peak_market_cap_usd","peak_at","multiple","died_at"],"properties":{"event":{"type":"string","enum":["outcome"]},"signal_id":{"type":"string","description":"Signal id."},"token_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token mint address."},"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool the signal fired on."},"symbol":{"type":["string","null"],"description":"Token symbol."},"name":{"type":["string","null"],"description":"Token name."},"image_url":{"type":["string","null"],"format":"uri","description":"Token image URL on the dydt CDN."},"peak_market_cap_usd":{"type":["number","null"],"description":"Highest market cap since the signal."},"peak_at":{"type":["integer","null"],"format":"int64","description":"Time of that peak."},"multiple":{"type":["number","null"],"description":"Peak market cap over the alert market cap."},"died_at":{"type":["integer","null"],"format":"int64","description":"When the token stopped trading."}}},{"type":"object","required":["event","signal_ids"],"properties":{"event":{"type":"string","enum":["retract"]},"signal_ids":{"type":"array","items":{"type":"string"},"description":"Withdrawn signal ids."}}}],"discriminator":{"propertyName":"event"}}}}},"subscribe_x_posts":{"name":"subscribe_x_posts","title":"Subscribe: Tracked X Posts","summary":"Posts from tracked accounts as they are seen.","payload":{"type":"object","required":["type","stream","payload"],"properties":{"type":{"enum":["subscribe","unsubscribe"]},"stream":{"const":"x_posts"},"payload":{"type":"object","properties":{}}}}},"event_x_posts":{"name":"event_x_posts","title":"Event: Tracked X Posts","payload":{"type":"object","required":["stream","data"],"properties":{"stream":{"const":"x_posts"},"data":{"type":"object","required":["post_id","posted_at","author_handle","author_name","author_avatar_url","author_verified","text","media","links","card","kind","reply_to_handle","reply_parent","quoted_post_id","quoted_handle","quoted_name","quoted_text","quoted_media","like_count","reply_count","repost_count","view_count","tracked_handle","tracked_handle_verified","feed_at","url"],"properties":{"post_id":{"type":"string","description":"Post id."},"posted_at":{"type":"integer","format":"int64","description":"Post time."},"author_handle":{"type":"string","description":"Author handle without @."},"author_name":{"type":["string","null"],"description":"Author display name."},"author_avatar_url":{"type":["string","null"],"format":"uri","description":"Author avatar URL."},"author_verified":{"type":"boolean","description":"Whether the author is verified."},"text":{"type":"string","description":"Post text."},"media":{"type":"array","items":{"type":"object","required":["type","url","poster_url"],"properties":{"type":{"type":"string","enum":["photo","video","animated_gif"],"description":"Media type."},"url":{"type":"string","format":"uri","description":"Media URL."},"poster_url":{"type":["string","null"],"format":"uri","description":"Video poster image URL."}}},"description":"Attached media."},"links":{"type":"array","items":{"type":"object","required":["display","url"],"properties":{"display":{"type":"string","description":"Link text as shown in the post."},"url":{"type":"string","format":"uri","description":"Expanded link URL."}}},"description":"Links in the post."},"card":{"type":["object","null"],"required":["kind","url","title","description","image_url","domain"],"properties":{"kind":{"type":"string","enum":["link","article"],"description":"Card type."},"url":{"type":"string","format":"uri","description":"Card URL."},"title":{"type":["string","null"],"description":"Card title."},"description":{"type":["string","null"],"description":"Card description."},"image_url":{"type":["string","null"],"format":"uri","description":"Card image URL."},"domain":{"type":["string","null"],"description":"Card domain."}},"description":"Link preview card."},"kind":{"type":"string","enum":["post","reply","repost","quote"],"description":"Post type."},"reply_to_handle":{"type":["string","null"],"description":"Handle replied to, for replies."},"reply_parent":{"type":["object","null"],"required":["post_id","posted_at","author_handle","author_name","author_avatar_url","author_verified","text","media","links","card"],"properties":{"post_id":{"type":"string","description":"Post id."},"posted_at":{"type":"integer","format":"int64","description":"Post time."},"author_handle":{"type":"string","description":"Author handle without @."},"author_name":{"type":["string","null"],"description":"Author display name."},"author_avatar_url":{"type":["string","null"],"format":"uri","description":"Author avatar URL."},"author_verified":{"type":"boolean","description":"Whether the author is verified."},"text":{"type":"string","description":"Post text."},"media":{"type":"array","items":{"type":"object","required":["type","url","poster_url"],"properties":{"type":{"type":"string","enum":["photo","video","animated_gif"],"description":"Media type."},"url":{"type":"string","format":"uri","description":"Media URL."},"poster_url":{"type":["string","null"],"format":"uri","description":"Video poster image URL."}}},"description":"Attached media."},"links":{"type":"array","items":{"type":"object","required":["display","url"],"properties":{"display":{"type":"string","description":"Link text as shown in the post."},"url":{"type":"string","format":"uri","description":"Expanded link URL."}}},"description":"Links in the post."},"card":{"type":["object","null"],"required":["kind","url","title","description","image_url","domain"],"properties":{"kind":{"type":"string","enum":["link","article"],"description":"Card type."},"url":{"type":"string","format":"uri","description":"Card URL."},"title":{"type":["string","null"],"description":"Card title."},"description":{"type":["string","null"],"description":"Card description."},"image_url":{"type":["string","null"],"format":"uri","description":"Card image URL."},"domain":{"type":["string","null"],"description":"Card domain."}},"description":"Link preview card."}},"description":"The post being replied to, when known."},"quoted_post_id":{"type":["string","null"],"description":"Quoted post id, for quotes."},"quoted_handle":{"type":["string","null"],"description":"Quoted author handle."},"quoted_name":{"type":["string","null"],"description":"Quoted author name."},"quoted_text":{"type":["string","null"],"description":"Quoted post text."},"quoted_media":{"type":"array","items":{"type":"object","required":["type","url","poster_url"],"properties":{"type":{"type":"string","enum":["photo","video","animated_gif"],"description":"Media type."},"url":{"type":"string","format":"uri","description":"Media URL."},"poster_url":{"type":["string","null"],"format":"uri","description":"Video poster image URL."}}},"description":"Media in the quoted post."},"like_count":{"type":"integer","description":"Likes when captured."},"reply_count":{"type":"integer","description":"Replies when captured."},"repost_count":{"type":"integer","description":"Reposts when captured."},"view_count":{"type":["integer","null"],"description":"Views when captured."},"tracked_handle":{"type":"string","description":"Tracked account that surfaced the post."},"tracked_handle_verified":{"type":"boolean","description":"Whether that account is verified."},"feed_at":{"type":"integer","format":"int64","description":"When the post entered the feed."},"url":{"type":"string","format":"uri","description":"Link to the post on X."}}}}}},"subscribe_wallet_activity":{"name":"subscribe_wallet_activity","title":"Subscribe: Followed Wallet Trades","summary":"Trades by the wallets you watch, with what each did to the position.","payload":{"type":"object","required":["type","stream","payload"],"properties":{"type":{"enum":["subscribe","unsubscribe"]},"stream":{"const":"wallet_activity"},"payload":{"type":"object","required":["wallet_addresses"],"properties":{"wallet_addresses":{"type":"array","items":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$"},"maxItems":100,"description":"Wallets to watch, up to 100."}}}}}},"event_wallet_activity":{"name":"event_wallet_activity","title":"Event: Followed Wallet Trades","payload":{"type":"object","required":["stream","data"],"properties":{"stream":{"const":"wallet_activity"},"data":{"type":"object","required":["trade_id","tx_hash","slot","tx_index","event_index","wallet_address","token_address","quote_address","pool_address","type","position_action","amount_usd","amount_sol","market_cap_usd","market_cap_quote","realized_pnl_usd","realized_pnl_sol","realized_reliable","multiple","remaining_pct","symbol","name","image_url","dex","current_market_cap_usd","current_market_cap_quote","current_liquidity_usd","trader","trader_last_day","created_at"],"properties":{"trade_id":{"type":"string","description":"Trade id."},"tx_hash":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{64,90}$","description":"Transaction signature."},"slot":{"type":"integer","description":"Slot the transaction landed in."},"tx_index":{"type":"integer","description":"Position of the transaction within its slot."},"event_index":{"type":"integer","description":"Position of this trade within its transaction; a multi-hop swap has one per pool."},"wallet_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Watched wallet that traded."},"token_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token mint address."},"quote_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Mint of the asset the token is priced against, usually wrapped SOL."},"pool_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool address."},"type":{"type":"string","enum":["buy","sell"],"description":"buy or sell."},"position_action":{"type":"string","enum":["new","add","reentry","partial","full_exit","unknown"],"description":"What the trade did to the position."},"amount_usd":{"type":["number","null"],"description":"Trade value in USD."},"amount_sol":{"type":["number","null"],"description":"Trade value in SOL."},"market_cap_usd":{"type":["number","null"],"description":"Market cap at the trade, in USD."},"market_cap_quote":{"type":["number","null"],"description":"Market cap at the trade, in the quote asset."},"realized_pnl_usd":{"type":["number","null"],"description":"Profit realized by this sell, in USD."},"realized_pnl_sol":{"type":["number","null"],"description":"Profit realized by this sell, in SOL."},"realized_reliable":{"type":"boolean","description":"False when part of the position was bought outside tracked trades."},"multiple":{"type":["number","null"],"description":"Exit value over cost for this sell."},"remaining_pct":{"type":["number","null"],"description":"Share of the position still held after the trade, 0 to 100."},"symbol":{"type":["string","null"],"description":"Token symbol."},"name":{"type":["string","null"],"description":"Token name."},"image_url":{"type":["string","null"],"format":"uri","description":"Token image URL on the dydt CDN."},"dex":{"type":["string","null"],"description":"Venue of the pool, for example pumpfun, pumpAmm, raydium, meteora."},"current_market_cap_usd":{"type":["number","null"],"description":"Market cap now, in USD."},"current_market_cap_quote":{"type":["number","null"],"description":"Market cap now, in the quote asset."},"current_liquidity_usd":{"type":["number","null"],"description":"Liquidity now, in USD."},"trader":{"type":["object","null"],"required":["bot","labels","token_count","trade_count","win_rate_pct","style","median_multiple","avg_hold_seconds"],"properties":{"bot":{"type":"boolean","description":"True when the wallet trades like a bot."},"labels":{"type":"array","items":{"type":"string"},"description":"dydt labels on the wallet, for example kol."},"token_count":{"type":["integer","null"],"description":"Tokens traded."},"trade_count":{"type":["integer","null"],"description":"Trades made."},"win_rate_pct":{"type":["number","null"],"description":"Share of closed positions in profit, 0 to 100."},"style":{"type":["string","null"],"description":"Trading style, for example sniper."},"median_multiple":{"type":["number","null"],"description":"Median exit value over cost."},"avg_hold_seconds":{"type":["integer","null"],"description":"Average holding time in seconds."}},"description":"Long-run profile of the trader."},"trader_last_day":{"type":["object","null"],"required":["win_rate_pct","trade_count","token_count","realized_pnl_sol","realized_pnl_usd","hours"],"properties":{"win_rate_pct":{"type":["number","null"],"description":"Share of closed positions in profit, 0 to 100."},"trade_count":{"type":["integer","null"],"description":"Trades made."},"token_count":{"type":["integer","null"],"description":"Tokens traded."},"realized_pnl_sol":{"type":["number","null"],"description":"Realized profit in SOL."},"realized_pnl_usd":{"type":["number","null"],"description":"Realized profit in USD."},"hours":{"type":"array","items":{"type":"object","required":["pnl_sol","pnl_usd","trade_count"],"properties":{"pnl_sol":{"type":"number","description":"Realized profit in SOL that hour."},"pnl_usd":{"type":"number","description":"Realized profit in USD that hour."},"trade_count":{"type":"integer","description":"Trades that hour."}}},"description":"Hourly breakdown, oldest first."}},"description":"The trader's last 24 hours."},"created_at":{"type":"integer","format":"int64","description":"Block time."}}}}}},"subscribe_wallet_signals":{"name":"subscribe_wallet_signals","title":"Subscribe: Wallet Signals","summary":"Closed positions by tracked traders as they happen, and retractions.","payload":{"type":"object","required":["type","stream","payload"],"properties":{"type":{"enum":["subscribe","unsubscribe"]},"stream":{"const":"wallet_signals"},"payload":{"type":"object","properties":{}}}}},"event_wallet_signals":{"name":"event_wallet_signals","title":"Event: Wallet Signals","payload":{"type":"object","required":["stream","data"],"properties":{"stream":{"const":"wallet_signals"},"data":{"oneOf":[{"type":"object","required":["signal_id","wallet_address","token_address","quote_address","pool_address","symbol","name","image_url","dex","opened_at","closed_at","hold_seconds","multiple","cost_usd","cost_sol","realized_pnl_usd","realized_pnl_sol","entry_price_usd","entry_price_sol","exit_price_usd","exit_price_sol","entry_market_cap_usd","entry_market_cap_quote","exit_market_cap_usd","exit_market_cap_quote","entry_liquidity_usd","current_market_cap_usd","current_liquidity_usd","buy_count","sell_count","untracked_pct","sold_pct","trader","trader_last_day","enriched","event"],"properties":{"signal_id":{"type":"string","description":"Signal id."},"wallet_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Wallet that closed the position."},"token_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Token mint address."},"quote_address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Mint of the asset the token is priced against, usually wrapped SOL."},"pool_address":{"type":["string","null"],"pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Pool address."},"symbol":{"type":["string","null"],"description":"Token symbol."},"name":{"type":["string","null"],"description":"Token name."},"image_url":{"type":["string","null"],"format":"uri","description":"Token image URL on the dydt CDN."},"dex":{"type":["string","null"],"description":"Venue of the pool, for example pumpfun, pumpAmm, raydium, meteora."},"opened_at":{"type":["integer","null"],"format":"int64","description":"Position opened."},"closed_at":{"type":"integer","format":"int64","description":"Position closed."},"hold_seconds":{"type":["integer","null"],"description":"Seconds between open and close."},"multiple":{"type":["number","null"],"description":"Exit value over cost; 2 means the position doubled."},"cost_usd":{"type":["number","null"],"description":"Cost in USD."},"cost_sol":{"type":["number","null"],"description":"Cost in SOL."},"realized_pnl_usd":{"type":["number","null"],"description":"Realized profit in USD."},"realized_pnl_sol":{"type":["number","null"],"description":"Realized profit in SOL."},"entry_price_usd":{"type":["number","null"],"description":"Average entry price in USD."},"entry_price_sol":{"type":["number","null"],"description":"Average entry price in SOL."},"exit_price_usd":{"type":["number","null"],"description":"Average exit price in USD."},"exit_price_sol":{"type":["number","null"],"description":"Average exit price in SOL."},"entry_market_cap_usd":{"type":["number","null"],"description":"Market cap at entry, in USD."},"entry_market_cap_quote":{"type":["number","null"],"description":"Market cap at entry, in the quote asset."},"exit_market_cap_usd":{"type":["number","null"],"description":"Market cap at exit, in USD."},"exit_market_cap_quote":{"type":["number","null"],"description":"Market cap at exit, in the quote asset."},"entry_liquidity_usd":{"type":["number","null"],"description":"Liquidity at entry, in USD."},"current_market_cap_usd":{"type":["number","null"],"description":"Market cap now."},"current_liquidity_usd":{"type":["number","null"],"description":"Liquidity now."},"buy_count":{"type":["integer","null"],"description":"Buys in the position."},"sell_count":{"type":["integer","null"],"description":"Sells in the position."},"untracked_pct":{"type":["number","null"],"description":"Share of the position bought outside tracked trades, 0 to 100."},"sold_pct":{"type":["number","null"],"description":"Share of the position sold, 0 to 100."},"trader":{"type":["object","null"],"required":["bot","labels","token_count","trade_count","win_rate_pct","style","median_multiple","avg_hold_seconds"],"properties":{"bot":{"type":"boolean","description":"True when the wallet trades like a bot."},"labels":{"type":"array","items":{"type":"string"},"description":"dydt labels on the wallet, for example kol."},"token_count":{"type":["integer","null"],"description":"Tokens traded."},"trade_count":{"type":["integer","null"],"description":"Trades made."},"win_rate_pct":{"type":["number","null"],"description":"Share of closed positions in profit, 0 to 100."},"style":{"type":["string","null"],"description":"Trading style, for example sniper."},"median_multiple":{"type":["number","null"],"description":"Median exit value over cost."},"avg_hold_seconds":{"type":["integer","null"],"description":"Average holding time in seconds."}},"description":"Long-run profile of the trader."},"trader_last_day":{"type":["object","null"],"required":["win_rate_pct","trade_count","token_count","realized_pnl_sol","realized_pnl_usd","hours"],"properties":{"win_rate_pct":{"type":["number","null"],"description":"Share of closed positions in profit, 0 to 100."},"trade_count":{"type":["integer","null"],"description":"Trades made."},"token_count":{"type":["integer","null"],"description":"Tokens traded."},"realized_pnl_sol":{"type":["number","null"],"description":"Realized profit in SOL."},"realized_pnl_usd":{"type":["number","null"],"description":"Realized profit in USD."},"hours":{"type":"array","items":{"type":"object","required":["pnl_sol","pnl_usd","trade_count"],"properties":{"pnl_sol":{"type":"number","description":"Realized profit in SOL that hour."},"pnl_usd":{"type":"number","description":"Realized profit in USD that hour."},"trade_count":{"type":"integer","description":"Trades that hour."}}},"description":"Hourly breakdown, oldest first."}},"description":"The trader's last 24 hours."},"enriched":{"type":"boolean","description":"True once trader details are attached."},"event":{"type":"string","enum":["signal"]}}},{"type":"object","required":["event","signal_ids"],"properties":{"event":{"type":"string","enum":["retract"]},"signal_ids":{"type":"array","items":{"type":"string"},"description":"Withdrawn signal ids."}}}],"discriminator":{"propertyName":"event"}}}}},"auth":{"name":"auth","summary":"First frame when the key is not sent as a header.","payload":{"type":"object","required":["type","key"],"properties":{"type":{"const":"auth"},"key":{"type":"string"}}}},"ping":{"name":"ping","payload":{"type":"object","properties":{"type":{"const":"ping"}}}},"pong":{"name":"pong","payload":{"type":"object","properties":{"type":{"const":"pong"}}}},"error":{"name":"error","summary":"A frame was rejected; message explains why.","payload":{"type":"object","properties":{"type":{"const":"error"},"message":{"type":"string"}}}}}}}