{"asyncapi":"3.0.0","id":"urn:com:madeonsol:push","info":{"title":"MadeOnSol push API (WebSocket streams + webhooks)","version":"1.0.0","description":"Generated from MadeOnSol's canonical registries (services/shared/stream-channels.mjs, src/lib/webhook-events.ts, src/lib/event-contracts.ts); the REST surface is /api/v1/openapi.json.\n\n**WebSocket auth.** Mint a stream token with POST /api/v1/stream/token (msk_ API key; PRO+). Connect with `Authorization: Bearer <token>` on the handshake (preferred) or `?token=<token>`. An msk_ API key is NOT accepted on the socket (close 4001). Nothing is delivered until you subscribe.\n\n**Ordering and replay.** Every event frame carries a stable `id` (dedupe at-least-once) and a per-instance monotonic `seq`. Resume with subscribe {resume:{instance, seq, ts}}: the server sends replay_start … frames … replay_end before any live frame for that subscription. Named subscriptions: up to {\"PRO\":5,\"ULTRA\":10,\"BUSINESS\":20,\"ENTERPRISE\":20} per connection, the default one included.\n\n**State streams.** token:prices / rhc:token_prices (≤ 1 tick per token per 250 ms) and candle updates (≤ 1 per token per 1000 ms) are coalesced state, not events: resume gives a fresh snapshot, not a replay.\n\n**Webhooks.** POST with body {event, data, timestamp}. Signature = hex HMAC-SHA256 over `<X-MadeOnSol-Timestamp>.<raw body>` with your webhook secret; the timestamp (epoch ms) and signature are regenerated per attempt. Registry webhooks: 4 attempts (delays 0 / 5000 / 30000 / 120000 ms, ±30 % jitter, 10000 ms timeout); 3xx and 4xx other than 429 are permanent (no retry); auto-disabled after 10 consecutive failures (the owner is emailed). Per-rule webhooks: 3 attempts (0 / 5000 / 30000 ms, 8000 ms timeout), never sent unsigned.\n\nPerspective: operations describe the MadeOnSol server (`send` = MadeOnSol pushes; `receive` = MadeOnSol accepts from your client).","contact":{"name":"MadeOnSol","url":"https://madeonsol.com/api-docs"},"externalDocs":{"url":"https://madeonsol.com/api-docs"},"x-madeonsol-close-codes":{"1001":"Server shutting down — reconnect","1013":"Too many connections (server-wide) — retry with backoff","4001":"Missing, invalid or expired stream token (an msk_ API key is NOT a stream token), or the subscription lapsed","4002":"Connection limit for your tier reached (another socket holds the slot), or the DEX stream requires ULTRA","4003":"Authentication error (token lookup failed server-side) — retry","4008":"Slow consumer: send buffer overflowed — reconnect with resume"}},"defaultContentType":"application/json","servers":{"stream":{"host":"madeonsol.com","pathname":"/ws/v1/stream","protocol":"wss","title":"Signals stream","description":"KOL / deployer / signal / RHC / token channels (33 channels).","security":[{"$ref":"#/components/securitySchemes/streamTokenBearer"},{"$ref":"#/components/securitySchemes/streamTokenQuery"}]},"dexStream":{"host":"madeonsol.com","pathname":"/ws/v1/dex-stream","protocol":"wss","title":"Solana DEX firehose (ULTRA+)","description":"Filter-subscribed trade firehose; dex_ws_url in the POST /api/v1/stream/token response.","security":[{"$ref":"#/components/securitySchemes/streamTokenBearer"},{"$ref":"#/components/securitySchemes/streamTokenQuery"}]},"earlyStream":{"host":"madeonsol.com","pathname":"/ws/v1/early","protocol":"wss","title":"ShredPrism early Solana stream (ULTRA+)","description":"Six supported outer-instruction signal families. Discovered as early_ws_url / early_stream.channels in POST /api/v1/stream/token. Observations are provisional and outcomes follow separately.","security":[{"$ref":"#/components/securitySchemes/streamTokenBearer"},{"$ref":"#/components/securitySchemes/streamTokenQuery"}]},"webhookReceiver":{"host":"{receiverHost}","pathname":"{receiverPath}","protocol":"https","title":"Your webhook endpoint","description":"The HTTPS URL you registered (public addresses only).","variables":{"receiverHost":{"default":"example.com"},"receiverPath":{"default":"/madeonsol-webhook"}},"security":[{"$ref":"#/components/securitySchemes/webhookSignature"}]}},"channels":{"stream_control":{"address":null,"title":"ws-streaming control","description":"Control frames on wss://madeonsol.com/ws/v1/stream (client → server: subscribe/update/unsubscribe/list; server → client: acks, warnings, heartbeat, replay framing). Rate limit: 32 client frames/s (excess dropped). Max inbound frame 65536 bytes.","servers":[{"$ref":"#/servers/stream"}],"messages":{"subscribe":{"$ref":"#/components/messages/stream.subscribe"},"update":{"$ref":"#/components/messages/stream.update"},"unsubscribe":{"$ref":"#/components/messages/stream.unsubscribe"},"list":{"$ref":"#/components/messages/stream.list"},"connected":{"$ref":"#/components/messages/stream.connected"},"hint":{"$ref":"#/components/messages/stream.hint"},"heartbeat":{"$ref":"#/components/messages/stream.heartbeat"},"subscribed":{"$ref":"#/components/messages/stream.subscribed"},"updated":{"$ref":"#/components/messages/stream.updated"},"unsubscribed":{"$ref":"#/components/messages/stream.unsubscribed"},"subscriptions":{"$ref":"#/components/messages/stream.subscriptions"},"warning":{"$ref":"#/components/messages/stream.warning"},"replayStart":{"$ref":"#/components/messages/stream.replay_start"},"replayEnd":{"$ref":"#/components/messages/stream.replay_end"},"tokenRefresh":{"$ref":"#/components/messages/stream.token_refresh"}}},"stream_kol_trades":{"address":"kol:trades","title":"kol:trades","description":"Stream channel `kol:trades` (subscribe {\"type\":\"subscribe\",\"channels\":[\"kol:trades\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"kol_trade":{"$ref":"#/components/messages/stream_event_kol_trade"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"]},"stream_kol_coordination":{"address":"kol:coordination","title":"kol:coordination","description":"Stream channel `kol:coordination` (subscribe {\"type\":\"subscribe\",\"channels\":[\"kol:coordination\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE. User-scoped: only your own rules'/watchlists' events reach you.","servers":[{"$ref":"#/servers/stream"}],"messages":{"kol_coordination":{"$ref":"#/components/messages/stream_event_kol_coordination"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-user-scoped":true},"stream_kol_first_touches":{"address":"kol:first_touches","title":"kol:first_touches","description":"Stream channel `kol:first_touches` (subscribe {\"type\":\"subscribe\",\"channels\":[\"kol:first_touches\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"kol_first_touch":{"$ref":"#/components/messages/stream_event_kol_first_touch"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"]},"stream_deployer_alerts":{"address":"deployer:alerts","title":"deployer:alerts","description":"Stream channel `deployer:alerts` (subscribe {\"type\":\"subscribe\",\"channels\":[\"deployer:alerts\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"deployer_alert":{"$ref":"#/components/messages/stream_event_deployer_alert"},"deployer_bond":{"$ref":"#/components/messages/stream_event_deployer_bond"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"]},"stream_wallet_tracker_events":{"address":"wallet_tracker:events","title":"wallet_tracker:events","description":"Stream channel `wallet_tracker:events` (subscribe {\"type\":\"subscribe\",\"channels\":[\"wallet_tracker:events\"]}). Tiers: ULTRA, BUSINESS, ENTERPRISE. User-scoped: only your own rules'/watchlists' events reach you.","servers":[{"$ref":"#/servers/stream"}],"messages":{"wallet_tracker_event":{"$ref":"#/components/messages/stream_event_wallet_tracker_event"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-user-scoped":true},"stream_copytrade_signals":{"address":"copytrade:signals","title":"copytrade:signals","description":"Stream channel `copytrade:signals` (subscribe {\"type\":\"subscribe\",\"channels\":[\"copytrade:signals\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE. User-scoped: only your own rules'/watchlists' events reach you.","servers":[{"$ref":"#/servers/stream"}],"messages":{"copytrade_signal":{"$ref":"#/components/messages/stream_event_copytrade_signal"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-user-scoped":true},"stream_price_alert_events":{"address":"price_alert:events","title":"price_alert:events","description":"Stream channel `price_alert:events` (subscribe {\"type\":\"subscribe\",\"channels\":[\"price_alert:events\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE. User-scoped: only your own rules'/watchlists' events reach you.","servers":[{"$ref":"#/servers/stream"}],"messages":{"price_alert_dip":{"$ref":"#/components/messages/stream_event_price_alert_dip"},"price_alert_recovery":{"$ref":"#/components/messages/stream_event_price_alert_recovery"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-user-scoped":true},"stream_sniper_deploys":{"address":"sniper:deploys","title":"sniper:deploys","description":"Stream channel `sniper:deploys` (subscribe {\"type\":\"subscribe\",\"channels\":[\"sniper:deploys\"]}). Tiers: ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"sniper_deploy":{"$ref":"#/components/messages/stream_event_sniper_deploy"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"]},"stream_token_graduations":{"address":"token:graduations","title":"token:graduations","description":"Stream channel `token:graduations` (subscribe {\"type\":\"subscribe\",\"channels\":[\"token:graduations\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"token_graduation":{"$ref":"#/components/messages/stream_event_token_graduation"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"]},"stream_token_prices":{"address":"token:prices","title":"token:prices","description":"Stream channel `token:prices` (subscribe {\"type\":\"subscribe\",\"channels\":[\"token:prices\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE. filters.mints is REQUIRED, capped per connection: {\"PRO\":25,\"ULTRA\":100,\"BUSINESS\":250,\"ENTERPRISE\":250} (over the cap the channel is rejected, never truncated).","servers":[{"$ref":"#/servers/stream"}],"messages":{"token_price":{"$ref":"#/components/messages/stream_event_token_price"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-scope":{"filter":"mints","required":true,"caps":{"PRO":25,"ULTRA":100,"BUSINESS":250,"ENTERPRISE":250}}},"stream_token_locks":{"address":"token:locks","title":"token:locks","description":"Stream channel `token:locks` (subscribe {\"type\":\"subscribe\",\"channels\":[\"token:locks\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"token_lock":{"$ref":"#/components/messages/stream_event_token_lock"},"token_lock_claimed":{"$ref":"#/components/messages/stream_event_token_lock_claimed"},"token_lock_cancelled":{"$ref":"#/components/messages/stream_event_token_lock_cancelled"},"token_lock_closed":{"$ref":"#/components/messages/stream_event_token_lock_closed"},"token_lock_updated":{"$ref":"#/components/messages/stream_event_token_lock_updated"},"token_unlock_upcoming":{"$ref":"#/components/messages/stream_event_token_unlock_upcoming"},"token_unlock_available":{"$ref":"#/components/messages/stream_event_token_unlock_available"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"]},"stream_token_fee_claims":{"address":"token:fee_claims","title":"token:fee_claims","description":"Stream channel `token:fee_claims` (subscribe {\"type\":\"subscribe\",\"channels\":[\"token:fee_claims\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"token_fee_claim":{"$ref":"#/components/messages/stream_event_token_fee_claim"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"]},"stream_token_surges":{"address":"token:surges","title":"token:surges","description":"Stream channel `token:surges` (subscribe {\"type\":\"subscribe\",\"channels\":[\"token:surges\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"token_surge":{"$ref":"#/components/messages/stream_event_token_surge"},"token_revival":{"$ref":"#/components/messages/stream_event_token_revival"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"]},"stream_rhc_kol_trades":{"address":"rhc:kol_trades","title":"rhc:kol_trades","description":"Stream channel `rhc:kol_trades` (subscribe {\"type\":\"subscribe\",\"channels\":[\"rhc:kol_trades\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"rhc_kol_trade":{"$ref":"#/components/messages/stream_event_rhc_kol_trade"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"]},"stream_rhc_dex_trades":{"address":"rhc:dex_trades","title":"rhc:dex_trades","description":"Stream channel `rhc:dex_trades` (subscribe {\"type\":\"subscribe\",\"channels\":[\"rhc:dex_trades\"]}). Tiers: ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"rhc_dex_trade":{"$ref":"#/components/messages/stream_event_rhc_dex_trade"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"]},"stream_rhc_dex_trades_unattributed":{"address":"rhc:dex_trades_unattributed","title":"rhc:dex_trades_unattributed","description":"Stream channel `rhc:dex_trades_unattributed` (subscribe {\"type\":\"subscribe\",\"channels\":[\"rhc:dex_trades_unattributed\"]}). Tiers: ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"rhc_dex_trade_unattributed":{"$ref":"#/components/messages/stream_event_rhc_dex_trade_unattributed"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"]},"stream_rhc_new_tokens":{"address":"rhc:new_tokens","title":"rhc:new_tokens","description":"Stream channel `rhc:new_tokens` (subscribe {\"type\":\"subscribe\",\"channels\":[\"rhc:new_tokens\"]}). Tiers: ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"rhc_new_token":{"$ref":"#/components/messages/stream_event_rhc_new_token"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"]},"stream_rhc_copytrade_signals":{"address":"rhc:copytrade:signals","title":"rhc:copytrade:signals","description":"Stream channel `rhc:copytrade:signals` (subscribe {\"type\":\"subscribe\",\"channels\":[\"rhc:copytrade:signals\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE. User-scoped: only your own rules'/watchlists' events reach you.","servers":[{"$ref":"#/servers/stream"}],"messages":{"rhc_copytrade_signal":{"$ref":"#/components/messages/stream_event_rhc_copytrade_signal"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-user-scoped":true},"stream_rhc_price_alert_events":{"address":"rhc:price_alert:events","title":"rhc:price_alert:events","description":"Stream channel `rhc:price_alert:events` (subscribe {\"type\":\"subscribe\",\"channels\":[\"rhc:price_alert:events\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE. User-scoped: only your own rules'/watchlists' events reach you.","servers":[{"$ref":"#/servers/stream"}],"messages":{"rhc_price_alert_dip":{"$ref":"#/components/messages/stream_event_rhc_price_alert_dip"},"rhc_price_alert_recovery":{"$ref":"#/components/messages/stream_event_rhc_price_alert_recovery"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-user-scoped":true},"stream_rhc_kol_coordination":{"address":"rhc:kol:coordination","title":"rhc:kol:coordination","description":"Stream channel `rhc:kol:coordination` (subscribe {\"type\":\"subscribe\",\"channels\":[\"rhc:kol:coordination\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE. User-scoped: only your own rules'/watchlists' events reach you.","servers":[{"$ref":"#/servers/stream"}],"messages":{"rhc_kol_coordination":{"$ref":"#/components/messages/stream_event_rhc_kol_coordination"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-user-scoped":true},"stream_rhc_kol_first_touches":{"address":"rhc:kol:first_touches","title":"rhc:kol:first_touches","description":"Stream channel `rhc:kol:first_touches` (subscribe {\"type\":\"subscribe\",\"channels\":[\"rhc:kol:first_touches\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"rhc_kol_first_touch":{"$ref":"#/components/messages/stream_event_rhc_kol_first_touch"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"]},"stream_rhc_token_locks":{"address":"rhc:token_locks","title":"rhc:token_locks","description":"Stream channel `rhc:token_locks` (subscribe {\"type\":\"subscribe\",\"channels\":[\"rhc:token_locks\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"rhc_token_lock":{"$ref":"#/components/messages/stream_event_rhc_token_lock"},"rhc_token_unlock_upcoming":{"$ref":"#/components/messages/stream_event_rhc_token_unlock_upcoming"},"rhc_token_unlock_available":{"$ref":"#/components/messages/stream_event_rhc_token_unlock_available"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"]},"stream_rhc_token_prices":{"address":"rhc:token_prices","title":"rhc:token_prices","description":"Stream channel `rhc:token_prices` (subscribe {\"type\":\"subscribe\",\"channels\":[\"rhc:token_prices\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE. filters.addresses is REQUIRED, capped per connection: {\"PRO\":25,\"ULTRA\":100,\"BUSINESS\":250,\"ENTERPRISE\":250} (over the cap the channel is rejected, never truncated).","servers":[{"$ref":"#/servers/stream"}],"messages":{"rhc_token_price":{"$ref":"#/components/messages/stream_event_rhc_token_price"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-scope":{"filter":"addresses","required":true,"caps":{"PRO":25,"ULTRA":100,"BUSINESS":250,"ENTERPRISE":250}}},"stream_rhc_lp_events":{"address":"rhc:lp_events","title":"rhc:lp_events","description":"Stream channel `rhc:lp_events` (subscribe {\"type\":\"subscribe\",\"channels\":[\"rhc:lp_events\"]}). Tiers: ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"rhc_lp_event":{"$ref":"#/components/messages/stream_event_rhc_lp_event"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"]},"stream_token_candles":{"address":"token:candles","title":"token:candles","description":"Stream channel `token:candles` (subscribe {\"type\":\"subscribe\",\"channels\":[\"token:candles\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE. filters.mints is REQUIRED, capped per connection: {\"PRO\":25,\"ULTRA\":100,\"BUSINESS\":250,\"ENTERPRISE\":250} (over the cap the channel is rejected, never truncated).","servers":[{"$ref":"#/servers/stream"}],"messages":{"candle_closed":{"$ref":"#/components/messages/stream_event_candle_closed"},"candle_update":{"$ref":"#/components/messages/stream_event_candle_update"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-scope":{"filter":"mints","required":true,"caps":{"PRO":25,"ULTRA":100,"BUSINESS":250,"ENTERPRISE":250}}},"stream_rhc_token_candles":{"address":"rhc:token_candles","title":"rhc:token_candles","description":"Stream channel `rhc:token_candles` (subscribe {\"type\":\"subscribe\",\"channels\":[\"rhc:token_candles\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE. filters.addresses is REQUIRED, capped per connection: {\"PRO\":25,\"ULTRA\":100,\"BUSINESS\":250,\"ENTERPRISE\":250} (over the cap the channel is rejected, never truncated).","servers":[{"$ref":"#/servers/stream"}],"messages":{"rhc_candle_closed":{"$ref":"#/components/messages/stream_event_rhc_candle_closed"},"rhc_candle_revised":{"$ref":"#/components/messages/stream_event_rhc_candle_revised"},"rhc_candle_update":{"$ref":"#/components/messages/stream_event_rhc_candle_update"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-scope":{"filter":"addresses","required":true,"caps":{"PRO":25,"ULTRA":100,"BUSINESS":250,"ENTERPRISE":250}}},"stream_token_risk":{"address":"token:risk","title":"token:risk","description":"Stream channel `token:risk` (subscribe {\"type\":\"subscribe\",\"channels\":[\"token:risk\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE. filters.mints is REQUIRED, capped per connection: {\"PRO\":25,\"ULTRA\":100,\"BUSINESS\":250,\"ENTERPRISE\":250} (over the cap the channel is rejected, never truncated).","servers":[{"$ref":"#/servers/stream"}],"messages":{"risk_authority_changed":{"$ref":"#/components/messages/stream_event_risk_authority_changed"},"risk_supply_inflated":{"$ref":"#/components/messages/stream_event_risk_supply_inflated"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-scope":{"filter":"mints","required":true,"caps":{"PRO":25,"ULTRA":100,"BUSINESS":250,"ENTERPRISE":250}}},"stream_rhc_token_risk":{"address":"rhc:token_risk","title":"rhc:token_risk","description":"Stream channel `rhc:token_risk` (subscribe {\"type\":\"subscribe\",\"channels\":[\"rhc:token_risk\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE. filters.addresses is REQUIRED, capped per connection: {\"PRO\":25,\"ULTRA\":100,\"BUSINESS\":250,\"ENTERPRISE\":250} (over the cap the channel is rejected, never truncated).","servers":[{"$ref":"#/servers/stream"}],"messages":{"rhc_risk_verdict_changed":{"$ref":"#/components/messages/stream_event_rhc_risk_verdict_changed"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-scope":{"filter":"addresses","required":true,"caps":{"PRO":25,"ULTRA":100,"BUSINESS":250,"ENTERPRISE":250}}},"stream_wallet_scores":{"address":"wallet:scores","title":"wallet:scores","description":"Stream channel `wallet:scores` (subscribe {\"type\":\"subscribe\",\"channels\":[\"wallet:scores\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE. filters.wallets is REQUIRED, capped per connection: {\"PRO\":25,\"ULTRA\":100,\"BUSINESS\":250,\"ENTERPRISE\":250} (over the cap the channel is rejected, never truncated).","servers":[{"$ref":"#/servers/stream"}],"messages":{"deployer_tier_changed":{"$ref":"#/components/messages/stream_event_deployer_tier_changed"},"kol_score_state_changed":{"$ref":"#/components/messages/stream_event_kol_score_state_changed"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-scope":{"filter":"wallets","required":true,"caps":{"PRO":25,"ULTRA":100,"BUSINESS":250,"ENTERPRISE":250}},"x-madeonsol-score-events":["deployer:tier_changed","kol:score_state_changed"]},"stream_rhc_wallet_scores":{"address":"rhc:wallet_scores","title":"rhc:wallet_scores","description":"Stream channel `rhc:wallet_scores` (subscribe {\"type\":\"subscribe\",\"channels\":[\"rhc:wallet_scores\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE. filters.wallets is REQUIRED, capped per connection: {\"PRO\":25,\"ULTRA\":100,\"BUSINESS\":250,\"ENTERPRISE\":250} (over the cap the channel is rejected, never truncated).","servers":[{"$ref":"#/servers/stream"}],"messages":{"rhc_deployer_tier_changed":{"$ref":"#/components/messages/stream_event_rhc_deployer_tier_changed"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-scope":{"filter":"wallets","required":true,"caps":{"PRO":25,"ULTRA":100,"BUSINESS":250,"ENTERPRISE":250}},"x-madeonsol-score-events":["rhc:deployer_tier_changed"]},"stream_rhc_dev_activity":{"address":"rhc:dev_activity","title":"rhc:dev_activity","description":"Stream channel `rhc:dev_activity` (subscribe {\"type\":\"subscribe\",\"channels\":[\"rhc:dev_activity\"]}). Tiers: ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"rhc_dev_activity":{"$ref":"#/components/messages/stream_event_rhc_dev_activity"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"]},"stream_token_bundles":{"address":"token:bundles","title":"token:bundles","description":"Stream channel `token:bundles` (subscribe {\"type\":\"subscribe\",\"channels\":[\"token:bundles\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"token_bundle_cluster":{"$ref":"#/components/messages/stream_event_token_bundle_cluster"},"token_bundle_exit":{"$ref":"#/components/messages/stream_event_token_bundle_exit"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"]},"stream_rhc_token_bundles":{"address":"rhc:token_bundles","title":"rhc:token_bundles","description":"Stream channel `rhc:token_bundles` (subscribe {\"type\":\"subscribe\",\"channels\":[\"rhc:token_bundles\"]}). Tiers: PRO, ULTRA, BUSINESS, ENTERPRISE.","servers":[{"$ref":"#/servers/stream"}],"messages":{"rhc_token_bundle_cluster":{"$ref":"#/components/messages/stream_event_rhc_token_bundle_cluster"},"rhc_token_bundle_exit":{"$ref":"#/components/messages/stream_event_rhc_token_bundle_exit"}},"x-madeonsol-kind":"stream-channel","x-madeonsol-tiers":["PRO","ULTRA","BUSINESS","ENTERPRISE"]},"early_control":{"address":null,"title":"ShredPrism early-stream control","description":"Controls for wss://madeonsol.com/ws/v1/early. Uses the stream token returned by POST /api/v1/stream/token; ULTRA/BUSINESS/ENTERPRISE only. Observations are instruction intent, not execution proof.","servers":[{"$ref":"#/servers/earlyStream"}],"messages":{"subscribe":{"$ref":"#/components/messages/early.subscribe"},"update":{"$ref":"#/components/messages/early.update"},"unsubscribe":{"$ref":"#/components/messages/early.unsubscribe"},"list":{"$ref":"#/components/messages/early.list"},"walletList":{"$ref":"#/components/messages/early.wallet_list"}},"x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"]},"early_early_deploys":{"address":"early:deploys","title":"early:deploys","description":"ShredPrism early:deploys outer-instruction observations plus separately correlated execution outcomes. Coverage is supported-instruction scope only; no full-market or execution guarantee. Detailed field contract: https://madeonsol.com/docs/shredprism-stream.md","servers":[{"$ref":"#/servers/earlyStream"}],"messages":{"observed":{"$ref":"#/components/messages/early_observed_early_deploys"},"outcome":{"$ref":"#/components/messages/early_outcome_early_deploys"}},"x-madeonsol-kind":"early-stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-observation-semantics":"provisional_instruction_intent"},"early_early_locks":{"address":"early:locks","title":"early:locks","description":"ShredPrism early:locks outer-instruction observations plus separately correlated execution outcomes. Coverage is supported-instruction scope only; no full-market or execution guarantee. Detailed field contract: https://madeonsol.com/docs/shredprism-stream.md","servers":[{"$ref":"#/servers/earlyStream"}],"messages":{"observed":{"$ref":"#/components/messages/early_observed_early_locks"},"outcome":{"$ref":"#/components/messages/early_outcome_early_locks"}},"x-madeonsol-kind":"early-stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-observation-semantics":"provisional_instruction_intent"},"early_early_trades":{"address":"early:trades","title":"early:trades","description":"ShredPrism early:trades outer-instruction observations plus separately correlated execution outcomes. Coverage is supported-instruction scope only; no full-market or execution guarantee. Detailed field contract: https://madeonsol.com/docs/shredprism-stream.md","servers":[{"$ref":"#/servers/earlyStream"}],"messages":{"observed":{"$ref":"#/components/messages/early_observed_early_trades"},"outcome":{"$ref":"#/components/messages/early_outcome_early_trades"}},"x-madeonsol-kind":"early-stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-observation-semantics":"provisional_instruction_intent"},"early_early_liquidity":{"address":"early:liquidity","title":"early:liquidity","description":"ShredPrism early:liquidity outer-instruction observations plus separately correlated execution outcomes. Coverage is supported-instruction scope only; no full-market or execution guarantee. Detailed field contract: https://madeonsol.com/docs/shredprism-stream.md","servers":[{"$ref":"#/servers/earlyStream"}],"messages":{"observed":{"$ref":"#/components/messages/early_observed_early_liquidity"},"outcome":{"$ref":"#/components/messages/early_outcome_early_liquidity"}},"x-madeonsol-kind":"early-stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-observation-semantics":"provisional_instruction_intent"},"early_early_migrations":{"address":"early:migrations","title":"early:migrations","description":"ShredPrism early:migrations outer-instruction observations plus separately correlated execution outcomes. Coverage is supported-instruction scope only; no full-market or execution guarantee. Detailed field contract: https://madeonsol.com/docs/shredprism-stream.md","servers":[{"$ref":"#/servers/earlyStream"}],"messages":{"observed":{"$ref":"#/components/messages/early_observed_early_migrations"},"outcome":{"$ref":"#/components/messages/early_outcome_early_migrations"}},"x-madeonsol-kind":"early-stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-observation-semantics":"provisional_instruction_intent"},"early_early_token_changes":{"address":"early:token_changes","title":"early:token_changes","description":"ShredPrism early:token_changes outer-instruction observations plus separately correlated execution outcomes. Coverage is supported-instruction scope only; no full-market or execution guarantee. Detailed field contract: https://madeonsol.com/docs/shredprism-stream.md","servers":[{"$ref":"#/servers/earlyStream"}],"messages":{"observed":{"$ref":"#/components/messages/early_observed_early_token_changes"},"outcome":{"$ref":"#/components/messages/early_outcome_early_token_changes"}},"x-madeonsol-kind":"early-stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"],"x-madeonsol-observation-semantics":"provisional_instruction_intent"},"dex_control":{"address":null,"title":"dex-stream control","description":"Control frames on wss://madeonsol.com/ws/v1/dex-stream (ULTRA+). The DEX stream subscribes by FILTERS, not channel names; frames carry channel + sub_id.","servers":[{"$ref":"#/servers/dexStream"}],"messages":{"subscribe":{"$ref":"#/components/messages/dex.subscribe"},"update":{"$ref":"#/components/messages/dex.update"},"unsubscribe":{"$ref":"#/components/messages/dex.unsubscribe"},"list":{"$ref":"#/components/messages/dex.list"},"connected":{"$ref":"#/components/messages/dex.connected"},"hint":{"$ref":"#/components/messages/dex.hint"},"heartbeat":{"$ref":"#/components/messages/dex.heartbeat"},"subscribed":{"$ref":"#/components/messages/dex.subscribed"},"updated":{"$ref":"#/components/messages/dex.updated"},"unsubscribed":{"$ref":"#/components/messages/dex.unsubscribed"},"listReply":{"$ref":"#/components/messages/dex.list_reply"},"error":{"$ref":"#/components/messages/dex.error"},"replayDone":{"$ref":"#/components/messages/dex.replay_done"},"tokenRefresh":{"$ref":"#/components/messages/dex.token_refresh"}}},"dex_dex_trades":{"address":"dex:trades","title":"dex:trades","description":"One frame per matching transaction (the legacy trade view). Produced exactly once per tx per subscription whatever the legs mode. sol_amount is the trade's economic size in SOL: the native SOL leg, or, for a USDC/USDT-paid swap (field sol_amount_basis = stable_quote_equivalent, additive, live since 2026-10-05), the stable USD amount / SOL/USD with stable_quote provenance {mint, amount, usd_amount, sol_usd, sol_usd_observed_at, sol_usd_age_ms, status}; no native SOL moved. stable_quote_unconverted = SOL/USD unavailable or stale: sol_amount 0 (SOL size unknown), read stable_quote.usd_amount.","servers":[{"$ref":"#/servers/dexStream"}],"messages":{"dex_trades":{"$ref":"#/components/messages/dex_event_dex_trades"}},"x-madeonsol-kind":"dex-stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"]},"dex_dex_route":{"address":"dex:route","title":"dex:route","description":"Opt-in (legs): one per tx, with leg_ids.","servers":[{"$ref":"#/servers/dexStream"}],"messages":{"dex_route":{"$ref":"#/components/messages/dex_event_dex_route"}},"x-madeonsol-kind":"dex-stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"]},"dex_dex_leg":{"address":"dex:leg","title":"dex:leg","description":"Opt-in (legs): one per decoded pool swap; id signature:ix[.inner][#h<k>] (#h<k> = hop k >= 1 of a multi-hop instruction). A leg decoded from a liquidity instruction (e.g. Meteora DLMM rebalance_liquidity) carries liquidity_instruction + liquidity_instruction_kind: a position change, not a trade; absent on normal swap legs.","servers":[{"$ref":"#/servers/dexStream"}],"messages":{"dex_leg":{"$ref":"#/components/messages/dex_event_dex_leg"}},"x-madeonsol-kind":"dex-stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"]},"dex_dex_liquidity":{"address":"dex:liquidity","title":"dex:liquidity","description":"Opt-in (liquidity): pool_created / add / remove. Ring-only (no durable resume).","servers":[{"$ref":"#/servers/dexStream"}],"messages":{"dex_liquidity":{"$ref":"#/components/messages/dex_event_dex_liquidity"}},"x-madeonsol-kind":"dex-stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"]},"dex_dex_graduations":{"address":"dex:graduations","title":"dex:graduations","description":"Graduation of a mint a subscription names in token_mint(s).","servers":[{"$ref":"#/servers/dexStream"}],"messages":{"dex_graduations":{"$ref":"#/components/messages/dex_event_dex_graduations"}},"x-madeonsol-kind":"dex-stream-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"]},"dex_dev_activity":{"address":"dev:activity","title":"dev:activity","description":"Realtime developer sell / buy / token transfer (dev_sell, dev_buy, dev_token_transfer_out, dev_token_transfer_in), published on first regional arrival before any DB write. Subscribe with {\"type\":\"dev_subscribe\",\"sub_id\",\"filters\":{\"token_mints\",\"deployers\",\"types\"},\"replay\":N}. A transfer is never a sell. `id` is stable across regions, reconnects and replay: dedupe on it. Identity fields and actor_role=linked_wallet are ULTRA+. Admission is attribution-based (a creator attribution from the live create, pending_deploys, deployer_tokens or launchpad_tokens; Deployer Hunter ranking/tracking is never required): 24 h creates, 30 d bonds, any attributed mint that traded in the last 48 h, plus lazy admission on a mint's first observed trade (that waking trade is not classified). With the creator attribution index enabled, every attributed mint of any age is classified from its first trade in that trade's own frame; a mint with no creator attribution is not classified (counted as creator_attribution_unknown). provenance.attribution = active_map | index. Transfers have two sources: the 1,000-wallet transfer watch (most recently active developer wallets; the dev_subscribed ack keeps transfer_watch_coverage {state, watched_wallets, eligible_wallets, share, policy}, which describes that watch ONLY) and the broad token-program source covering every attributed creator (ack transfer_sources {watch, broad {mode, state, region, scope, first_slot, last_slot, gaps_recorded_since_boot, pending_gap}}). provenance.path = broad_token_stream marks a broad-source event; provenance.late_classified = true marks an event classified after a short creator point read (a token seconds old): observed_at stays the receive time. Transfers are aggregated: one event per (signature, mint, type, actor) with the summed amount, counterparty_wallet = the largest counterparty and counterparty_count. Events recovered from the chain after a delivery gap are stored for REST only (never sent on WS or webhook). A missing transfer event is not evidence of no transfer.","servers":[{"$ref":"#/servers/dexStream"}],"messages":{"dev_activity":{"$ref":"#/components/messages/dex_event_dev_activity"}},"x-madeonsol-kind":"dex-stream-dev-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"]},"dex_dev_activity_enrichment":{"address":"dev:activity_enrichment","title":"dev:activity_enrichment","description":"Asynchronous enrichment for a dev:activity event (same id): price / market cap from cache, holdings before/after from the transaction's own token balances, % of position and of supply moved, destination label. May never arrive; the raw frame never waits for it.","servers":[{"$ref":"#/servers/dexStream"}],"messages":{"dev_activity_enrichment":{"$ref":"#/components/messages/dex_event_dev_activity_enrichment"}},"x-madeonsol-kind":"dex-stream-dev-channel","x-madeonsol-tiers":["ULTRA","BUSINESS","ENTERPRISE"]},"webhook_kol_trade":{"address":"kol:trade","title":"kol:trade","description":"Registry webhook event `kol:trade` — subscribe with POST /api/v1/webhooks {\"events\":[\"kol:trade\"]}.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"kol_trade":{"$ref":"#/components/messages/webhook_kol_trade_message"}},"x-madeonsol-kind":"webhook-event","x-madeonsol-registry":"POST /api/v1/webhooks","x-madeonsol-condition-fields":{"kol_name":"string","wallet_address":"string","token_mint":"string","token_symbol":"string","action":"string","sol_amount":"number","token_amount":"number","price_usd_at_trade":"number","market_cap_usd_at_trade":"number","liquidity_usd_at_trade":"number","primary_dex":"string"}},"webhook_kol_coordination":{"address":"kol:coordination","title":"kol:coordination","description":"Registry webhook event `kol:coordination` — subscribe with POST /api/v1/webhooks {\"events\":[\"kol:coordination\"]}.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"kol_coordination":{"$ref":"#/components/messages/webhook_kol_coordination_message"}},"x-madeonsol-kind":"webhook-event","x-madeonsol-registry":"POST /api/v1/webhooks","x-madeonsol-condition-fields":{"token_mint":"string","token_symbol":"string","kol_count":"number","exited_count":"number","avg_winrate_7d":"number","entry_rank_avg":"number","coordination_score":"number","window_minutes":"number","is_rearm":"boolean","triggering_trade.sol_amount":"number","triggering_trade.kol_name":"string","triggering_trade.market_cap_usd_at_trade":"number"}},"webhook_deployer_alert":{"address":"deployer:alert","title":"deployer:alert","description":"Registry webhook event `deployer:alert` — subscribe with POST /api/v1/webhooks {\"events\":[\"deployer:alert\"]}.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"deployer_alert":{"$ref":"#/components/messages/webhook_deployer_alert_message"}},"x-madeonsol-kind":"webhook-event","x-madeonsol-registry":"POST /api/v1/webhooks","x-madeonsol-condition-fields":{"deployer_wallet":"string","deployer_tier":"string","token_mint":"string","token_symbol":"string","launchpad":"string","bonding_rate":"number","recent_bond_rate":"number","total_bonded":"number","total_deployed":"number","runner_rate":"number","market_cap_at_alert":"number","dev_buy_sol":"number","dev_buy_supply_pct":"number"}},"webhook_deployer_bond":{"address":"deployer:bond","title":"deployer:bond","description":"Registry webhook event `deployer:bond` — subscribe with POST /api/v1/webhooks {\"events\":[\"deployer:bond\"]}.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"deployer_bond":{"$ref":"#/components/messages/webhook_deployer_bond_message"}},"x-madeonsol-kind":"webhook-event","x-madeonsol-registry":"POST /api/v1/webhooks","x-madeonsol-condition-fields":{"deployer_wallet":"string","deployer_tier":"string","token_mint":"string","token_symbol":"string","launchpad":"string","time_to_bond_minutes":"number","instant_bond":"boolean","bonding_rate":"number","recent_bond_rate":"number","total_bonded":"number","total_deployed":"number","runner_rate":"number","market_cap_at_alert":"number"}},"webhook_wallet_tracker_event":{"address":"wallet_tracker:event","title":"wallet_tracker:event","description":"Registry webhook event `wallet_tracker:event` — subscribe with POST /api/v1/webhooks {\"events\":[\"wallet_tracker:event\"]}.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"wallet_tracker_event":{"$ref":"#/components/messages/webhook_wallet_tracker_event_message"}},"x-madeonsol-kind":"webhook-event","x-madeonsol-registry":"POST /api/v1/webhooks","x-madeonsol-condition-fields":{"wallet_address":"string","label":"string","event_type":"string","action":"string","token_mint":"string","sol_amount":"number","token_amount":"number","counterparty":"string"}},"webhook_sniper_deploy":{"address":"sniper:deploy","title":"sniper:deploy","description":"Registry webhook event `sniper:deploy` — subscribe with POST /api/v1/webhooks {\"events\":[\"sniper:deploy\"]}.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"sniper_deploy":{"$ref":"#/components/messages/webhook_sniper_deploy_message"}},"x-madeonsol-kind":"webhook-event","x-madeonsol-registry":"POST /api/v1/webhooks","x-madeonsol-condition-fields":{"mint":"string","name":"string","symbol":"string","deployer":"string","launchpad":"string","deployer_tier":"string","deployer_bond_rate":"number","deployer_total_bonded":"number"}},"webhook_rhc_kol_trade":{"address":"rhc:kol_trade","title":"rhc:kol_trade","description":"Registry webhook event `rhc:kol_trade` — subscribe with POST /api/v1/webhooks {\"events\":[\"rhc:kol_trade\"]}. EVM-native payload (Robinhood Chain).","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"rhc_kol_trade":{"$ref":"#/components/messages/webhook_rhc_kol_trade_message"}},"x-madeonsol-kind":"webhook-event","x-madeonsol-registry":"POST /api/v1/webhooks","x-madeonsol-condition-fields":{"evm_address":"string","token_address":"string","action":"string","eth_amount":"number","token_amount":"number","price_usd":"number","dex":"string"},"x-madeonsol-evm-native":true},"webhook_token_surge":{"address":"token:surge","title":"token:surge","description":"Registry webhook event `token:surge` — subscribe with POST /api/v1/webhooks {\"events\":[\"token:surge\"]}.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"token_surge":{"$ref":"#/components/messages/webhook_token_surge_message"}},"x-madeonsol-kind":"webhook-event","x-madeonsol-registry":"POST /api/v1/webhooks","x-madeonsol-condition-fields":{"mint":"string","symbol":"string","tier":"string","launchpad":"string","primary_dex":"string","market_cap_usd":"number","liquidity_usd":"number","price_usd":"number","mc_multiple":"number","mc_change_3m_pct":"number","peak_mc_usd":"number","age_seconds":"number"}},"webhook_token_revival":{"address":"token:revival","title":"token:revival","description":"Registry webhook event `token:revival` — subscribe with POST /api/v1/webhooks {\"events\":[\"token:revival\"]}.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"token_revival":{"$ref":"#/components/messages/webhook_token_revival_message"}},"x-madeonsol-kind":"webhook-event","x-madeonsol-registry":"POST /api/v1/webhooks","x-madeonsol-condition-fields":{"mint":"string","symbol":"string","launchpad":"string","primary_dex":"string","market_cap_usd":"number","liquidity_usd":"number","price_usd":"number","dormant_hours":"number","peak_mc_usd":"number","prev_mc_usd":"number"}},"webhook_dev_activity":{"address":"dev:activity","title":"dev:activity","description":"Registry webhook event `dev:activity` — subscribe with POST /api/v1/webhooks {\"events\":[\"dev:activity\"]}.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"dev_activity":{"$ref":"#/components/messages/webhook_dev_activity_message"}},"x-madeonsol-kind":"webhook-event","x-madeonsol-registry":"POST /api/v1/webhooks"},"webhook_rhc_dev_activity":{"address":"rhc:dev_activity","title":"rhc:dev_activity","description":"Registry webhook event `rhc:dev_activity` — subscribe with POST /api/v1/webhooks {\"events\":[\"rhc:dev_activity\"]}. EVM-native payload (Robinhood Chain).","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"rhc_dev_activity":{"$ref":"#/components/messages/webhook_rhc_dev_activity_message"}},"x-madeonsol-kind":"webhook-event","x-madeonsol-registry":"POST /api/v1/webhooks","x-madeonsol-evm-native":true},"rule_webhook_copytrade_signal":{"address":"copytrade:signal","title":"copytrade:signal","description":"Per-rule webhook `copytrade:signal`: POSTed to the copy-trade subscription's own webhook_url (/api/v1/copytrade/subscriptions) and signed with that rule's webhook_secret. Not a /webhooks registry event.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"copytrade_signal":{"$ref":"#/components/messages/rule_webhook_copytrade_signal_message"}},"x-madeonsol-kind":"rule-webhook-event","x-madeonsol-rule":{"rule":"copy-trade subscription","endpoint":"/api/v1/copytrade/subscriptions","source":"services/signal-evaluator/index.mjs"}},"rule_webhook_kol_coordination":{"address":"kol:coordination","title":"kol:coordination","description":"Per-rule webhook `kol:coordination`: POSTed to the coordination alert rule's own webhook_url (/api/v1/kol/coordination/alerts) and signed with that rule's webhook_secret. Not a /webhooks registry event.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"kol_coordination":{"$ref":"#/components/messages/rule_webhook_kol_coordination_message"}},"x-madeonsol-kind":"rule-webhook-event","x-madeonsol-rule":{"rule":"coordination alert rule","endpoint":"/api/v1/kol/coordination/alerts","source":"services/signal-evaluator/coordination.mjs"}},"rule_webhook_kol_first_touch":{"address":"kol:first_touch","title":"kol:first_touch","description":"Per-rule webhook `kol:first_touch`: POSTed to the first-touch subscription's own webhook_url (/api/v1/kol/first-touches/subscriptions) and signed with that rule's webhook_secret. Not a /webhooks registry event.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"kol_first_touch":{"$ref":"#/components/messages/rule_webhook_kol_first_touch_message"}},"x-madeonsol-kind":"rule-webhook-event","x-madeonsol-rule":{"rule":"first-touch subscription","endpoint":"/api/v1/kol/first-touches/subscriptions","source":"services/signal-evaluator/first-touch.mjs"}},"rule_webhook_price_alert_dip":{"address":"price_alert:dip","title":"price_alert:dip","description":"Per-rule webhook `price_alert:dip`: POSTed to the price alert's own webhook_url (/api/v1/price-alerts) and signed with that rule's webhook_secret. Not a /webhooks registry event.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"price_alert_dip":{"$ref":"#/components/messages/rule_webhook_price_alert_dip_message"}},"x-madeonsol-kind":"rule-webhook-event","x-madeonsol-rule":{"rule":"price alert","endpoint":"/api/v1/price-alerts","source":"services/mc-tracker/index.mjs"}},"rule_webhook_price_alert_recovery":{"address":"price_alert:recovery","title":"price_alert:recovery","description":"Per-rule webhook `price_alert:recovery`: POSTed to the price alert's own webhook_url (/api/v1/price-alerts) and signed with that rule's webhook_secret. Not a /webhooks registry event.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"price_alert_recovery":{"$ref":"#/components/messages/rule_webhook_price_alert_recovery_message"}},"x-madeonsol-kind":"rule-webhook-event","x-madeonsol-rule":{"rule":"price alert","endpoint":"/api/v1/price-alerts","source":"services/mc-tracker/index.mjs"}},"rule_webhook_rhc_copytrade_signal":{"address":"rhc:copytrade:signal","title":"rhc:copytrade:signal","description":"Per-rule webhook `rhc:copytrade:signal`: POSTed to the RHC copy-trade subscription's own webhook_url (/api/v1/rhc/copytrade/subscriptions) and signed with that rule's webhook_secret. Not a /webhooks registry event.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"rhc_copytrade_signal":{"$ref":"#/components/messages/rule_webhook_rhc_copytrade_signal_message"}},"x-madeonsol-kind":"rule-webhook-event","x-madeonsol-rule":{"rule":"RHC copy-trade subscription","endpoint":"/api/v1/rhc/copytrade/subscriptions","source":"services/signal-evaluator/rhc-copytrade.mjs"}},"rule_webhook_rhc_kol_coordination":{"address":"rhc:kol:coordination","title":"rhc:kol:coordination","description":"Per-rule webhook `rhc:kol:coordination`: POSTed to the RHC coordination alert rule's own webhook_url (/api/v1/rhc/kol/coordination/alerts) and signed with that rule's webhook_secret. Not a /webhooks registry event.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"rhc_kol_coordination":{"$ref":"#/components/messages/rule_webhook_rhc_kol_coordination_message"}},"x-madeonsol-kind":"rule-webhook-event","x-madeonsol-rule":{"rule":"RHC coordination alert rule","endpoint":"/api/v1/rhc/kol/coordination/alerts","source":"services/signal-evaluator/rhc-coordination.mjs"}},"rule_webhook_rhc_kol_first_touch":{"address":"rhc:kol:first_touch","title":"rhc:kol:first_touch","description":"Per-rule webhook `rhc:kol:first_touch`: POSTed to the RHC first-touch subscription's own webhook_url (/api/v1/rhc/kol/first-touches/subscriptions) and signed with that rule's webhook_secret. Not a /webhooks registry event.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"rhc_kol_first_touch":{"$ref":"#/components/messages/rule_webhook_rhc_kol_first_touch_message"}},"x-madeonsol-kind":"rule-webhook-event","x-madeonsol-rule":{"rule":"RHC first-touch subscription","endpoint":"/api/v1/rhc/kol/first-touches/subscriptions","source":"services/signal-evaluator/rhc-first-touch.mjs"}},"rule_webhook_rhc_price_alert_dip":{"address":"rhc:price_alert:dip","title":"rhc:price_alert:dip","description":"Per-rule webhook `rhc:price_alert:dip`: POSTed to the RHC price alert's own webhook_url (/api/v1/rhc/price-alerts) and signed with that rule's webhook_secret. Not a /webhooks registry event.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"rhc_price_alert_dip":{"$ref":"#/components/messages/rule_webhook_rhc_price_alert_dip_message"}},"x-madeonsol-kind":"rule-webhook-event","x-madeonsol-rule":{"rule":"RHC price alert","endpoint":"/api/v1/rhc/price-alerts","source":"services/signal-evaluator/rhc-price-alerts.mjs"}},"rule_webhook_rhc_price_alert_recovery":{"address":"rhc:price_alert:recovery","title":"rhc:price_alert:recovery","description":"Per-rule webhook `rhc:price_alert:recovery`: POSTed to the RHC price alert's own webhook_url (/api/v1/rhc/price-alerts) and signed with that rule's webhook_secret. Not a /webhooks registry event.","servers":[{"$ref":"#/servers/webhookReceiver"}],"messages":{"rhc_price_alert_recovery":{"$ref":"#/components/messages/rule_webhook_rhc_price_alert_recovery_message"}},"x-madeonsol-kind":"rule-webhook-event","x-madeonsol-rule":{"rule":"RHC price alert","endpoint":"/api/v1/rhc/price-alerts","source":"services/signal-evaluator/rhc-price-alerts.mjs"}}},"operations":{"stream_control_receive":{"action":"receive","channel":{"$ref":"#/channels/stream_control"},"title":"Client control messages","messages":[{"$ref":"#/channels/stream_control/messages/subscribe"},{"$ref":"#/channels/stream_control/messages/update"},{"$ref":"#/channels/stream_control/messages/unsubscribe"},{"$ref":"#/channels/stream_control/messages/list"}]},"stream_control_send":{"action":"send","channel":{"$ref":"#/channels/stream_control"},"title":"Server control frames","messages":[{"$ref":"#/channels/stream_control/messages/connected"},{"$ref":"#/channels/stream_control/messages/hint"},{"$ref":"#/channels/stream_control/messages/heartbeat"},{"$ref":"#/channels/stream_control/messages/subscribed"},{"$ref":"#/channels/stream_control/messages/updated"},{"$ref":"#/channels/stream_control/messages/unsubscribed"},{"$ref":"#/channels/stream_control/messages/subscriptions"},{"$ref":"#/channels/stream_control/messages/warning"},{"$ref":"#/channels/stream_control/messages/replayStart"},{"$ref":"#/channels/stream_control/messages/replayEnd"},{"$ref":"#/channels/stream_control/messages/tokenRefresh"}]},"stream_kol_trades_send":{"action":"send","channel":{"$ref":"#/channels/stream_kol_trades"},"title":"Deliver kol:trades","messages":[{"$ref":"#/channels/stream_kol_trades/messages/kol_trade"}]},"stream_kol_coordination_send":{"action":"send","channel":{"$ref":"#/channels/stream_kol_coordination"},"title":"Deliver kol:coordination","messages":[{"$ref":"#/channels/stream_kol_coordination/messages/kol_coordination"}]},"stream_kol_first_touches_send":{"action":"send","channel":{"$ref":"#/channels/stream_kol_first_touches"},"title":"Deliver kol:first_touches","messages":[{"$ref":"#/channels/stream_kol_first_touches/messages/kol_first_touch"}]},"stream_deployer_alerts_send":{"action":"send","channel":{"$ref":"#/channels/stream_deployer_alerts"},"title":"Deliver deployer:alerts","messages":[{"$ref":"#/channels/stream_deployer_alerts/messages/deployer_alert"},{"$ref":"#/channels/stream_deployer_alerts/messages/deployer_bond"}]},"stream_wallet_tracker_events_send":{"action":"send","channel":{"$ref":"#/channels/stream_wallet_tracker_events"},"title":"Deliver wallet_tracker:events","messages":[{"$ref":"#/channels/stream_wallet_tracker_events/messages/wallet_tracker_event"}]},"stream_copytrade_signals_send":{"action":"send","channel":{"$ref":"#/channels/stream_copytrade_signals"},"title":"Deliver copytrade:signals","messages":[{"$ref":"#/channels/stream_copytrade_signals/messages/copytrade_signal"}]},"stream_price_alert_events_send":{"action":"send","channel":{"$ref":"#/channels/stream_price_alert_events"},"title":"Deliver price_alert:events","messages":[{"$ref":"#/channels/stream_price_alert_events/messages/price_alert_dip"},{"$ref":"#/channels/stream_price_alert_events/messages/price_alert_recovery"}]},"stream_sniper_deploys_send":{"action":"send","channel":{"$ref":"#/channels/stream_sniper_deploys"},"title":"Deliver sniper:deploys","messages":[{"$ref":"#/channels/stream_sniper_deploys/messages/sniper_deploy"}]},"stream_token_graduations_send":{"action":"send","channel":{"$ref":"#/channels/stream_token_graduations"},"title":"Deliver token:graduations","messages":[{"$ref":"#/channels/stream_token_graduations/messages/token_graduation"}]},"stream_token_prices_send":{"action":"send","channel":{"$ref":"#/channels/stream_token_prices"},"title":"Deliver token:prices","messages":[{"$ref":"#/channels/stream_token_prices/messages/token_price"}]},"stream_token_locks_send":{"action":"send","channel":{"$ref":"#/channels/stream_token_locks"},"title":"Deliver token:locks","messages":[{"$ref":"#/channels/stream_token_locks/messages/token_lock"},{"$ref":"#/channels/stream_token_locks/messages/token_lock_claimed"},{"$ref":"#/channels/stream_token_locks/messages/token_lock_cancelled"},{"$ref":"#/channels/stream_token_locks/messages/token_lock_closed"},{"$ref":"#/channels/stream_token_locks/messages/token_lock_updated"},{"$ref":"#/channels/stream_token_locks/messages/token_unlock_upcoming"},{"$ref":"#/channels/stream_token_locks/messages/token_unlock_available"}]},"stream_token_fee_claims_send":{"action":"send","channel":{"$ref":"#/channels/stream_token_fee_claims"},"title":"Deliver token:fee_claims","messages":[{"$ref":"#/channels/stream_token_fee_claims/messages/token_fee_claim"}]},"stream_token_surges_send":{"action":"send","channel":{"$ref":"#/channels/stream_token_surges"},"title":"Deliver token:surges","messages":[{"$ref":"#/channels/stream_token_surges/messages/token_surge"},{"$ref":"#/channels/stream_token_surges/messages/token_revival"}]},"stream_rhc_kol_trades_send":{"action":"send","channel":{"$ref":"#/channels/stream_rhc_kol_trades"},"title":"Deliver rhc:kol_trades","messages":[{"$ref":"#/channels/stream_rhc_kol_trades/messages/rhc_kol_trade"}]},"stream_rhc_dex_trades_send":{"action":"send","channel":{"$ref":"#/channels/stream_rhc_dex_trades"},"title":"Deliver rhc:dex_trades","messages":[{"$ref":"#/channels/stream_rhc_dex_trades/messages/rhc_dex_trade"}]},"stream_rhc_dex_trades_unattributed_send":{"action":"send","channel":{"$ref":"#/channels/stream_rhc_dex_trades_unattributed"},"title":"Deliver rhc:dex_trades_unattributed","messages":[{"$ref":"#/channels/stream_rhc_dex_trades_unattributed/messages/rhc_dex_trade_unattributed"}]},"stream_rhc_new_tokens_send":{"action":"send","channel":{"$ref":"#/channels/stream_rhc_new_tokens"},"title":"Deliver rhc:new_tokens","messages":[{"$ref":"#/channels/stream_rhc_new_tokens/messages/rhc_new_token"}]},"stream_rhc_copytrade_signals_send":{"action":"send","channel":{"$ref":"#/channels/stream_rhc_copytrade_signals"},"title":"Deliver rhc:copytrade:signals","messages":[{"$ref":"#/channels/stream_rhc_copytrade_signals/messages/rhc_copytrade_signal"}]},"stream_rhc_price_alert_events_send":{"action":"send","channel":{"$ref":"#/channels/stream_rhc_price_alert_events"},"title":"Deliver rhc:price_alert:events","messages":[{"$ref":"#/channels/stream_rhc_price_alert_events/messages/rhc_price_alert_dip"},{"$ref":"#/channels/stream_rhc_price_alert_events/messages/rhc_price_alert_recovery"}]},"stream_rhc_kol_coordination_send":{"action":"send","channel":{"$ref":"#/channels/stream_rhc_kol_coordination"},"title":"Deliver rhc:kol:coordination","messages":[{"$ref":"#/channels/stream_rhc_kol_coordination/messages/rhc_kol_coordination"}]},"stream_rhc_kol_first_touches_send":{"action":"send","channel":{"$ref":"#/channels/stream_rhc_kol_first_touches"},"title":"Deliver rhc:kol:first_touches","messages":[{"$ref":"#/channels/stream_rhc_kol_first_touches/messages/rhc_kol_first_touch"}]},"stream_rhc_token_locks_send":{"action":"send","channel":{"$ref":"#/channels/stream_rhc_token_locks"},"title":"Deliver rhc:token_locks","messages":[{"$ref":"#/channels/stream_rhc_token_locks/messages/rhc_token_lock"},{"$ref":"#/channels/stream_rhc_token_locks/messages/rhc_token_unlock_upcoming"},{"$ref":"#/channels/stream_rhc_token_locks/messages/rhc_token_unlock_available"}]},"stream_rhc_token_prices_send":{"action":"send","channel":{"$ref":"#/channels/stream_rhc_token_prices"},"title":"Deliver rhc:token_prices","messages":[{"$ref":"#/channels/stream_rhc_token_prices/messages/rhc_token_price"}]},"stream_rhc_lp_events_send":{"action":"send","channel":{"$ref":"#/channels/stream_rhc_lp_events"},"title":"Deliver rhc:lp_events","messages":[{"$ref":"#/channels/stream_rhc_lp_events/messages/rhc_lp_event"}]},"stream_token_candles_send":{"action":"send","channel":{"$ref":"#/channels/stream_token_candles"},"title":"Deliver token:candles","messages":[{"$ref":"#/channels/stream_token_candles/messages/candle_closed"},{"$ref":"#/channels/stream_token_candles/messages/candle_update"}]},"stream_rhc_token_candles_send":{"action":"send","channel":{"$ref":"#/channels/stream_rhc_token_candles"},"title":"Deliver rhc:token_candles","messages":[{"$ref":"#/channels/stream_rhc_token_candles/messages/rhc_candle_closed"},{"$ref":"#/channels/stream_rhc_token_candles/messages/rhc_candle_revised"},{"$ref":"#/channels/stream_rhc_token_candles/messages/rhc_candle_update"}]},"stream_token_risk_send":{"action":"send","channel":{"$ref":"#/channels/stream_token_risk"},"title":"Deliver token:risk","messages":[{"$ref":"#/channels/stream_token_risk/messages/risk_authority_changed"},{"$ref":"#/channels/stream_token_risk/messages/risk_supply_inflated"}]},"stream_rhc_token_risk_send":{"action":"send","channel":{"$ref":"#/channels/stream_rhc_token_risk"},"title":"Deliver rhc:token_risk","messages":[{"$ref":"#/channels/stream_rhc_token_risk/messages/rhc_risk_verdict_changed"}]},"stream_wallet_scores_send":{"action":"send","channel":{"$ref":"#/channels/stream_wallet_scores"},"title":"Deliver wallet:scores","messages":[{"$ref":"#/channels/stream_wallet_scores/messages/deployer_tier_changed"},{"$ref":"#/channels/stream_wallet_scores/messages/kol_score_state_changed"}]},"stream_rhc_wallet_scores_send":{"action":"send","channel":{"$ref":"#/channels/stream_rhc_wallet_scores"},"title":"Deliver rhc:wallet_scores","messages":[{"$ref":"#/channels/stream_rhc_wallet_scores/messages/rhc_deployer_tier_changed"}]},"stream_rhc_dev_activity_send":{"action":"send","channel":{"$ref":"#/channels/stream_rhc_dev_activity"},"title":"Deliver rhc:dev_activity","messages":[{"$ref":"#/channels/stream_rhc_dev_activity/messages/rhc_dev_activity"}]},"stream_token_bundles_send":{"action":"send","channel":{"$ref":"#/channels/stream_token_bundles"},"title":"Deliver token:bundles","messages":[{"$ref":"#/channels/stream_token_bundles/messages/token_bundle_cluster"},{"$ref":"#/channels/stream_token_bundles/messages/token_bundle_exit"}]},"stream_rhc_token_bundles_send":{"action":"send","channel":{"$ref":"#/channels/stream_rhc_token_bundles"},"title":"Deliver rhc:token_bundles","messages":[{"$ref":"#/channels/stream_rhc_token_bundles/messages/rhc_token_bundle_cluster"},{"$ref":"#/channels/stream_rhc_token_bundles/messages/rhc_token_bundle_exit"}]},"early_control_receive":{"action":"receive","channel":{"$ref":"#/channels/early_control"},"title":"ShredPrism client controls","messages":[{"$ref":"#/channels/early_control/messages/subscribe"},{"$ref":"#/channels/early_control/messages/update"},{"$ref":"#/channels/early_control/messages/unsubscribe"},{"$ref":"#/channels/early_control/messages/list"},{"$ref":"#/channels/early_control/messages/walletList"}]},"early_early_deploys_send":{"action":"send","channel":{"$ref":"#/channels/early_early_deploys"},"title":"Deliver early:deploys","messages":[{"$ref":"#/channels/early_early_deploys/messages/observed"},{"$ref":"#/channels/early_early_deploys/messages/outcome"}]},"early_early_locks_send":{"action":"send","channel":{"$ref":"#/channels/early_early_locks"},"title":"Deliver early:locks","messages":[{"$ref":"#/channels/early_early_locks/messages/observed"},{"$ref":"#/channels/early_early_locks/messages/outcome"}]},"early_early_trades_send":{"action":"send","channel":{"$ref":"#/channels/early_early_trades"},"title":"Deliver early:trades","messages":[{"$ref":"#/channels/early_early_trades/messages/observed"},{"$ref":"#/channels/early_early_trades/messages/outcome"}]},"early_early_liquidity_send":{"action":"send","channel":{"$ref":"#/channels/early_early_liquidity"},"title":"Deliver early:liquidity","messages":[{"$ref":"#/channels/early_early_liquidity/messages/observed"},{"$ref":"#/channels/early_early_liquidity/messages/outcome"}]},"early_early_migrations_send":{"action":"send","channel":{"$ref":"#/channels/early_early_migrations"},"title":"Deliver early:migrations","messages":[{"$ref":"#/channels/early_early_migrations/messages/observed"},{"$ref":"#/channels/early_early_migrations/messages/outcome"}]},"early_early_token_changes_send":{"action":"send","channel":{"$ref":"#/channels/early_early_token_changes"},"title":"Deliver early:token_changes","messages":[{"$ref":"#/channels/early_early_token_changes/messages/observed"},{"$ref":"#/channels/early_early_token_changes/messages/outcome"}]},"dex_control_receive":{"action":"receive","channel":{"$ref":"#/channels/dex_control"},"messages":[{"$ref":"#/channels/dex_control/messages/subscribe"},{"$ref":"#/channels/dex_control/messages/update"},{"$ref":"#/channels/dex_control/messages/unsubscribe"},{"$ref":"#/channels/dex_control/messages/list"}]},"dex_control_send":{"action":"send","channel":{"$ref":"#/channels/dex_control"},"messages":[{"$ref":"#/channels/dex_control/messages/connected"},{"$ref":"#/channels/dex_control/messages/hint"},{"$ref":"#/channels/dex_control/messages/heartbeat"},{"$ref":"#/channels/dex_control/messages/subscribed"},{"$ref":"#/channels/dex_control/messages/updated"},{"$ref":"#/channels/dex_control/messages/unsubscribed"},{"$ref":"#/channels/dex_control/messages/listReply"},{"$ref":"#/channels/dex_control/messages/error"},{"$ref":"#/channels/dex_control/messages/replayDone"},{"$ref":"#/channels/dex_control/messages/tokenRefresh"}]},"dex_dex_trades_send":{"action":"send","channel":{"$ref":"#/channels/dex_dex_trades"},"messages":[{"$ref":"#/channels/dex_dex_trades/messages/dex_trades"}]},"dex_dex_route_send":{"action":"send","channel":{"$ref":"#/channels/dex_dex_route"},"messages":[{"$ref":"#/channels/dex_dex_route/messages/dex_route"}]},"dex_dex_leg_send":{"action":"send","channel":{"$ref":"#/channels/dex_dex_leg"},"messages":[{"$ref":"#/channels/dex_dex_leg/messages/dex_leg"}]},"dex_dex_liquidity_send":{"action":"send","channel":{"$ref":"#/channels/dex_dex_liquidity"},"messages":[{"$ref":"#/channels/dex_dex_liquidity/messages/dex_liquidity"}]},"dex_dex_graduations_send":{"action":"send","channel":{"$ref":"#/channels/dex_dex_graduations"},"messages":[{"$ref":"#/channels/dex_dex_graduations/messages/dex_graduations"}]},"dex_dev_activity_send":{"action":"send","channel":{"$ref":"#/channels/dex_dev_activity"},"messages":[{"$ref":"#/channels/dex_dev_activity/messages/dev_activity"}]},"dex_dev_activity_enrichment_send":{"action":"send","channel":{"$ref":"#/channels/dex_dev_activity_enrichment"},"messages":[{"$ref":"#/channels/dex_dev_activity_enrichment/messages/dev_activity_enrichment"}]},"webhook_kol_trade_send":{"action":"send","channel":{"$ref":"#/channels/webhook_kol_trade"},"title":"POST kol:trade","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/webhook_kol_trade/messages/kol_trade"}]},"webhook_kol_coordination_send":{"action":"send","channel":{"$ref":"#/channels/webhook_kol_coordination"},"title":"POST kol:coordination","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/webhook_kol_coordination/messages/kol_coordination"}]},"webhook_deployer_alert_send":{"action":"send","channel":{"$ref":"#/channels/webhook_deployer_alert"},"title":"POST deployer:alert","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/webhook_deployer_alert/messages/deployer_alert"}]},"webhook_deployer_bond_send":{"action":"send","channel":{"$ref":"#/channels/webhook_deployer_bond"},"title":"POST deployer:bond","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/webhook_deployer_bond/messages/deployer_bond"}]},"webhook_wallet_tracker_event_send":{"action":"send","channel":{"$ref":"#/channels/webhook_wallet_tracker_event"},"title":"POST wallet_tracker:event","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/webhook_wallet_tracker_event/messages/wallet_tracker_event"}]},"webhook_sniper_deploy_send":{"action":"send","channel":{"$ref":"#/channels/webhook_sniper_deploy"},"title":"POST sniper:deploy","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/webhook_sniper_deploy/messages/sniper_deploy"}]},"webhook_rhc_kol_trade_send":{"action":"send","channel":{"$ref":"#/channels/webhook_rhc_kol_trade"},"title":"POST rhc:kol_trade","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/webhook_rhc_kol_trade/messages/rhc_kol_trade"}]},"webhook_token_surge_send":{"action":"send","channel":{"$ref":"#/channels/webhook_token_surge"},"title":"POST token:surge","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/webhook_token_surge/messages/token_surge"}]},"webhook_token_revival_send":{"action":"send","channel":{"$ref":"#/channels/webhook_token_revival"},"title":"POST token:revival","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/webhook_token_revival/messages/token_revival"}]},"webhook_dev_activity_send":{"action":"send","channel":{"$ref":"#/channels/webhook_dev_activity"},"title":"POST dev:activity","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/webhook_dev_activity/messages/dev_activity"}]},"webhook_rhc_dev_activity_send":{"action":"send","channel":{"$ref":"#/channels/webhook_rhc_dev_activity"},"title":"POST rhc:dev_activity","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/webhook_rhc_dev_activity/messages/rhc_dev_activity"}]},"rule_webhook_copytrade_signal_send":{"action":"send","channel":{"$ref":"#/channels/rule_webhook_copytrade_signal"},"title":"POST copytrade:signal","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/rule_webhook_copytrade_signal/messages/copytrade_signal"}]},"rule_webhook_kol_coordination_send":{"action":"send","channel":{"$ref":"#/channels/rule_webhook_kol_coordination"},"title":"POST kol:coordination","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/rule_webhook_kol_coordination/messages/kol_coordination"}]},"rule_webhook_kol_first_touch_send":{"action":"send","channel":{"$ref":"#/channels/rule_webhook_kol_first_touch"},"title":"POST kol:first_touch","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/rule_webhook_kol_first_touch/messages/kol_first_touch"}]},"rule_webhook_price_alert_dip_send":{"action":"send","channel":{"$ref":"#/channels/rule_webhook_price_alert_dip"},"title":"POST price_alert:dip","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/rule_webhook_price_alert_dip/messages/price_alert_dip"}]},"rule_webhook_price_alert_recovery_send":{"action":"send","channel":{"$ref":"#/channels/rule_webhook_price_alert_recovery"},"title":"POST price_alert:recovery","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/rule_webhook_price_alert_recovery/messages/price_alert_recovery"}]},"rule_webhook_rhc_copytrade_signal_send":{"action":"send","channel":{"$ref":"#/channels/rule_webhook_rhc_copytrade_signal"},"title":"POST rhc:copytrade:signal","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/rule_webhook_rhc_copytrade_signal/messages/rhc_copytrade_signal"}]},"rule_webhook_rhc_kol_coordination_send":{"action":"send","channel":{"$ref":"#/channels/rule_webhook_rhc_kol_coordination"},"title":"POST rhc:kol:coordination","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/rule_webhook_rhc_kol_coordination/messages/rhc_kol_coordination"}]},"rule_webhook_rhc_kol_first_touch_send":{"action":"send","channel":{"$ref":"#/channels/rule_webhook_rhc_kol_first_touch"},"title":"POST rhc:kol:first_touch","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/rule_webhook_rhc_kol_first_touch/messages/rhc_kol_first_touch"}]},"rule_webhook_rhc_price_alert_dip_send":{"action":"send","channel":{"$ref":"#/channels/rule_webhook_rhc_price_alert_dip"},"title":"POST rhc:price_alert:dip","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/rule_webhook_rhc_price_alert_dip/messages/rhc_price_alert_dip"}]},"rule_webhook_rhc_price_alert_recovery_send":{"action":"send","channel":{"$ref":"#/channels/rule_webhook_rhc_price_alert_recovery"},"title":"POST rhc:price_alert:recovery","bindings":{"http":{"method":"POST","bindingVersion":"0.3.0"}},"messages":[{"$ref":"#/channels/rule_webhook_rhc_price_alert_recovery/messages/rhc_price_alert_recovery"}]}},"components":{"schemas":{"StreamFilters":{"type":"object","additionalProperties":false,"description":"Per-subscription filters (AND-combined). A filter only applies to the channels whose events carry the field it reads. Invalid values reject the affected channel with a warning — never a silent widen.","properties":{"min_sol":{"type":"number","description":"kol:trades / deployer events: minimum sol_amount."},"action":{"type":"string","enum":["buy","sell"],"description":"Trade side."},"min_mc_usd":{"type":"number","description":"Minimum market cap (USD) at event time."},"max_mc_usd":{"type":"number","description":"Maximum market cap (USD) at event time."},"kol_name":{"type":"string","description":"kol:trades: exact KOL name (case-insensitive)."},"deployer_tier":{"type":"array","items":{"type":"string"},"description":"deployer:alerts / token:graduations / token:surges: deployer tiers to keep."},"min_kols":{"type":"number","description":"kol:coordination: minimum kol_count."},"kol":{"type":"string","description":"kol:first_touches: first KOL wallet."},"mint_suffix":{"type":"string","description":"kol:first_touches: token mint suffix (e.g. \"pump\")."},"min_first_buy_sol":{"type":"number","description":"kol:first_touches: minimum first-buy size in SOL."},"min_scout_tier":{"type":"string","enum":["S","A","B","C"],"description":"kol:first_touches: minimum scout tier of the first KOL."},"min_n_touches":{"type":"number","description":"kol:first_touches: minimum scout touch count."},"sniper_scope":{"type":"string","enum":["watchlist"],"description":"sniper:deploys: only deploys by wallets on your sniper watchlist."},"kinds":{"type":"array","items":{"type":"string","enum":["surge","revival"]},"description":"token:surges: event kinds."},"tiers":{"type":"array","items":{"type":"string"},"description":"token:surges: surge tiers (early | strong | breakout)."},"launchpads":{"type":"array","items":{"type":"string"},"description":"token:surges: launchpads to keep."},"exclude_flags":{"type":"array","items":{"type":"string"},"description":"token:surges: drop frames carrying any of these risk flags."},"mints":{"type":"array","items":{"type":"string"},"description":"Solana mint scope. REQUIRED for token:prices, token:candles, token:risk (per-connection cap, see x-madeonsol-scope); optional narrowing on token:locks / token:fee_claims."},"addresses":{"type":"array","items":{"type":"string"},"description":"Robinhood Chain token addresses (0x…). REQUIRED for rhc:token_prices, rhc:token_candles, rhc:token_risk; optional on rhc:lp_events / rhc:token_locks / rhc:dev_activity."},"types":{"type":"array","items":{"type":"string","enum":["dev_buy","dev_sell"]},"description":"rhc:dev_activity: event types to keep. v1 carries dev_buy / dev_sell only: developer token transfers are never published on this channel (a transfer is not a sale)."},"deployers":{"type":"array","items":{"type":"string"},"description":"rhc:dev_activity: 0x developer wallets, matched against deployer_wallet or actor_wallet (case-insensitive)."},"wallets":{"type":"array","items":{"type":"string"},"description":"Wallet scope. REQUIRED for wallet:scores (base58) and rhc:wallet_scores (0x)."},"updates":{"type":"boolean","default":false,"description":"token:candles / rhc:token_candles: also deliver the in-progress minute (candle:update, a coalesced state stream)."},"risk_events":{"type":"array","items":{"type":"string"},"description":"token:risk / rhc:token_risk: narrow to these risk event types."},"risk_snapshot":{"type":"boolean","default":true,"description":"token:risk / rhc:token_risk: send the current stored inputs (risk:inputs) on subscribe."},"score_events":{"type":"array","items":{"type":"string"},"description":"wallet:scores / rhc:wallet_scores: narrow to these score event types."},"lifecycle":{"type":"boolean","default":false,"description":"token:locks / rhc:token_locks: opt into lock lifecycle + unlock schedule events."},"events":{"type":"array","items":{"type":"string"},"description":"token:locks / rhc:token_locks (with lifecycle:true): narrow to these lifecycle event types."},"unlock_kinds":{"type":"array","items":{"type":"string","enum":["cliff","period","final","tranche"]},"description":"Lock schedule events only: unlock kinds."},"include_automatic_claims":{"type":"boolean","default":false,"description":"token:locks lifecycle: include automatic (Streamflow) claims."},"pools":{"type":"array","items":{"type":"string"},"maxItems":250,"description":"rhc:lp_events: pool addresses (v2/v3) or v4 poolIds."},"dexes":{"type":"array","items":{"type":"string","enum":["uniswap-v2","uniswap-v3","uniswap-v4"]},"description":"rhc:lp_events: DEX versions."},"actions":{"type":"array","items":{"type":"string","enum":["add","remove","pool_created"]},"description":"rhc:lp_events: LP actions."},"material_only":{"type":"boolean","description":"rhc:lp_events: only material:true events (removals ≥ 25 %)."},"min_share":{"type":"number","minimum":0,"maximum":1000,"description":"rhc:lp_events: minimum relevant share (events without a share never match)."},"min_wallets":{"type":"integer","minimum":3,"maximum":50,"description":"token:bundles / rhc:token_bundles: minimum distinct buyers in the cluster (count at detection)."},"min_new_wallets":{"type":"integer","minimum":3,"maximum":50,"description":"token:bundles / rhc:token_bundles: minimum buyers new to the token."},"phases":{"type":"array","items":{"type":"string","enum":["launch","later","unknown"]},"description":"token:bundles / rhc:token_bundles: launch = within 5 min of the token's first sighting."},"atomic_only":{"type":"boolean","description":"token:bundles / rhc:token_bundles: only clusters where one transaction carried 3+ of the buyers."},"bundle_events":{"type":"array","items":{"type":"string","enum":["token:bundle_cluster","token:bundle_exit","rhc:token_bundle_cluster","rhc:token_bundle_exit"]},"description":"token:bundles / rhc:token_bundles: only these event types (new clusters and / or exit thresholds); default all."}}},"EarlyFilters":{"type":"object","additionalProperties":false,"description":"ShredPrism per-subscription filters. Invalid combinations or values reject the control; they never silently widen it.","properties":{"mints":{"type":"array","items":{"type":"string"},"maxItems":1000,"description":"Mint scope: primary, quote, input or output mint where present."},"actors":{"type":"array","items":{"type":"string"},"maxItems":1000,"description":"Instruction actors (base58); mutually exclusive with wallets."},"wallets":{"type":"array","items":{"type":"string"},"maxItems":1000,"description":"Custom instruction actors; mutually exclusive with actors."},"launchpads":{"type":"array","items":{"type":"string","enum":["pumpfun","launchlab"]},"maxItems":1000,"description":"Deploy/migration only."},"protocols":{"type":"array","items":{"type":"string"},"maxItems":1000,"description":"Decoded protocol names."},"actions":{"type":"array","items":{"type":"string","enum":["create","swap_intent","create_lock","create_pool","add_liquidity","remove_liquidity","migrate","mint","burn","freeze","thaw","set_authority"]},"maxItems":1000,"description":"Decoded action names."},"wallet_labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]},"maxItems":1000,"description":"Trade-only cached roster filter."},"directions":{"type":"array","items":{"type":"string","enum":["buy","sell"]},"maxItems":1000,"description":"Trade-only direction."},"amounts":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"object","required":["field","mint"],"properties":{"field":{"type":"string","enum":["requested_amount_raw","requested_input_raw","max_input_raw","min_output_raw","target_output_raw","target_lp_output_raw","requested_lp_input_raw","max_base_input_raw","max_quote_input_raw","min_base_output_raw","min_quote_output_raw","requested_base_input_raw","requested_quote_input_raw"]},"mint":{"type":"string"},"min_raw":{"type":"string","pattern":"^(0|[1-9][0-9]*)$"},"max_raw":{"type":"string","pattern":"^(0|[1-9][0-9]*)$"}}},"description":"One to four AND-combined raw-u64 instruction-argument rules; at least one bound is required."}}},"EarlyCursor":{"type":"object","required":["instance","seq"],"properties":{"instance":{"type":"string"},"seq":{"type":"integer","minimum":0}},"description":"Last fully handled ShredPrism cursor. Recovery is bounded and process-local; a server restart can produce an explicit gap."},"EarlyGap":{"type":"object","required":["event","type","reason","ts","seq","instance","cursor"],"description":"Top-level early:gap frame (no channel, no data). Sent to every connection with at least one subscription, never filtered by mint/wallet/amount. scope 'channels' = can affect only the five non-deploy families (deploy-only connections do not receive it; a deploy-only resume does not replay it). No scope (or 'all') = global, deploys included. Optional traffic_class (sparse | hot | deploys) narrows a gap to one traffic class: such a gap reaches only connections subscribed to a channel of that class and is replayed only to resumes that include one; scope keeps its documented meaning (sparse/hot gaps carry scope 'channels', deploy-class gaps scope 'all'). Outcome-capacity gaps mean a later execution-status follow-up was lost, not the observation.","properties":{"event":{"const":"early:gap"},"type":{"const":"gap"},"reason":{"type":"string"},"scope":{"type":"string","enum":["channels","all"]},"traffic_class":{"type":"string","enum":["sparse","hot","deploys"]},"slot":{"type":["integer","string","null"]},"region":{"type":"string"},"loss":{"type":"string"},"ts":{"type":"number"},"seq":{"type":"integer"},"instance":{"type":"string"},"cursor":{"$ref":"#/components/schemas/EarlyCursor"},"replayed":{"type":"boolean"}}},"EarlyEventEnvelope":{"type":"object","required":["channel","event","id","seq","instance","cursor","ts","data"],"properties":{"channel":{"type":"string","enum":["early:deploys","early:locks","early:trades","early:liquidity","early:migrations","early:token_changes"]},"event":{"type":"string","enum":["early:observed","early:outcome"]},"id":{"type":"string"},"sub_id":{"type":"string"},"seq":{"type":"integer"},"instance":{"type":"string"},"cursor":{"$ref":"#/components/schemas/EarlyCursor"},"ts":{"type":"number","description":"Server envelope time in epoch ms."},"replayed":{"type":"boolean"},"format":{"type":"string","enum":["compact-v1"]},"data":{"type":"object"}}},"DexFilters":{"type":"object","additionalProperties":false,"description":"dex-stream subscription filters. At least one targeting filter (token_mint(s), wallet(s), dex, program, deployer_tier, token_age_max_seconds or a market-cap bound) is required.","properties":{"token_mint":{"type":"string","description":"One mint."},"token_mints":{"type":"array","items":{"type":"string"},"maxItems":50,"description":"Up to 50 mints."},"wallet":{"type":"string","description":"One trader wallet."},"wallets":{"type":"array","items":{"type":"string"},"maxItems":50,"description":"Up to 50 trader wallets."},"dex":{"oneOf":[{"type":"string","enum":["pumpfun","pumpswap","raydium","jupiter","orca","meteora","launchlab","moonshot"]},{"type":"array","items":{"type":"string","enum":["pumpfun","pumpswap","raydium","jupiter","orca","meteora","launchlab","moonshot"]}}],"description":"Venue name(s)."},"program":{"type":"string","description":"DEX program id."},"deployer_tier":{"oneOf":[{"type":"string","enum":["elite","good","moderate","rising","cold","unranked"]},{"type":"array","items":{"type":"string","enum":["elite","good","moderate","rising","cold","unranked"]}}],"description":"Deployer tier(s) of the traded token."},"token_age_max_seconds":{"type":"number","exclusiveMinimum":0,"description":"Only tokens younger than this."},"market_cap_min_sol":{"type":"number","minimum":0,"description":"Minimum market cap in SOL."},"market_cap_max_sol":{"type":"number","exclusiveMinimum":0,"description":"Maximum market cap in SOL."},"action":{"type":"string","enum":["buy","sell"],"description":"Trade side."},"min_sol":{"type":"number","minimum":0,"description":"Minimum trade size in SOL. Absent = 0.05 (echoed in the subscribed ack); 0 = everything (dust frames carry dust:true). Compared against sol_amount, which for a USDC/USDT-paid swap is its SOL-equivalent (live since 2026-10-05; see sol_amount_basis)."},"pool":{"type":"string","description":"dex:liquidity: one pool address."},"pools":{"type":"array","items":{"type":"string"},"description":"dex:liquidity: pool addresses."},"actions":{"type":"array","items":{"type":"string","enum":["pool_created","add","remove"]},"description":"dex:liquidity: liquidity actions."},"min_share_of_reserves":{"type":"number","minimum":0,"maximum":1,"description":"dex:liquidity: minimum share of pool reserves."},"material_only":{"type":"boolean","description":"dex:liquidity: only material events."},"min_usd":{"not":{},"description":"REJECTED on dex:liquidity (no USD price source on this stream); listed so clients know it is refused."}}},"ResumeCursor":{"type":"object","description":"The last frame your handler FINISHED: served from the in-memory ring on the same instance, else durable storage per channel (bounded). replay_end states per channel what was and was not recovered.","required":["instance","seq","ts"],"properties":{"instance":{"type":"string","description":"`instance` from connected/subscribed. A different instance = the server restarted and seq reset."},"seq":{"type":"integer","minimum":0},"ts":{"type":"number","description":"Epoch ms of that frame."}}},"StreamEventEnvelope":{"type":"object","required":["channel","event","id","seq","data","ts"],"properties":{"channel":{"type":"string","enum":["kol:trades","kol:coordination","kol:first_touches","deployer:alerts","wallet_tracker:events","copytrade:signals","price_alert:events","sniper:deploys","token:graduations","token:prices","token:locks","token:fee_claims","token:surges","rhc:kol_trades","rhc:dex_trades","rhc:dex_trades_unattributed","rhc:new_tokens","rhc:copytrade:signals","rhc:price_alert:events","rhc:kol:coordination","rhc:kol:first_touches","rhc:token_locks","rhc:token_prices","rhc:lp_events","token:candles","rhc:token_candles","token:risk","rhc:token_risk","wallet:scores","rhc:wallet_scores","rhc:dev_activity","token:bundles","rhc:token_bundles"]},"sub_id":{"type":"string","description":"Present on frames of a NAMED subscription. An event matching several subscriptions is delivered once per subscription — dedupe by (sub_id, id)."},"event":{"type":"string","description":"Event type (see each channel's messages)."},"id":{"type":"string","description":"Stable event id — the same on live, ring-replayed and durable-backfilled delivery. Dedupe by id (at-least-once)."},"seq":{"type":["integer","null"],"description":"Per-process monotonic sequence; null on durable-replayed frames and on state-stream frames. Do not compare across `instance`s."},"data":{"type":"object"},"ts":{"type":"number","description":"Epoch ms."},"replayed":{"type":"boolean"},"mode":{"type":"string","enum":["ring","durable"]},"recovered":{"description":"Set when the frame was re-broadcast by the bus-reconnect backfill."},"partial":{"type":"boolean"},"missing":{"type":"array","items":{"type":"string"},"description":"Fields a recovered/snapshot frame could not reconstruct."},"snapshot":{"type":"boolean","description":"State-stream snapshot frame (token:prices, rhc:token_prices, risk inputs)."}}},"WebhookBody":{"type":"object","required":["event","data","timestamp"],"properties":{"event":{"type":"string"},"data":{"type":"object"},"timestamp":{"type":"string","format":"date-time","description":"ISO time the body was built (constant across retries; the signed X-MadeOnSol-Timestamp is regenerated per attempt)."}}},"WebhookHeaders":{"type":"object","required":["X-MadeOnSol-Timestamp","X-MadeOnSol-Signature","X-MadeOnSol-Event"],"properties":{"X-MadeOnSol-Timestamp":{"type":"string","pattern":"^[0-9]+$","description":"Epoch MILLISECONDS as a decimal string, regenerated on every attempt."},"X-MadeOnSol-Signature":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"hex(HMAC-SHA256(secret, `${X-MadeOnSol-Timestamp}.${rawBody}`)) — sign/verify the raw request bytes, not re-serialized JSON. Compare in constant time; reject stale timestamps (a 5-minute window fits every retry)."},"X-MadeOnSol-Event":{"type":"string","description":"Same as body.event."},"Content-Type":{"type":"string","const":"application/json"},"User-Agent":{"type":"string","const":"MadeOnSol-Webhook/1.0"}}}},"messages":{"stream.subscribe":{"name":"stream.subscribe","title":"stream.subscribe","summary":"Open or extend a subscription. Nothing is delivered until a subscribe.","contentType":"application/json","payload":{"type":"object","required":["type","channels"],"properties":{"type":{"const":"subscribe"},"sub_id":{"type":"string","pattern":"^[A-Za-z0-9_.-]{1,64}$","description":"Named subscription id. Omitted = the implicit \"default\" subscription (its frames carry no sub_id)."},"channels":{"type":"array","items":{"type":"string","enum":["kol:trades","kol:coordination","kol:first_touches","deployer:alerts","wallet_tracker:events","copytrade:signals","price_alert:events","sniper:deploys","token:graduations","token:prices","token:locks","token:fee_claims","token:surges","rhc:kol_trades","rhc:dex_trades","rhc:dex_trades_unattributed","rhc:new_tokens","rhc:copytrade:signals","rhc:price_alert:events","rhc:kol:coordination","rhc:kol:first_touches","rhc:token_locks","rhc:token_prices","rhc:lp_events","token:candles","rhc:token_candles","token:risk","rhc:token_risk","wallet:scores","rhc:wallet_scores","rhc:dev_activity","token:bundles","rhc:token_bundles","rhc:trades"]},"description":"Deprecated aliases are normalised before the tier gate and acked under the canonical name: {\"rhc:trades\":\"rhc:dex_trades\"}."},"filters":{"$ref":"#/components/schemas/StreamFilters"},"resume":{"$ref":"#/components/schemas/ResumeCursor"},"replay_since_seq":{"type":"integer","minimum":0,"description":"Legacy, ring only."},"replay_since_ts":{"type":"number","description":"Legacy, ring only (epoch ms)."}},"examples":[{"type":"subscribe","channels":["kol:trades"]},{"type":"subscribe","sub_id":"prices","channels":["token:prices"],"filters":{"mints":["<mint>"]}}]}},"stream.update":{"name":"stream.update","title":"stream.update","summary":"Replace a subscription's filters.","contentType":"application/json","payload":{"type":"object","required":["type","filters"],"properties":{"type":{"const":"update"},"sub_id":{"type":"string","pattern":"^[A-Za-z0-9_.-]{1,64}$","description":"Named subscription id. Omitted = the implicit \"default\" subscription (its frames carry no sub_id)."},"filters":{"$ref":"#/components/schemas/StreamFilters"}}}},"stream.unsubscribe":{"name":"stream.unsubscribe","title":"stream.unsubscribe","summary":"Remove channels, or the whole named subscription.","contentType":"application/json","payload":{"type":"object","required":["type"],"properties":{"type":{"const":"unsubscribe"},"sub_id":{"type":"string","pattern":"^[A-Za-z0-9_.-]{1,64}$","description":"Named subscription id. Omitted = the implicit \"default\" subscription (its frames carry no sub_id)."},"channels":{"type":"array","items":{"type":"string"}}}}},"stream.list":{"name":"stream.list","title":"stream.list","summary":"List the socket's subscriptions.","contentType":"application/json","payload":{"type":"object","required":["type"],"properties":{"type":{"const":"list"}}}},"stream.connected":{"name":"stream.connected","title":"stream.connected","summary":"First frame after a successful handshake.","contentType":"application/json","payload":{"type":"object","required":["type","tier","channels","seq","instance","replay","subscriptions","ts"],"properties":{"type":{"const":"connected"},"tier":{"type":"string"},"note":{"type":"string"},"subscribe_example":{"type":"object"},"channels":{"type":"array","items":{"type":"string"}},"seq":{"type":"integer"},"instance":{"type":"string"},"replay":{"type":"object"},"subscriptions":{"type":"object","properties":{"max":{"type":"integer"},"how":{"type":"string"}}},"ts":{"type":"number"}}}},"stream.hint":{"name":"stream.hint","title":"stream.hint","summary":"Sent once, 10000 ms after connect, if no channel is subscribed.","contentType":"application/json","payload":{"type":"object","properties":{"type":{"const":"hint"},"message":{"type":"string"},"channels":{"type":"array","items":{"type":"string"}},"docs":{"type":"string"},"ts":{"type":"number"}}}},"stream.heartbeat":{"name":"stream.heartbeat","title":"stream.heartbeat","summary":"Every 15000 ms, alongside a protocol ping; a peer that misses a pong for one interval is terminated.","contentType":"application/json","payload":{"type":"object","required":["type","ts"],"properties":{"type":{"const":"heartbeat"},"ts":{"type":"number"}}}},"stream.subscribed":{"name":"stream.subscribed","title":"stream.subscribed","summary":"Subscribe ack (accepted channels only; rejected ones arrive as warning channels_rejected).","contentType":"application/json","payload":{"type":"object","required":["type","channels","filters","seq","instance","ts"],"properties":{"type":{"const":"subscribed"},"sub_id":{"type":"string"},"channels":{"type":"array","items":{"type":"string"}},"filters":{"type":"object"},"seq":{"type":"integer"},"instance":{"type":"string"},"replay":{"type":"object"},"resume":{"type":"object","properties":{"instance":{},"seq":{},"ts":{},"accepted":{"type":"boolean"},"reason":{"type":"string"},"queued":{"type":"boolean"}}},"ts":{"type":"number"}}}},"stream.updated":{"name":"stream.updated","title":"stream.updated","summary":"Update ack.","contentType":"application/json","payload":{"type":"object","properties":{"type":{"const":"updated"},"sub_id":{"type":"string"},"filters":{"type":"object"},"ts":{"type":"number"}}}},"stream.unsubscribed":{"name":"stream.unsubscribed","title":"stream.unsubscribed","summary":"Unsubscribe ack.","contentType":"application/json","payload":{"type":"object","properties":{"type":{"const":"unsubscribed"},"sub_id":{"type":"string"},"channels":{"type":"array","items":{"type":"string"}},"all":{"type":"boolean"},"ts":{"type":"number"}}}},"stream.subscriptions":{"name":"stream.subscriptions","title":"stream.subscriptions","summary":"Reply to list.","contentType":"application/json","payload":{"type":"object","properties":{"type":{"const":"subscriptions"},"list":{"type":"array"},"count":{"type":"integer"},"max":{"type":"integer"},"ts":{"type":"number"}}}},"stream.warning":{"name":"stream.warning","title":"stream.warning","summary":"A refused operation or revoked/rejected channel. Subscription codes are a bounded vocabulary (SUBSCRIPTION_WARNING_CODES).","contentType":"application/json","payload":{"type":"object","required":["type","code","ts"],"properties":{"type":{"const":"warning"},"code":{"type":"string","examples":["invalid_sub_id","too_many_subscriptions","unknown_sub_id","invalid_filters","channels_rejected","channels_revoked","replay_in_progress","snapshot_failed"]},"sub_id":{"type":"string"},"message":{"type":"string"},"rejected":{"type":"array","items":{"type":"object","properties":{"channel":{"type":"string"},"reason":{"type":"string"}}}},"ts":{"type":"number"}}}},"stream.replay_start":{"name":"stream.replay_start","title":"stream.replay_start","summary":"Starts a replay; no live frame for that subscription precedes replay_end.","contentType":"application/json","payload":{"type":"object","required":["type"],"properties":{"type":{"const":"replay_start"},"sub_id":{"type":"string"},"mode":{"type":"string"}}}},"stream.replay_end":{"name":"stream.replay_end","title":"stream.replay_end","summary":"Honest end-of-replay summary: per channel what was and was not recovered. Always sent when a replay was requested, even with nothing to replay.","contentType":"application/json","payload":{"type":"object","required":["type","count","sent","matched","complete","live_from_seq","channels"],"properties":{"type":{"const":"replay_end"},"sub_id":{"type":"string"},"count":{"type":"integer"},"sent":{"type":"integer"},"matched":{"type":"integer"},"complete":{"type":"boolean"},"reason":{"type":["string","null"]},"last_seq":{"type":["integer","null"]},"last_ts":{"type":["number","null"]},"live_from_seq":{"type":"integer"},"mode":{"type":["string","null"]},"resume_reason":{"type":["string","null"]},"channels":{"type":"object","additionalProperties":{"type":"object","properties":{"sent":{"type":"integer"},"matched":{"type":"integer"},"complete":{"type":"boolean"},"mode":{"type":"string"},"gap":{"type":"string"}}}}}}},"stream.token_refresh":{"name":"stream.token_refresh","title":"stream.token_refresh","summary":"The stream token was rotated (POST /api/v1/stream/token {rotate:true}); use the new token on the next connect. The old one stays valid 60 s.","contentType":"application/json","payload":{"type":"object","required":["type","token"],"properties":{"type":{"const":"token_refresh"},"token":{"type":"string"},"expires_at":{"type":["string","null"]},"ts":{"type":"number"}}}},"stream_event_kol_trade":{"name":"kol:trade","title":"kol:trade","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"kol:trade"},"data":{"type":"object","required":["kol_name","wallet_address","token_mint","token_name","token_symbol","action","sol_amount","token_amount","tx_signature","traded_at"],"properties":{"kol_name":{"type":"string"},"wallet_address":{"type":"string"},"token_mint":{"type":"string"},"token_name":{"type":"string"},"token_symbol":{"type":"string"},"action":{"type":"string"},"sol_amount":{"type":"number"},"token_amount":{"type":"number"},"tx_signature":{"type":"string"},"slot":{"type":"number"},"traded_at":{"type":"string"},"chain_time_estimate":{"type":"string"},"price_usd_at_trade":{"type":"number"},"market_cap_usd_at_trade":{"type":"number"},"fdv_usd_at_trade":{"type":"number"},"liquidity_usd_at_trade":{"type":"number"},"primary_dex":{"type":"string"},"primary_pool_address":{"type":"string"}},"additionalProperties":true,"examples":[{"kol_name":"ansem","wallet_address":"7vfCExampleKolWallet00000000000000000000000","token_mint":"So11111111111111111111111111111111111111112","token_name":"Sample Token","token_symbol":"SMPL","action":"buy","sol_amount":5.25,"token_amount":1000000,"tx_signature":"kolExampleSignature0000000000000000000000000","slot":301234567,"traded_at":"2026-06-10T17:00:00.000Z","chain_time_estimate":"2026-06-10T16:59:59.000Z","price_usd_at_trade":0.0000184,"market_cap_usd_at_trade":18400,"fdv_usd_at_trade":18400,"liquidity_usd_at_trade":9200,"primary_dex":"pumpswap","primary_pool_address":"PoolExampleAddress0000000000000000000000000"}],"x-madeonsol-contract-source":"services/kol-tracker/index.mjs"}}}]}},"stream_event_kol_coordination":{"name":"kol:coordination","title":"kol:coordination","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"kol:coordination"},"data":{"type":"object","required":["rule_id","rule_name","user_id","fired_at","token_mint","token_symbol","token_name","kol_count","exited_count","avg_winrate_7d","entry_rank_avg","coordination_score","score_version","window_minutes","is_rearm","signal_id"],"properties":{"rule_id":{"type":"string"},"rule_name":{"type":"string"},"user_id":{"type":"string"},"fired_at":{"type":"string"},"token_mint":{"type":"string"},"token_symbol":{"type":"string"},"token_name":{"type":"string"},"triggering_trade":{"type":"object"},"kol_count":{"type":"number"},"exited_count":{"type":"number"},"avg_winrate_7d":{"type":"number"},"entry_rank_avg":{"type":"number"},"coordination_score":{"type":"number"},"score_version":{"type":"string"},"window_minutes":{"type":"number"},"kols":{"type":"array"},"is_rearm":{"type":"boolean"},"signal_id":{"type":"number"}},"additionalProperties":true,"examples":[{"rule_id":"11111111-2222-4333-8444-555555555555","rule_name":"3+ KOLs in 15m","user_id":"00000000-0000-0000-0000-000000000000","fired_at":"2026-06-10T17:00:00.000Z","token_mint":"PumpExampleMint00000000000000000000000000pump","token_symbol":"TEST","token_name":"Test Token","triggering_trade":{"wallet_address":"7vfCExampleKolWallet00000000000000000000000","kol_name":"ansem","sol_amount":5.25,"tx_signature":"kolExampleSignature0000000000000000000000000","traded_at":"2026-06-10T16:59:58.000Z","market_cap_usd_at_trade":48000,"price_usd_at_trade":0.000048},"kol_count":3,"exited_count":0,"avg_winrate_7d":61.5,"entry_rank_avg":22.4,"coordination_score":74,"score_version":"v1","window_minutes":15,"kols":[{"wallet":"7vfCExampleKolWallet00000000000000000000000","name":"ansem"},{"wallet":"3kBxExampleKolWallet00000000000000000000000","name":"alpha_scout"},{"wallet":"9pQzExampleKolWallet00000000000000000000000","name":null}],"is_rearm":false,"signal_id":98765}],"x-madeonsol-contract-source":"services/signal-evaluator/coordination.mjs"}}}]}},"stream_event_kol_first_touch":{"name":"kol:first_touch","title":"kol:first_touch","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"kol:first_touch"},"data":{"type":"object","additionalProperties":true,"description":"Payload of kol:first_touch. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_deployer_alert":{"name":"deployer:alert","title":"deployer:alert","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"deployer:alert"},"data":{"type":"object","required":["deployer_wallet","deployer_tier","token_mint","token_name","token_symbol","alert_type","bonding_rate","recent_bond_rate","total_bonded","total_deployed","runner_rate","labeled_tokens","market_cap_at_alert","deployer_sol_balance"],"properties":{"alert_id":{"type":"number"},"tx_signature":{"type":"string"},"slot":{"type":"number"},"detected_at":{"type":"string"},"deployer_wallet":{"type":"string"},"deployer_tier":{"type":"string"},"token_mint":{"type":"string"},"token_name":{"type":"string"},"token_symbol":{"type":"string"},"launchpad":{"type":"string"},"alert_type":{"type":"string"},"bonding_rate":{"type":"number"},"recent_bond_rate":{"type":"number"},"total_bonded":{"type":"number"},"total_deployed":{"type":"number"},"runner_rate":{"type":"number"},"labeled_tokens":{"type":"number"},"market_cap_at_alert":{"type":"number"},"deployer_sol_balance":{"type":"number"},"dev_buy_sol":{"type":"number"},"dev_buy_supply_pct":{"type":"number"}},"additionalProperties":true,"examples":[{"alert_id":123456,"tx_signature":"deployExampleSignature000000000000000000000","slot":301234567,"detected_at":"2026-06-10T17:00:00.000Z","deployer_wallet":"8kP4ExampleDeployerWallet0000000000000000000","deployer_tier":"elite","token_mint":"PumpExampleMint00000000000000000000000000pump","token_name":"Test Token","token_symbol":"TEST","launchpad":"pumpfun","alert_type":"new_deploy","bonding_rate":0.67,"recent_bond_rate":0.7,"total_bonded":10,"total_deployed":15,"runner_rate":0.2,"labeled_tokens":8,"market_cap_at_alert":25000,"deployer_sol_balance":12.4,"dev_buy_sol":1.5,"dev_buy_supply_pct":3.2}],"x-madeonsol-contract-source":"services/deployer-listener/index.mjs"}}}]}},"stream_event_deployer_bond":{"name":"deployer:bond","title":"deployer:bond","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"deployer:bond"},"data":{"type":"object","required":["deployer_wallet","deployer_tier","token_mint","token_name","token_symbol","time_to_bond_minutes","bonding_rate","recent_bond_rate","total_bonded","total_deployed","runner_rate","labeled_tokens","market_cap_at_alert","deployer_sol_balance"],"properties":{"deployer_wallet":{"type":"string"},"deployer_tier":{"type":"string"},"token_mint":{"type":"string"},"token_name":{"type":"string"},"token_symbol":{"type":"string"},"time_to_bond_minutes":{"type":"number"},"bonding_rate":{"type":"number"},"recent_bond_rate":{"type":"number"},"total_bonded":{"type":"number"},"total_deployed":{"type":"number"},"runner_rate":{"type":"number"},"labeled_tokens":{"type":"number"},"market_cap_at_alert":{"type":"number"},"deployer_sol_balance":{"type":"number"}},"additionalProperties":true,"examples":[{"deployer_wallet":"8kP4ExampleDeployerWallet0000000000000000000","deployer_tier":"elite","token_mint":"PumpExampleMint00000000000000000000000000pump","token_name":"Test Token","token_symbol":"TEST","time_to_bond_minutes":14.2,"bonding_rate":0.67,"recent_bond_rate":0.7,"total_bonded":10,"total_deployed":15,"runner_rate":0.2,"labeled_tokens":8,"market_cap_at_alert":69000,"deployer_sol_balance":12.4}],"x-madeonsol-contract-source":"services/deployer-listener/index.mjs"}}}]}},"stream_event_wallet_tracker_event":{"name":"wallet_tracker:event","title":"wallet_tracker:event","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"wallet_tracker:event"},"data":{"type":"object","required":["subscriber","wallet_address","label","event_type","action","token_mint","sol_amount","token_amount","counterparty","tx_signature","block_time","ts"],"properties":{"subscriber":{"type":"string"},"wallet_address":{"type":"string"},"label":{"type":"string"},"event_type":{"type":"string"},"action":{"type":"string"},"token_mint":{"type":"string"},"sol_amount":{"type":"number"},"token_amount":{"type":"number"},"counterparty":{},"tx_signature":{"type":"string"},"block_time":{"type":"number"},"slot":{"type":"number"},"replayed":{"type":"boolean"},"ts":{"type":"string"}},"additionalProperties":true,"examples":[{"subscriber":"00000000-0000-0000-0000-000000000000","wallet_address":"9aBcExampleTrackedWallet0000000000000000000","label":"whale-1","event_type":"swap","action":"buy","token_mint":"PumpExampleMint00000000000000000000000000pump","sol_amount":3.1,"token_amount":500000,"counterparty":null,"tx_signature":"wtExampleSignature00000000000000000000000000","block_time":1780000000,"slot":301234567,"replayed":false,"ts":"2026-06-10T17:00:00.000Z"}],"x-madeonsol-contract-source":"services/wallet-tracker/index.mjs"}}}]}},"stream_event_copytrade_signal":{"name":"copytrade:signal","title":"copytrade:signal","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"copytrade:signal"},"data":{"type":"object","additionalProperties":true,"description":"Payload of copytrade:signal. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_price_alert_dip":{"name":"price_alert:dip","title":"price_alert:dip","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"price_alert:dip"},"data":{"type":"object","additionalProperties":true,"description":"Payload of price_alert:dip. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_price_alert_recovery":{"name":"price_alert:recovery","title":"price_alert:recovery","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"price_alert:recovery"},"data":{"type":"object","additionalProperties":true,"description":"Payload of price_alert:recovery. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_sniper_deploy":{"name":"sniper:deploy","title":"sniper:deploy","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"sniper:deploy"},"data":{"type":"object","required":["mint","name","symbol","deployer","deployer_wallet","signature","slot","detected_at","detection_region","confidence","deployer_tier","deployer_bond_rate","deployer_total_bonded","deployer_recent","deployer_runner_rate","deployer_labeled_tokens"],"properties":{"mint":{"type":"string"},"name":{"type":"string"},"symbol":{"type":"string"},"deployer":{"type":"string"},"deployer_wallet":{"type":"string"},"signature":{"type":"string"},"slot":{"type":"number"},"detected_at":{"type":"string"},"detection_region":{"type":"string"},"confidence":{"type":"string"},"deployer_tier":{"type":"string"},"deployer_bond_rate":{"type":"number"},"deployer_total_bonded":{"type":"number"},"deployer_recent":{"type":"string"},"deployer_runner_rate":{"type":"number"},"deployer_labeled_tokens":{"type":"number"}},"additionalProperties":true,"examples":[{"mint":"9kQuExamplePumpMint000000000000000000000pump","name":"Waffle Inu","symbol":"WAFFLE","deployer":"7dExExampleDeployerWallet0000000000000000000","deployer_wallet":"7dExExampleDeployerWallet0000000000000000000","signature":"5xTExampleSignature000000000000000000000000","slot":301234567,"detected_at":"2026-06-10T17:00:00.000Z","detection_region":"Frankfurt","confidence":"deshred","deployer_tier":"elite","deployer_bond_rate":0.734,"deployer_total_bonded":41,"deployer_recent":"BBBBBFBBB","deployer_runner_rate":0.18,"deployer_labeled_tokens":22}],"x-madeonsol-contract-source":"services/sniper-detector/index.mjs"}}}]}},"stream_event_token_graduation":{"name":"token:graduation","title":"token:graduation","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"token:graduation"},"data":{"type":"object","required":["token_mint","token_name","token_symbol","time_to_bond_minutes","deployer_wallet","deployer_tier","market_cap_usd","bonded_at"],"properties":{"token_mint":{"type":"string"},"token_name":{"type":"string"},"token_symbol":{"type":"string"},"time_to_bond_minutes":{"type":"number"},"deployer_wallet":{"type":"string"},"deployer_tier":{"type":"string"},"market_cap_usd":{"type":"number"},"bonded_at":{"type":"string"}},"additionalProperties":true,"examples":[{"token_mint":"PumpExampleMint00000000000000000000000000pump","token_name":"Graduated Token","token_symbol":"GRAD","time_to_bond_minutes":22.5,"deployer_wallet":"8kP4ExampleDeployerWallet0000000000000000000","deployer_tier":"good","market_cap_usd":71000,"bonded_at":"2026-06-10T17:00:00.000Z"}],"x-madeonsol-contract-source":"services/deployer-listener/index.mjs"}}}]}},"stream_event_token_price":{"name":"token:price","title":"token:price","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"token:price"},"data":{"type":"object","required":["mint","price_usd","market_cap_usd","liquidity_usd","primary_dex","source"],"properties":{"mint":{"type":"string"},"price_usd":{"type":"number"},"vwap_price_usd":{"type":"number"},"vwap_status":{"type":"string"},"market_cap_usd":{"type":"number"},"fdv_usd":{"type":"number"},"liquidity_usd":{"type":"number"},"primary_dex":{"type":"string"},"primary_pool_address":{"type":"string"},"mc_change_pct":{"type":"number"},"volume_usd":{"type":"number"},"mev_volume_pct":{"type":"number"},"history_age_seconds":{"type":"number"},"source":{"type":"string"}},"additionalProperties":true,"examples":[{"mint":"DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263","price_usd":0.0000246,"vwap_price_usd":0.0000245,"vwap_status":"ok","market_cap_usd":2070000000,"fdv_usd":2170000000,"liquidity_usd":84100000,"primary_dex":"orca","primary_pool_address":"PoolExampleAddress0000000000000000000000000","mc_change_pct":1.2,"volume_usd":41000,"mev_volume_pct":3.1,"history_age_seconds":300,"source":"mc-tracker"}],"x-madeonsol-contract-source":"services/ws-streaming/index.mjs"}}}]}},"stream_event_token_lock":{"name":"token:lock","title":"token:lock","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"token:lock"},"data":{"type":"object","additionalProperties":true,"description":"Payload of token:lock. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_token_lock_claimed":{"name":"token:lock_claimed","title":"token:lock_claimed","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"token:lock_claimed"},"data":{"type":"object","additionalProperties":true,"description":"Payload of token:lock_claimed. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_token_lock_cancelled":{"name":"token:lock_cancelled","title":"token:lock_cancelled","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"token:lock_cancelled"},"data":{"type":"object","additionalProperties":true,"description":"Payload of token:lock_cancelled. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_token_lock_closed":{"name":"token:lock_closed","title":"token:lock_closed","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"token:lock_closed"},"data":{"type":"object","additionalProperties":true,"description":"Payload of token:lock_closed. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_token_lock_updated":{"name":"token:lock_updated","title":"token:lock_updated","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"token:lock_updated"},"data":{"type":"object","additionalProperties":true,"description":"Payload of token:lock_updated. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_token_unlock_upcoming":{"name":"token:unlock_upcoming","title":"token:unlock_upcoming","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"token:unlock_upcoming"},"data":{"type":"object","additionalProperties":true,"description":"Payload of token:unlock_upcoming. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_token_unlock_available":{"name":"token:unlock_available","title":"token:unlock_available","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"token:unlock_available"},"data":{"type":"object","additionalProperties":true,"description":"Payload of token:unlock_available. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_token_fee_claim":{"name":"token:fee_claim","title":"token:fee_claim","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"token:fee_claim"},"data":{"type":"object","additionalProperties":true,"description":"Payload of token:fee_claim. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_token_surge":{"name":"token:surge","title":"token:surge","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"token:surge"},"data":{"type":"object","required":["id","kind","tier","mint","symbol","name","launchpad","primary_dex","fired_at","birth_at","birth_source","age_seconds","market_cap_usd","liquidity_usd","baseline_mc_usd","baseline_source","mc_multiple","mc_change_3m_pct","dormant_hours","prev_mc_usd","peak_mc_usd","tape","kol","early_buyers","deployer","deployer_wallet","deployer_tier","risk_flags","detail_url"],"properties":{"id":{"type":"number"},"kind":{"type":"string"},"tier":{"type":"string"},"mint":{"type":"string"},"symbol":{"type":"string"},"name":{"type":"string"},"launchpad":{"type":"string"},"primary_dex":{"type":"string"},"fired_at":{"type":"string"},"birth_at":{"type":"string"},"birth_source":{"type":"string"},"age_seconds":{"type":"number"},"market_cap_usd":{"type":"number"},"liquidity_usd":{"type":"number"},"liquidity_to_mc_ratio":{"type":"number"},"price_usd":{"type":"number"},"baseline_mc_usd":{"type":"number"},"baseline_source":{"type":"string"},"mc_multiple":{"type":"number"},"mc_change_3m_pct":{"type":"number"},"dormant_hours":{},"prev_mc_usd":{},"mc_vs_prev_multiple":{},"peak_mc_usd":{"type":"number"},"pct_of_peak":{"type":"number"},"bonding_progress_pct":{"type":"number"},"is_bonded":{"type":"boolean"},"tape":{"type":"object"},"kol":{"type":"object"},"early_buyers":{"type":"object"},"deployer":{"type":"object"},"deployer_wallet":{"type":"string"},"deployer_tier":{"type":"string"},"mint_authority_revoked":{"type":"boolean"},"freeze_authority_revoked":{"type":"boolean"},"is_token_2022":{"type":"boolean"},"risk_flags":{"type":"array"},"detail_url":{"type":"string"},"enrichment_available":{"type":"boolean"}},"additionalProperties":true,"examples":[{"id":1234,"kind":"surge","tier":"strong","mint":"SurgeExampleMint0000000000000000000000000pump","symbol":"RUNNER","name":"Runner Coin","launchpad":"pumpfun","primary_dex":"pumpfun","fired_at":"2026-08-28T10:00:00.000Z","birth_at":"2026-08-28T09:52:30.000Z","birth_source":"sniper","age_seconds":450,"market_cap_usd":38400,"liquidity_usd":9100,"liquidity_to_mc_ratio":0.237,"price_usd":0.0000384,"baseline_mc_usd":5600,"baseline_source":"launch","mc_multiple":6.857,"mc_change_3m_pct":112.4,"dormant_hours":null,"prev_mc_usd":null,"mc_vs_prev_multiple":null,"peak_mc_usd":39200,"pct_of_peak":97.96,"bonding_progress_pct":41.2,"is_bonded":false,"tape":{"since":"2026-08-28T09:52:30.000Z","buys":96,"sells":31,"trades":127,"buy_volume_usd":21300,"sell_volume_usd":6900,"volume_usd":28200,"mev_volume_usd":410,"unique_buyers":58,"unique_wallets":63,"trades_per_wallet":2.02,"wallet_data_available":true},"kol":{"buyers":2,"buys":3,"sells":0,"names":["alpha_scout","degen_dan"]},"early_buyers":{"count":20,"bundled":0,"cohort_sol":18.4,"sold":3,"sniper_wallets":1},"deployer":{"wallet":"7dExExampleDeployerWallet0000000000000000000","tier":"good","bonding_rate":0.31,"total_bonded":9,"total_deployed":29,"runner_rate":0.27,"labeled_tokens":22,"recent":"BDDBBDDDBD"},"deployer_wallet":"7dExExampleDeployerWallet0000000000000000000","deployer_tier":"good","mint_authority_revoked":true,"freeze_authority_revoked":true,"is_token_2022":false,"risk_flags":[],"detail_url":"https://madeonsol.com/api/v1/token/SurgeExampleMint0000000000000000000000000pump","enrichment_available":true}],"x-madeonsol-contract-source":"services/surge-tracker/index.mjs"}}}]}},"stream_event_token_revival":{"name":"token:revival","title":"token:revival","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"token:revival"},"data":{"type":"object","required":["id","kind","tier","mint","symbol","name","launchpad","primary_dex","fired_at","birth_at","birth_source","age_seconds","market_cap_usd","liquidity_usd","baseline_mc_usd","baseline_source","mc_multiple","mc_change_3m_pct","dormant_hours","prev_mc_usd","peak_mc_usd","tape","kol","early_buyers","deployer","deployer_wallet","deployer_tier","risk_flags","detail_url"],"properties":{"id":{"type":"number"},"kind":{"type":"string"},"tier":{},"mint":{"type":"string"},"symbol":{"type":"string"},"name":{"type":"string"},"launchpad":{"type":"string"},"primary_dex":{"type":"string"},"fired_at":{"type":"string"},"birth_at":{"type":"string"},"birth_source":{"type":"string"},"age_seconds":{"type":"number"},"market_cap_usd":{"type":"number"},"liquidity_usd":{"type":"number"},"liquidity_to_mc_ratio":{"type":"number"},"price_usd":{"type":"number"},"baseline_mc_usd":{},"baseline_source":{},"mc_multiple":{},"mc_change_3m_pct":{},"dormant_hours":{"type":"number"},"prev_mc_usd":{"type":"number"},"mc_vs_prev_multiple":{"type":"number"},"peak_mc_usd":{"type":"number"},"pct_of_peak":{"type":"number"},"bonding_progress_pct":{},"is_bonded":{"type":"boolean"},"tape":{"type":"object"},"kol":{"type":"object"},"early_buyers":{"type":"object"},"deployer":{"type":"object"},"deployer_wallet":{"type":"string"},"deployer_tier":{"type":"string"},"mint_authority_revoked":{"type":"boolean"},"freeze_authority_revoked":{"type":"boolean"},"is_token_2022":{"type":"boolean"},"risk_flags":{"type":"array"},"detail_url":{"type":"string"},"enrichment_available":{"type":"boolean"}},"additionalProperties":true,"examples":[{"id":1235,"kind":"revival","tier":null,"mint":"RevivalExampleMint00000000000000000000000pump","symbol":"GHOST","name":"Ghost Coin","launchpad":"pumpfun","primary_dex":"pumpswap","fired_at":"2026-08-28T10:05:00.000Z","birth_at":"2026-07-02T14:20:00.000Z","birth_source":"deployer","age_seconds":4915500,"market_cap_usd":61000,"liquidity_usd":14800,"liquidity_to_mc_ratio":0.243,"price_usd":0.000061,"baseline_mc_usd":null,"baseline_source":null,"mc_multiple":null,"mc_change_3m_pct":null,"dormant_hours":412.6,"prev_mc_usd":22100,"mc_vs_prev_multiple":2.76,"peak_mc_usd":340000,"pct_of_peak":17.94,"bonding_progress_pct":null,"is_bonded":true,"tape":{"since":"2026-08-28T09:58:00.000Z","buys":27,"sells":4,"trades":31,"buy_volume_usd":8900,"sell_volume_usd":1100,"volume_usd":10000,"mev_volume_usd":0,"unique_buyers":19,"unique_wallets":21,"trades_per_wallet":1.48,"wallet_data_available":true},"kol":{"buyers":1,"buys":1,"sells":0,"names":["cto_hunter"]},"early_buyers":{"count":20,"bundled":2,"cohort_sol":9.1,"sold":17,"sniper_wallets":0},"deployer":{"wallet":"8kP4ExampleDeployerWallet0000000000000000000","tier":"moderate","bonding_rate":0.18,"total_bonded":4,"total_deployed":22,"runner_rate":0.1,"labeled_tokens":20,"recent":"DDBDDDDDBD"},"deployer_wallet":"8kP4ExampleDeployerWallet0000000000000000000","deployer_tier":"moderate","mint_authority_revoked":true,"freeze_authority_revoked":true,"is_token_2022":false,"risk_flags":["early_buyers_exiting"],"detail_url":"https://madeonsol.com/api/v1/token/RevivalExampleMint00000000000000000000000pump","enrichment_available":true}],"x-madeonsol-contract-source":"services/surge-tracker/index.mjs"}}}]}},"stream_event_rhc_kol_trade":{"name":"rhc:kol_trade","title":"rhc:kol_trade","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:kol_trade"},"data":{"type":"object","required":["chain","kol_wallet_id","evm_address","token_address","action","eth_amount","token_amount","price_usd","dex","tx_hash","log_index","traded_at"],"properties":{"chain":{"type":"string"},"kol_wallet_id":{"type":"number"},"evm_address":{"type":"string"},"token_address":{"type":"string"},"action":{"type":"string"},"eth_amount":{"type":"number"},"token_amount":{"type":"number"},"price_usd":{"type":"number"},"dex":{"type":"string"},"tx_hash":{"type":"string"},"log_index":{"type":"number"},"traded_at":{"type":"string"}},"additionalProperties":true,"examples":[{"chain":"robinhood","kol_wallet_id":42,"evm_address":"0x1111111111111111111111111111111111111111","token_address":"0x2222222222222222222222222222222222222222","action":"buy","eth_amount":0.35,"token_amount":1250000,"price_usd":0.00091,"dex":"uniswap-v3","tx_hash":"0x3333333333333333333333333333333333333333333333333333333333333333","log_index":7,"traded_at":"2026-06-10T17:00:00.000Z"}],"x-madeonsol-contract-source":"services/rhc-dex-stream/index.mjs"}}}]}},"stream_event_rhc_dex_trade":{"name":"rhc:dex_trade","title":"rhc:dex_trade","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:dex_trade"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:dex_trade. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_dex_trade_unattributed":{"name":"rhc:dex_trade_unattributed","title":"rhc:dex_trade_unattributed","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:dex_trade_unattributed"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:dex_trade_unattributed. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_new_token":{"name":"rhc:new_token","title":"rhc:new_token","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:new_token"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:new_token. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_copytrade_signal":{"name":"rhc:copytrade:signal","title":"rhc:copytrade:signal","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:copytrade:signal"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:copytrade:signal. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_price_alert_dip":{"name":"rhc:price_alert:dip","title":"rhc:price_alert:dip","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:price_alert:dip"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:price_alert:dip. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_price_alert_recovery":{"name":"rhc:price_alert:recovery","title":"rhc:price_alert:recovery","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:price_alert:recovery"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:price_alert:recovery. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_kol_coordination":{"name":"rhc:kol:coordination","title":"rhc:kol:coordination","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:kol:coordination"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:kol:coordination. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_kol_first_touch":{"name":"rhc:kol:first_touch","title":"rhc:kol:first_touch","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:kol:first_touch"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:kol:first_touch. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_token_lock":{"name":"rhc:token_lock","title":"rhc:token_lock","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:token_lock"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:token_lock. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_token_unlock_upcoming":{"name":"rhc:token_unlock_upcoming","title":"rhc:token_unlock_upcoming","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:token_unlock_upcoming"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:token_unlock_upcoming. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_token_unlock_available":{"name":"rhc:token_unlock_available","title":"rhc:token_unlock_available","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:token_unlock_available"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:token_unlock_available. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_token_price":{"name":"rhc:token_price","title":"rhc:token_price","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:token_price"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:token_price. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_lp_event":{"name":"rhc:lp_event","title":"rhc:lp_event","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:lp_event"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:lp_event. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_candle_closed":{"name":"candle:closed","title":"candle:closed","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"candle:closed"},"data":{"type":"object","additionalProperties":true,"description":"Payload of candle:closed. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_candle_update":{"name":"candle:update","title":"candle:update","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"candle:update"},"data":{"type":"object","additionalProperties":true,"description":"Payload of candle:update. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_candle_closed":{"name":"rhc:candle_closed","title":"rhc:candle_closed","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:candle_closed"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:candle_closed. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_candle_revised":{"name":"rhc:candle_revised","title":"rhc:candle_revised","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:candle_revised"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:candle_revised. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_candle_update":{"name":"rhc:candle_update","title":"rhc:candle_update","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:candle_update"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:candle_update. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_risk_authority_changed":{"name":"risk:authority_changed","title":"risk:authority_changed","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"risk:authority_changed"},"data":{"type":"object","additionalProperties":true,"description":"Payload of risk:authority_changed. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_risk_supply_inflated":{"name":"risk:supply_inflated","title":"risk:supply_inflated","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"risk:supply_inflated"},"data":{"type":"object","additionalProperties":true,"description":"Payload of risk:supply_inflated. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_risk_verdict_changed":{"name":"rhc:risk_verdict_changed","title":"rhc:risk_verdict_changed","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:risk_verdict_changed"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:risk_verdict_changed. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_deployer_tier_changed":{"name":"deployer:tier_changed","title":"deployer:tier_changed","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"deployer:tier_changed"},"data":{"type":"object","additionalProperties":true,"description":"Payload of deployer:tier_changed. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_kol_score_state_changed":{"name":"kol:score_state_changed","title":"kol:score_state_changed","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"kol:score_state_changed"},"data":{"type":"object","additionalProperties":true,"description":"Payload of kol:score_state_changed. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_deployer_tier_changed":{"name":"rhc:deployer_tier_changed","title":"rhc:deployer_tier_changed","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:deployer_tier_changed"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:deployer_tier_changed. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]}},"stream_event_rhc_dev_activity":{"name":"rhc:dev_activity","title":"rhc:dev_activity","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:dev_activity"},"data":{"type":"object","required":["id","v","type","chain","mint","deployer_wallet","actor_wallet","actor_role","action","signature","slot","block_time","observed_at","region","token_amount_raw","token_decimals","token_amount","quote_amount","quote_mint","venue","counterparty_wallet","counterparty_class","supply_pct","provenance"],"properties":{"id":{"type":"string"},"v":{"type":"number"},"type":{"type":"string"},"chain":{"type":"string"},"mint":{"type":"string"},"deployer_wallet":{"type":"string"},"actor_wallet":{"type":"string"},"actor_role":{"type":"string"},"action":{"type":"string"},"signature":{"type":"string"},"slot":{"type":"number"},"block_time":{"type":"string"},"observed_at":{"type":"string"},"region":{},"token_amount_raw":{"type":"string"},"token_decimals":{},"token_amount":{},"quote_amount":{"type":"number"},"quote_mint":{"type":"string"},"venue":{"type":"string"},"counterparty_wallet":{},"counterparty_class":{},"supply_pct":{},"identity_evidence":{"type":"boolean"},"provenance":{"type":"object"}},"additionalProperties":true,"examples":[{"id":"dx1:0x5e1ec7ed00000000000000000000000000000000000000000000000000000001:0x00000000000000000000000000000000000000a1:dev_sell:0x00000000000000000000000000000000000000de","v":1,"type":"dev_sell","chain":"robinhood","mint":"0x00000000000000000000000000000000000000a1","deployer_wallet":"0x00000000000000000000000000000000000000de","actor_wallet":"0x00000000000000000000000000000000000000de","actor_role":"deployer","action":"sell","signature":"0x5e1ec7ed00000000000000000000000000000000000000000000000000000001","slot":61900000,"block_time":"2026-10-05T16:00:00.000Z","observed_at":"2026-10-05T16:00:01.200Z","region":null,"token_amount_raw":"125000000000000000000000","token_decimals":null,"token_amount":null,"quote_amount":0.42,"quote_mint":"0x0000000000000000000000000000000000000e7e","venue":"uniswap-v2","counterparty_wallet":null,"counterparty_class":null,"supply_pct":null,"identity_evidence":false,"provenance":{"source":"rhc_dex_stream","decoder":"rhc-swap","map_source":"launchpad","attribution":"creator","map_age_ms":21000,"mode":"on","late_classified":false}}],"x-madeonsol-contract-source":"services/rhc-dex-stream/dev-map.mjs"}}}]}},"stream_event_token_bundle_cluster":{"name":"token:bundle_cluster","title":"token:bundle_cluster","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"token:bundle_cluster"},"data":{"type":"object","required":["id","chain","mint","slot","at","minutes_after_launch","phase","launch_at","wallet_count","new_wallets","atomic_txs","sol_volume","token_volume","wallets","detected_at"],"properties":{"id":{"type":"number"},"chain":{"type":"string"},"mint":{"type":"string"},"slot":{"type":"number"},"at":{"type":"string"},"minutes_after_launch":{"type":"number"},"phase":{"type":"string"},"launch_at":{"type":"string"},"wallet_count":{"type":"number"},"new_wallets":{"type":"number"},"atomic_txs":{"type":"number"},"sol_volume":{"type":"number"},"token_volume":{"type":"number"},"wallets":{"type":"array"},"detected_at":{"type":"string"}},"additionalProperties":true,"examples":[{"id":5012,"chain":"solana","mint":"BundleExampleMint000000000000000000000000pump","slot":371234567,"at":"2026-10-15T12:31:04.000Z","minutes_after_launch":62.4,"phase":"later","launch_at":"2026-10-15T11:28:40.000Z","wallet_count":5,"new_wallets":5,"atomic_txs":1,"sol_volume":4.25,"token_volume":18250000,"wallets":["BuyerA111111111111111111111111111111111111","BuyerB111111111111111111111111111111111111","BuyerC111111111111111111111111111111111111","BuyerD111111111111111111111111111111111111","BuyerE111111111111111111111111111111111111"],"detected_at":"2026-10-15T12:31:09.412Z"}],"x-madeonsol-contract-source":"services/bundle-watch/producer.mjs"}}}]}},"stream_event_token_bundle_exit":{"name":"token:bundle_exit","title":"token:bundle_exit","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"token:bundle_exit"},"data":{"type":"object","required":["id","chain","mint","slot","at","minutes_after_launch","phase","launch_at","wallet_count","new_wallets","atomic_txs","cluster_id","cluster_detected_at","threshold_pct","wallets_tracked","wallets_sold","wallets_exited","bought_tokens","sold_tokens","sold_pct","realized_sol","last_sell_at","recent_sells","detected_at"],"properties":{"id":{"type":"number"},"chain":{"type":"string"},"mint":{"type":"string"},"slot":{"type":"number"},"at":{"type":"string"},"minutes_after_launch":{"type":"number"},"phase":{"type":"string"},"launch_at":{"type":"string"},"wallet_count":{"type":"number"},"new_wallets":{"type":"number"},"atomic_txs":{"type":"number"},"cluster_id":{"type":"number"},"cluster_detected_at":{"type":"string"},"threshold_pct":{"type":"number"},"wallets_tracked":{"type":"number"},"wallets_sold":{"type":"number"},"wallets_exited":{"type":"number"},"bought_tokens":{"type":"number"},"sold_tokens":{"type":"number"},"sold_pct":{"type":"number"},"realized_sol":{"type":"number"},"realized_status":{"type":"string"},"unknown_proceeds_sells":{"type":"number"},"last_sell_at":{"type":"string"},"recent_sells":{"type":"array"},"detected_at":{"type":"string"}},"additionalProperties":true,"examples":[{"id":5101,"chain":"solana","mint":"BundleExampleMint000000000000000000000000pump","slot":371234567,"at":"2026-10-15T12:31:04.000Z","minutes_after_launch":62.4,"phase":"later","launch_at":"2026-10-15T11:28:40.000Z","wallet_count":5,"new_wallets":5,"atomic_txs":1,"cluster_id":5012,"cluster_detected_at":"2026-10-15T12:31:09.412Z","threshold_pct":50,"wallets_tracked":5,"wallets_sold":3,"wallets_exited":2,"bought_tokens":18250000,"sold_tokens":9500000,"sold_pct":0.5205,"realized_sol":2.91,"realized_status":"complete","unknown_proceeds_sells":0,"last_sell_at":"2026-10-15T13:02:11.000Z","recent_sells":[{"wallet":"BuyerA111111111111111111111111111111111111","tx_signature":"5xSellExampleSignature","tokens":4000000,"sol":1.2,"at":"2026-10-15T13:02:11.000Z"}],"detected_at":"2026-10-15T13:02:14.880Z"}],"x-madeonsol-contract-source":"services/bundle-watch/producer.mjs"}}}]}},"stream_event_rhc_token_bundle_cluster":{"name":"rhc:token_bundle_cluster","title":"rhc:token_bundle_cluster","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:token_bundle_cluster"},"data":{"type":"object","required":["id","chain","token_address","block_number","at","minutes_after_launch","phase","launch_at","wallet_count","new_wallets","same_tx_groups","eth_volume","token_volume_raw","wallets","detected_at"],"properties":{"id":{"type":"number"},"chain":{"type":"string"},"token_address":{"type":"string"},"block_number":{"type":"number"},"at":{"type":"string"},"minutes_after_launch":{"type":"number"},"phase":{"type":"string"},"launch_at":{"type":"string"},"wallet_count":{"type":"number"},"new_wallets":{"type":"number"},"same_tx_groups":{"type":"number"},"eth_volume":{"type":"number"},"token_volume_raw":{"type":"string"},"wallets":{"type":"array"},"detected_at":{"type":"string"}},"additionalProperties":true,"examples":[{"id":5013,"chain":"robinhood","token_address":"0x1111111111111111111111111111111111111111","block_number":88412345,"at":"2026-10-15T12:40:00.000Z","minutes_after_launch":3.5,"phase":"launch","launch_at":"2026-10-15T12:36:30.000Z","wallet_count":4,"new_wallets":4,"same_tx_groups":0,"eth_volume":0.82,"token_volume_raw":"4100000000000000000000000","wallets":["0x2222222222222222222222222222222222222222","0x3333333333333333333333333333333333333333","0x4444444444444444444444444444444444444444","0x5555555555555555555555555555555555555555"],"detected_at":"2026-10-15T12:40:04.120Z"}],"x-madeonsol-contract-source":"services/bundle-watch/producer.mjs"}}}]}},"stream_event_rhc_token_bundle_exit":{"name":"rhc:token_bundle_exit","title":"rhc:token_bundle_exit","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/StreamEventEnvelope"},{"type":"object","properties":{"event":{"const":"rhc:token_bundle_exit"},"data":{"type":"object","required":["id","chain","token_address","block_number","at","minutes_after_launch","phase","launch_at","wallet_count","new_wallets","same_tx_groups","cluster_id","cluster_detected_at","threshold_pct","wallets_tracked","wallets_sold","wallets_exited","bought_tokens_raw","sold_tokens_raw","sold_pct","realized_eth","last_sell_at","recent_sells","detected_at"],"properties":{"id":{"type":"number"},"chain":{"type":"string"},"token_address":{"type":"string"},"block_number":{"type":"number"},"at":{"type":"string"},"minutes_after_launch":{"type":"number"},"phase":{"type":"string"},"launch_at":{"type":"string"},"wallet_count":{"type":"number"},"new_wallets":{"type":"number"},"same_tx_groups":{"type":"number"},"cluster_id":{"type":"number"},"cluster_detected_at":{"type":"string"},"threshold_pct":{"type":"number"},"wallets_tracked":{"type":"number"},"wallets_sold":{"type":"number"},"wallets_exited":{"type":"number"},"bought_tokens_raw":{"type":"string"},"sold_tokens_raw":{"type":"string"},"sold_pct":{"type":"number"},"realized_eth":{"type":"number"},"realized_status":{"type":"string"},"unknown_proceeds_sells":{"type":"number"},"last_sell_at":{"type":"string"},"recent_sells":{"type":"array"},"detected_at":{"type":"string"}},"additionalProperties":true,"examples":[{"id":5102,"chain":"robinhood","token_address":"0x1111111111111111111111111111111111111111","block_number":88412345,"at":"2026-10-15T12:40:00.000Z","minutes_after_launch":3.5,"phase":"launch","launch_at":"2026-10-15T12:36:30.000Z","wallet_count":4,"new_wallets":4,"same_tx_groups":0,"cluster_id":5013,"cluster_detected_at":"2026-10-15T12:40:04.120Z","threshold_pct":100,"wallets_tracked":4,"wallets_sold":4,"wallets_exited":4,"bought_tokens_raw":"4100000000000000000000000","sold_tokens_raw":"4100000000000000000000000","sold_pct":1,"realized_eth":1.1,"realized_status":"complete","unknown_proceeds_sells":0,"last_sell_at":"2026-10-15T13:10:02.000Z","recent_sells":[{"wallet":"0x2222222222222222222222222222222222222222","tx_id":"0xabc:12","tokens_raw":"1025000000000000000000000","eth":0.3,"at":"2026-10-15T13:10:02.000Z"}],"detected_at":"2026-10-15T13:10:05.010Z"}],"x-madeonsol-contract-source":"services/bundle-watch/producer.mjs"}}}]}},"early.subscribe":{"name":"early.subscribe","title":"early.subscribe","summary":"Subscribe to one or more ShredPrism families.","contentType":"application/json","payload":{"type":"object","required":["type","channels"],"properties":{"type":{"const":"subscribe"},"sub_id":{"type":"string","minLength":1,"maxLength":64},"channels":{"type":"array","minItems":1,"maxItems":6,"items":{"type":"string","enum":["early:deploys","early:locks","early:trades","early:liquidity","early:migrations","early:token_changes"]}},"filters":{"$ref":"#/components/schemas/EarlyFilters"},"format":{"type":"string","enum":["full","compact-v1"],"default":"full"},"resume":{"$ref":"#/components/schemas/EarlyCursor"},"wallet_list":{"type":["string","null"],"description":"Owner-scoped saved wallet list; trade-only and mutually exclusive with wallets/actors."}},"examples":[{"type":"subscribe","sub_id":"locks","channels":["early:locks"]},{"type":"subscribe","sub_id":"wallet","channels":["early:trades"],"filters":{"wallets":["<base58>"],"directions":["buy"]}}]}},"early.update":{"name":"early.update","title":"early.update","summary":"Update one named/default ShredPrism subscription. Omitted filters remain unchanged; an explicit empty object clears them.","contentType":"application/json","payload":{"type":"object","required":["type"],"properties":{"type":{"const":"update"},"sub_id":{"type":"string"},"filters":{"$ref":"#/components/schemas/EarlyFilters"},"format":{"type":"string","enum":["full","compact-v1"]},"wallet_list":{"type":["string","null"]}}}},"early.unsubscribe":{"name":"early.unsubscribe","title":"early.unsubscribe","summary":"Remove one ShredPrism subscription.","contentType":"application/json","payload":{"type":"object","required":["type"],"properties":{"type":{"const":"unsubscribe"},"sub_id":{"type":"string"}}}},"early.list":{"name":"early.list","title":"early.list","summary":"List ShredPrism subscriptions.","contentType":"application/json","payload":{"type":"object","required":["type"],"properties":{"type":{"const":"list"}}}},"early.wallet_list":{"name":"early.wallet_list","title":"early.wallet_list","summary":"Manage owner-private early-stream wallet lists.","contentType":"application/json","payload":{"type":"object","required":["type","op"],"properties":{"type":{"const":"wallet_list"},"op":{"type":"string","enum":["list","get","create","replace","delete"]},"id":{"type":"string"},"revision":{"type":"string"},"name":{"type":"string"},"wallets":{"type":"array","items":{"type":"string"}}}}},"early_observed_early_deploys":{"name":"early:observed","title":"early:deploys observation","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/EarlyEventEnvelope"},{"type":"object","properties":{"channel":{"const":"early:deploys"},"event":{"const":"early:observed"},"data":{"type":"object","additionalProperties":true,"required":["schema_version","chain","channel","signature","event_id","observed_slot","first_observed_at","source","source_region","observation_stage","execution_status","decoding_basis","decoder_version","transaction_version","transaction_config","lifetime_token","outer_instruction_index","program_id","fee_payer","action","actor","attribution_basis","instruction","mint","launchpad","name","symbol"],"properties":{"schema_version":{"type":"integer","const":1},"chain":{"type":"string","const":"solana"},"channel":{"type":"string","enum":["early:deploys","early:locks","early:trades","early:liquidity","early:migrations","early:token_changes"]},"signature":{"type":"string"},"event_id":{"type":"string"},"observed_slot":{"type":"string"},"first_observed_at":{"type":"string","format":"date-time"},"source":{"type":"string","const":"shredprism"},"source_region":{"type":"string"},"observation_stage":{"type":"string","enum":["observed","outcome"]},"execution_status":{"type":"string","enum":["unknown","succeeded","failed","unresolved"]},"decoding_basis":{"type":"string","const":"outer_instruction"},"decoder_version":{"type":"string"},"transaction_version":{"oneOf":[{"type":"string","const":"legacy"},{"type":"integer","enum":[0,1]}]},"transaction_config":{"type":["object","null"]},"lifetime_token":{"type":"string"},"outer_instruction_index":{"type":"integer","minimum":0},"program_id":{"type":"string"},"fee_payer":{"type":"string"},"action":{"const":"create"},"actor":{"type":"string"},"attribution_basis":{"type":"string"},"instruction":{"type":"string","enum":["create","create_v2","initialize","initialize_v2","initialize_with_token_2022"]},"mint":{"type":"string"},"launchpad":{"type":"string","enum":["pumpfun","launchlab"]},"name":{"type":["string","null"]},"symbol":{"type":["string","null"]}}}}}]}},"early_outcome_early_deploys":{"name":"early:outcome","title":"early:deploys execution outcome","description":"Progressive: one outcome per change of commitment (processed, confirmed, finalized), or unresolved after 120 s. Observations never wait for outcomes.","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/EarlyEventEnvelope"},{"type":"object","properties":{"channel":{"const":"early:deploys"},"event":{"const":"early:outcome"},"data":{"allOf":[{"type":"object","additionalProperties":true,"required":["schema_version","chain","channel","signature","event_id","observed_slot","first_observed_at","source","source_region","observation_stage","execution_status","decoding_basis","decoder_version","transaction_version","transaction_config","lifetime_token","outer_instruction_index","program_id","fee_payer","action","actor","attribution_basis","instruction","mint","launchpad","name","symbol"],"properties":{"schema_version":{"type":"integer","const":1},"chain":{"type":"string","const":"solana"},"channel":{"type":"string","enum":["early:deploys","early:locks","early:trades","early:liquidity","early:migrations","early:token_changes"]},"signature":{"type":"string"},"event_id":{"type":"string"},"observed_slot":{"type":"string"},"first_observed_at":{"type":"string","format":"date-time"},"source":{"type":"string","const":"shredprism"},"source_region":{"type":"string"},"observation_stage":{"type":"string","enum":["observed","outcome"]},"execution_status":{"type":"string","enum":["unknown","succeeded","failed","unresolved"]},"decoding_basis":{"type":"string","const":"outer_instruction"},"decoder_version":{"type":"string"},"transaction_version":{"oneOf":[{"type":"string","const":"legacy"},{"type":"integer","enum":[0,1]}]},"transaction_config":{"type":["object","null"]},"lifetime_token":{"type":"string"},"outer_instruction_index":{"type":"integer","minimum":0},"program_id":{"type":"string"},"fee_payer":{"type":"string"},"action":{"const":"create"},"actor":{"type":"string"},"attribution_basis":{"type":"string"},"instruction":{"type":"string","enum":["create","create_v2","initialize","initialize_v2","initialize_with_token_2022"]},"mint":{"type":"string"},"launchpad":{"type":"string","enum":["pumpfun","launchlab"]},"name":{"type":["string","null"]},"symbol":{"type":["string","null"]}}},{"type":"object","required":["observed_event_id","outcome_at","execution_status"],"properties":{"observation_stage":{"const":"outcome"},"observed_event_id":{"type":"string"},"outcome_at":{"type":"string","format":"date-time"},"outcome_source":{"type":["string","null"],"enum":["kaldera_rpc","kaldera_status_stream",null],"description":"Where the execution evidence came from: kaldera_rpc (a transaction-status lookup: early:deploys, and the fallback for the other channels) or kaldera_status_stream (a pushed finalized status, early:locks / trades / liquidity / migrations / token_changes). null when no evidence was seen. New values may be added; treat an unknown value as a valid non-null source."},"commitment":{"type":["string","null"],"enum":["processed","confirmed","finalized",null]},"execution_status":{"type":"string","enum":["succeeded","failed","unresolved"]},"resolution_status":{"type":"string","enum":["unresolved"]},"reason":{"type":"string","enum":["finalization_timeout","outcome_timeout"]},"last_observed_outcome":{"type":["object","null"]}}}]}}}]}},"early_observed_early_locks":{"name":"early:observed","title":"early:locks observation","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/EarlyEventEnvelope"},{"type":"object","properties":{"channel":{"const":"early:locks"},"event":{"const":"early:observed"},"data":{"type":"object","additionalProperties":true,"required":["schema_version","chain","channel","signature","event_id","observed_slot","first_observed_at","source","source_region","observation_stage","execution_status","decoding_basis","decoder_version","transaction_version","transaction_config","lifetime_token","outer_instruction_index","program_id","fee_payer","action","actor","attribution_basis","protocol","instruction","sender","recipient","lock_account","mint","lock_kind","requested_amount_raw","schedule"],"properties":{"schema_version":{"type":"integer","const":1},"chain":{"type":"string","const":"solana"},"channel":{"type":"string","enum":["early:deploys","early:locks","early:trades","early:liquidity","early:migrations","early:token_changes"]},"signature":{"type":"string"},"event_id":{"type":"string"},"observed_slot":{"type":"string"},"first_observed_at":{"type":"string","format":"date-time"},"source":{"type":"string","const":"shredprism"},"source_region":{"type":"string"},"observation_stage":{"type":"string","enum":["observed","outcome"]},"execution_status":{"type":"string","enum":["unknown","succeeded","failed","unresolved"]},"decoding_basis":{"type":"string","const":"outer_instruction"},"decoder_version":{"type":"string"},"transaction_version":{"oneOf":[{"type":"string","const":"legacy"},{"type":"integer","enum":[0,1]}]},"transaction_config":{"type":["object","null"]},"lifetime_token":{"type":"string"},"outer_instruction_index":{"type":"integer","minimum":0},"program_id":{"type":"string"},"fee_payer":{"type":"string"},"action":{"const":"create_lock"},"actor":{"type":"string"},"attribution_basis":{"type":"string"},"wallet_label":{"type":"object","description":"Database roster snapshot for actor (not an on-chain fact). Present on every non-deploy event; only early:trades accepts the wallet_labels filter.","properties":{"wallet":{"type":"string"},"labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"available_labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"observed_at_ms":{"type":["number","null"]},"basis":{"type":"string","const":"database_roster_snapshot"},"complete":{"type":"boolean"}}},"protocol":{"type":"string","enum":["streamflow","jupiter_lock","bonfida"]},"instruction":{"type":"string","enum":["create","create_vesting_escrow","create_vesting_escrow_v2"]},"sender":{"type":"string"},"recipient":{"type":["string","null"]},"lock_account":{"type":"string"},"mint":{"type":["string","null"]},"lock_kind":{"type":"string","enum":["stream_or_vesting","token_vesting"]},"requested_amount_raw":{"type":["string","null"]},"schedule":{"type":"object","additionalProperties":true},"sender_token_account":{"type":"string"},"destination_token_account":{"type":"string"},"cancelable_by_sender":{"type":"boolean"},"cancelable_by_recipient":{"type":"boolean"},"update_recipient_mode":{"type":"integer"},"cancel_mode":{"type":"integer"},"missing_fields":{"type":"array","items":{"type":"string"}}}}}}]}},"early_outcome_early_locks":{"name":"early:outcome","title":"early:locks execution outcome","description":"Final-only: one outcome per observation, finalized with the execution status, pushed when the chain finalizes the transaction (typically about 13 to 20 s after the observation), or unresolved after 120 s if no final status was seen, with the last evidence seen if any. A missing status is unknown, never failed. Observations never wait for outcomes.","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/EarlyEventEnvelope"},{"type":"object","properties":{"channel":{"const":"early:locks"},"event":{"const":"early:outcome"},"data":{"allOf":[{"type":"object","additionalProperties":true,"required":["schema_version","chain","channel","signature","event_id","observed_slot","first_observed_at","source","source_region","observation_stage","execution_status","decoding_basis","decoder_version","transaction_version","transaction_config","lifetime_token","outer_instruction_index","program_id","fee_payer","action","actor","attribution_basis","protocol","instruction","sender","recipient","lock_account","mint","lock_kind","requested_amount_raw","schedule"],"properties":{"schema_version":{"type":"integer","const":1},"chain":{"type":"string","const":"solana"},"channel":{"type":"string","enum":["early:deploys","early:locks","early:trades","early:liquidity","early:migrations","early:token_changes"]},"signature":{"type":"string"},"event_id":{"type":"string"},"observed_slot":{"type":"string"},"first_observed_at":{"type":"string","format":"date-time"},"source":{"type":"string","const":"shredprism"},"source_region":{"type":"string"},"observation_stage":{"type":"string","enum":["observed","outcome"]},"execution_status":{"type":"string","enum":["unknown","succeeded","failed","unresolved"]},"decoding_basis":{"type":"string","const":"outer_instruction"},"decoder_version":{"type":"string"},"transaction_version":{"oneOf":[{"type":"string","const":"legacy"},{"type":"integer","enum":[0,1]}]},"transaction_config":{"type":["object","null"]},"lifetime_token":{"type":"string"},"outer_instruction_index":{"type":"integer","minimum":0},"program_id":{"type":"string"},"fee_payer":{"type":"string"},"action":{"const":"create_lock"},"actor":{"type":"string"},"attribution_basis":{"type":"string"},"wallet_label":{"type":"object","description":"Database roster snapshot for actor (not an on-chain fact). Present on every non-deploy event; only early:trades accepts the wallet_labels filter.","properties":{"wallet":{"type":"string"},"labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"available_labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"observed_at_ms":{"type":["number","null"]},"basis":{"type":"string","const":"database_roster_snapshot"},"complete":{"type":"boolean"}}},"protocol":{"type":"string","enum":["streamflow","jupiter_lock","bonfida"]},"instruction":{"type":"string","enum":["create","create_vesting_escrow","create_vesting_escrow_v2"]},"sender":{"type":"string"},"recipient":{"type":["string","null"]},"lock_account":{"type":"string"},"mint":{"type":["string","null"]},"lock_kind":{"type":"string","enum":["stream_or_vesting","token_vesting"]},"requested_amount_raw":{"type":["string","null"]},"schedule":{"type":"object","additionalProperties":true},"sender_token_account":{"type":"string"},"destination_token_account":{"type":"string"},"cancelable_by_sender":{"type":"boolean"},"cancelable_by_recipient":{"type":"boolean"},"update_recipient_mode":{"type":"integer"},"cancel_mode":{"type":"integer"},"missing_fields":{"type":"array","items":{"type":"string"}}}},{"type":"object","required":["observed_event_id","outcome_at","execution_status"],"properties":{"observation_stage":{"const":"outcome"},"observed_event_id":{"type":"string"},"outcome_at":{"type":"string","format":"date-time"},"outcome_source":{"type":["string","null"],"enum":["kaldera_rpc","kaldera_status_stream",null],"description":"Where the execution evidence came from: kaldera_rpc (a transaction-status lookup: early:deploys, and the fallback for the other channels) or kaldera_status_stream (a pushed finalized status, early:locks / trades / liquidity / migrations / token_changes). null when no evidence was seen. New values may be added; treat an unknown value as a valid non-null source."},"commitment":{"type":["string","null"],"enum":["processed","confirmed","finalized",null]},"execution_status":{"type":"string","enum":["succeeded","failed","unresolved"]},"resolution_status":{"type":"string","enum":["unresolved"]},"reason":{"type":"string","enum":["finalization_timeout","outcome_timeout"]},"last_observed_outcome":{"type":["object","null"]}}}]}}}]}},"early_observed_early_trades":{"name":"early:observed","title":"early:trades observation","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/EarlyEventEnvelope"},{"type":"object","properties":{"channel":{"const":"early:trades"},"event":{"const":"early:observed"},"data":{"type":"object","additionalProperties":true,"required":["schema_version","chain","channel","signature","event_id","observed_slot","first_observed_at","source","source_region","observation_stage","execution_status","decoding_basis","decoder_version","transaction_version","transaction_config","lifetime_token","outer_instruction_index","program_id","fee_payer","action","actor","attribution_basis","protocol","instruction","mint","quote_mint","pool","direction","swap_mode","input_mint","output_mint","requested_input_raw","max_input_raw","min_output_raw","target_output_raw"],"properties":{"schema_version":{"type":"integer","const":1},"chain":{"type":"string","const":"solana"},"channel":{"type":"string","enum":["early:deploys","early:locks","early:trades","early:liquidity","early:migrations","early:token_changes"]},"signature":{"type":"string"},"event_id":{"type":"string"},"observed_slot":{"type":"string"},"first_observed_at":{"type":"string","format":"date-time"},"source":{"type":"string","const":"shredprism"},"source_region":{"type":"string"},"observation_stage":{"type":"string","enum":["observed","outcome"]},"execution_status":{"type":"string","enum":["unknown","succeeded","failed","unresolved"]},"decoding_basis":{"type":"string","const":"outer_instruction"},"decoder_version":{"type":"string"},"transaction_version":{"oneOf":[{"type":"string","const":"legacy"},{"type":"integer","enum":[0,1]}]},"transaction_config":{"type":["object","null"]},"lifetime_token":{"type":"string"},"outer_instruction_index":{"type":"integer","minimum":0},"program_id":{"type":"string"},"fee_payer":{"type":"string"},"action":{"const":"swap_intent"},"actor":{"type":"string"},"attribution_basis":{"type":"string"},"wallet_label":{"type":"object","description":"Database roster snapshot for actor (not an on-chain fact). Present on every non-deploy event; only early:trades accepts the wallet_labels filter.","properties":{"wallet":{"type":"string"},"labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"available_labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"observed_at_ms":{"type":["number","null"]},"basis":{"type":"string","const":"database_roster_snapshot"},"complete":{"type":"boolean"}}},"protocol":{"type":"string","enum":["pumpfun","pumpswap"]},"instruction":{"type":"string","enum":["buy","sell","buy_exact_sol_in","buy_exact_quote_in"]},"mint":{"type":"string"},"quote_mint":{"type":"string"},"pool":{"type":"string"},"direction":{"type":"string","enum":["buy","sell"]},"swap_mode":{"type":"string","enum":["exact_in","exact_out"]},"input_mint":{"type":"string"},"output_mint":{"type":"string"},"requested_input_raw":{"type":["string","null"]},"max_input_raw":{"type":["string","null"]},"min_output_raw":{"type":["string","null"]},"target_output_raw":{"type":["string","null"]}}}}}]}},"early_outcome_early_trades":{"name":"early:outcome","title":"early:trades execution outcome","description":"Final-only: one outcome per observation, finalized with the execution status, pushed when the chain finalizes the transaction (typically about 13 to 20 s after the observation), or unresolved after 120 s if no final status was seen, with the last evidence seen if any. A missing status is unknown, never failed. Observations never wait for outcomes.","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/EarlyEventEnvelope"},{"type":"object","properties":{"channel":{"const":"early:trades"},"event":{"const":"early:outcome"},"data":{"allOf":[{"type":"object","additionalProperties":true,"required":["schema_version","chain","channel","signature","event_id","observed_slot","first_observed_at","source","source_region","observation_stage","execution_status","decoding_basis","decoder_version","transaction_version","transaction_config","lifetime_token","outer_instruction_index","program_id","fee_payer","action","actor","attribution_basis","protocol","instruction","mint","quote_mint","pool","direction","swap_mode","input_mint","output_mint","requested_input_raw","max_input_raw","min_output_raw","target_output_raw"],"properties":{"schema_version":{"type":"integer","const":1},"chain":{"type":"string","const":"solana"},"channel":{"type":"string","enum":["early:deploys","early:locks","early:trades","early:liquidity","early:migrations","early:token_changes"]},"signature":{"type":"string"},"event_id":{"type":"string"},"observed_slot":{"type":"string"},"first_observed_at":{"type":"string","format":"date-time"},"source":{"type":"string","const":"shredprism"},"source_region":{"type":"string"},"observation_stage":{"type":"string","enum":["observed","outcome"]},"execution_status":{"type":"string","enum":["unknown","succeeded","failed","unresolved"]},"decoding_basis":{"type":"string","const":"outer_instruction"},"decoder_version":{"type":"string"},"transaction_version":{"oneOf":[{"type":"string","const":"legacy"},{"type":"integer","enum":[0,1]}]},"transaction_config":{"type":["object","null"]},"lifetime_token":{"type":"string"},"outer_instruction_index":{"type":"integer","minimum":0},"program_id":{"type":"string"},"fee_payer":{"type":"string"},"action":{"const":"swap_intent"},"actor":{"type":"string"},"attribution_basis":{"type":"string"},"wallet_label":{"type":"object","description":"Database roster snapshot for actor (not an on-chain fact). Present on every non-deploy event; only early:trades accepts the wallet_labels filter.","properties":{"wallet":{"type":"string"},"labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"available_labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"observed_at_ms":{"type":["number","null"]},"basis":{"type":"string","const":"database_roster_snapshot"},"complete":{"type":"boolean"}}},"protocol":{"type":"string","enum":["pumpfun","pumpswap"]},"instruction":{"type":"string","enum":["buy","sell","buy_exact_sol_in","buy_exact_quote_in"]},"mint":{"type":"string"},"quote_mint":{"type":"string"},"pool":{"type":"string"},"direction":{"type":"string","enum":["buy","sell"]},"swap_mode":{"type":"string","enum":["exact_in","exact_out"]},"input_mint":{"type":"string"},"output_mint":{"type":"string"},"requested_input_raw":{"type":["string","null"]},"max_input_raw":{"type":["string","null"]},"min_output_raw":{"type":["string","null"]},"target_output_raw":{"type":["string","null"]}}},{"type":"object","required":["observed_event_id","outcome_at","execution_status"],"properties":{"observation_stage":{"const":"outcome"},"observed_event_id":{"type":"string"},"outcome_at":{"type":"string","format":"date-time"},"outcome_source":{"type":["string","null"],"enum":["kaldera_rpc","kaldera_status_stream",null],"description":"Where the execution evidence came from: kaldera_rpc (a transaction-status lookup: early:deploys, and the fallback for the other channels) or kaldera_status_stream (a pushed finalized status, early:locks / trades / liquidity / migrations / token_changes). null when no evidence was seen. New values may be added; treat an unknown value as a valid non-null source."},"commitment":{"type":["string","null"],"enum":["processed","confirmed","finalized",null]},"execution_status":{"type":"string","enum":["succeeded","failed","unresolved"]},"resolution_status":{"type":"string","enum":["unresolved"]},"reason":{"type":"string","enum":["finalization_timeout","outcome_timeout"]},"last_observed_outcome":{"type":["object","null"]}}}]}}}]}},"early_observed_early_liquidity":{"name":"early:observed","title":"early:liquidity observation","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/EarlyEventEnvelope"},{"type":"object","properties":{"channel":{"const":"early:liquidity"},"event":{"const":"early:observed"},"data":{"type":"object","additionalProperties":true,"required":["schema_version","chain","channel","signature","event_id","observed_slot","first_observed_at","source","source_region","observation_stage","execution_status","decoding_basis","decoder_version","transaction_version","transaction_config","lifetime_token","outer_instruction_index","program_id","fee_payer","action","actor","attribution_basis","protocol","instruction","pool","mint","quote_mint","lp_mint"],"properties":{"schema_version":{"type":"integer","const":1},"chain":{"type":"string","const":"solana"},"channel":{"type":"string","enum":["early:deploys","early:locks","early:trades","early:liquidity","early:migrations","early:token_changes"]},"signature":{"type":"string"},"event_id":{"type":"string"},"observed_slot":{"type":"string"},"first_observed_at":{"type":"string","format":"date-time"},"source":{"type":"string","const":"shredprism"},"source_region":{"type":"string"},"observation_stage":{"type":"string","enum":["observed","outcome"]},"execution_status":{"type":"string","enum":["unknown","succeeded","failed","unresolved"]},"decoding_basis":{"type":"string","const":"outer_instruction"},"decoder_version":{"type":"string"},"transaction_version":{"oneOf":[{"type":"string","const":"legacy"},{"type":"integer","enum":[0,1]}]},"transaction_config":{"type":["object","null"]},"lifetime_token":{"type":"string"},"outer_instruction_index":{"type":"integer","minimum":0},"program_id":{"type":"string"},"fee_payer":{"type":"string"},"action":{"type":"string","enum":["create_pool","add_liquidity","remove_liquidity"]},"actor":{"type":"string"},"attribution_basis":{"type":"string"},"wallet_label":{"type":"object","description":"Database roster snapshot for actor (not an on-chain fact). Present on every non-deploy event; only early:trades accepts the wallet_labels filter.","properties":{"wallet":{"type":"string"},"labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"available_labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"observed_at_ms":{"type":["number","null"]},"basis":{"type":"string","const":"database_roster_snapshot"},"complete":{"type":"boolean"}}},"protocol":{"type":"string","const":"pumpswap"},"instruction":{"type":"string","enum":["create_pool","deposit","withdraw"]},"pool":{"type":"string"},"mint":{"type":"string"},"quote_mint":{"type":"string"},"lp_mint":{"type":"string"},"pool_index":{"type":"integer"},"coin_creator":{"type":"string"},"requested_base_input_raw":{"type":"string"},"requested_quote_input_raw":{"type":"string"},"target_lp_output_raw":{"type":"string"},"max_base_input_raw":{"type":"string"},"max_quote_input_raw":{"type":"string"},"requested_lp_input_raw":{"type":"string"},"min_base_output_raw":{"type":"string"},"min_quote_output_raw":{"type":"string"}}}}}]}},"early_outcome_early_liquidity":{"name":"early:outcome","title":"early:liquidity execution outcome","description":"Final-only: one outcome per observation, finalized with the execution status, pushed when the chain finalizes the transaction (typically about 13 to 20 s after the observation), or unresolved after 120 s if no final status was seen, with the last evidence seen if any. A missing status is unknown, never failed. Observations never wait for outcomes.","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/EarlyEventEnvelope"},{"type":"object","properties":{"channel":{"const":"early:liquidity"},"event":{"const":"early:outcome"},"data":{"allOf":[{"type":"object","additionalProperties":true,"required":["schema_version","chain","channel","signature","event_id","observed_slot","first_observed_at","source","source_region","observation_stage","execution_status","decoding_basis","decoder_version","transaction_version","transaction_config","lifetime_token","outer_instruction_index","program_id","fee_payer","action","actor","attribution_basis","protocol","instruction","pool","mint","quote_mint","lp_mint"],"properties":{"schema_version":{"type":"integer","const":1},"chain":{"type":"string","const":"solana"},"channel":{"type":"string","enum":["early:deploys","early:locks","early:trades","early:liquidity","early:migrations","early:token_changes"]},"signature":{"type":"string"},"event_id":{"type":"string"},"observed_slot":{"type":"string"},"first_observed_at":{"type":"string","format":"date-time"},"source":{"type":"string","const":"shredprism"},"source_region":{"type":"string"},"observation_stage":{"type":"string","enum":["observed","outcome"]},"execution_status":{"type":"string","enum":["unknown","succeeded","failed","unresolved"]},"decoding_basis":{"type":"string","const":"outer_instruction"},"decoder_version":{"type":"string"},"transaction_version":{"oneOf":[{"type":"string","const":"legacy"},{"type":"integer","enum":[0,1]}]},"transaction_config":{"type":["object","null"]},"lifetime_token":{"type":"string"},"outer_instruction_index":{"type":"integer","minimum":0},"program_id":{"type":"string"},"fee_payer":{"type":"string"},"action":{"type":"string","enum":["create_pool","add_liquidity","remove_liquidity"]},"actor":{"type":"string"},"attribution_basis":{"type":"string"},"wallet_label":{"type":"object","description":"Database roster snapshot for actor (not an on-chain fact). Present on every non-deploy event; only early:trades accepts the wallet_labels filter.","properties":{"wallet":{"type":"string"},"labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"available_labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"observed_at_ms":{"type":["number","null"]},"basis":{"type":"string","const":"database_roster_snapshot"},"complete":{"type":"boolean"}}},"protocol":{"type":"string","const":"pumpswap"},"instruction":{"type":"string","enum":["create_pool","deposit","withdraw"]},"pool":{"type":"string"},"mint":{"type":"string"},"quote_mint":{"type":"string"},"lp_mint":{"type":"string"},"pool_index":{"type":"integer"},"coin_creator":{"type":"string"},"requested_base_input_raw":{"type":"string"},"requested_quote_input_raw":{"type":"string"},"target_lp_output_raw":{"type":"string"},"max_base_input_raw":{"type":"string"},"max_quote_input_raw":{"type":"string"},"requested_lp_input_raw":{"type":"string"},"min_base_output_raw":{"type":"string"},"min_quote_output_raw":{"type":"string"}}},{"type":"object","required":["observed_event_id","outcome_at","execution_status"],"properties":{"observation_stage":{"const":"outcome"},"observed_event_id":{"type":"string"},"outcome_at":{"type":"string","format":"date-time"},"outcome_source":{"type":["string","null"],"enum":["kaldera_rpc","kaldera_status_stream",null],"description":"Where the execution evidence came from: kaldera_rpc (a transaction-status lookup: early:deploys, and the fallback for the other channels) or kaldera_status_stream (a pushed finalized status, early:locks / trades / liquidity / migrations / token_changes). null when no evidence was seen. New values may be added; treat an unknown value as a valid non-null source."},"commitment":{"type":["string","null"],"enum":["processed","confirmed","finalized",null]},"execution_status":{"type":"string","enum":["succeeded","failed","unresolved"]},"resolution_status":{"type":"string","enum":["unresolved"]},"reason":{"type":"string","enum":["finalization_timeout","outcome_timeout"]},"last_observed_outcome":{"type":["object","null"]}}}]}}}]}},"early_observed_early_migrations":{"name":"early:observed","title":"early:migrations observation","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/EarlyEventEnvelope"},{"type":"object","properties":{"channel":{"const":"early:migrations"},"event":{"const":"early:observed"},"data":{"type":"object","additionalProperties":true,"required":["schema_version","chain","channel","signature","event_id","observed_slot","first_observed_at","source","source_region","observation_stage","execution_status","decoding_basis","decoder_version","transaction_version","transaction_config","lifetime_token","outer_instruction_index","program_id","fee_payer","action","actor","attribution_basis","protocol","instruction","mint","quote_mint","source_curve","destination_pool","launchpad","destination_venue"],"properties":{"schema_version":{"type":"integer","const":1},"chain":{"type":"string","const":"solana"},"channel":{"type":"string","enum":["early:deploys","early:locks","early:trades","early:liquidity","early:migrations","early:token_changes"]},"signature":{"type":"string"},"event_id":{"type":"string"},"observed_slot":{"type":"string"},"first_observed_at":{"type":"string","format":"date-time"},"source":{"type":"string","const":"shredprism"},"source_region":{"type":"string"},"observation_stage":{"type":"string","enum":["observed","outcome"]},"execution_status":{"type":"string","enum":["unknown","succeeded","failed","unresolved"]},"decoding_basis":{"type":"string","const":"outer_instruction"},"decoder_version":{"type":"string"},"transaction_version":{"oneOf":[{"type":"string","const":"legacy"},{"type":"integer","enum":[0,1]}]},"transaction_config":{"type":["object","null"]},"lifetime_token":{"type":"string"},"outer_instruction_index":{"type":"integer","minimum":0},"program_id":{"type":"string"},"fee_payer":{"type":"string"},"action":{"const":"migrate"},"actor":{"type":"string"},"attribution_basis":{"type":"string"},"wallet_label":{"type":"object","description":"Database roster snapshot for actor (not an on-chain fact). Present on every non-deploy event; only early:trades accepts the wallet_labels filter.","properties":{"wallet":{"type":"string"},"labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"available_labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"observed_at_ms":{"type":["number","null"]},"basis":{"type":"string","const":"database_roster_snapshot"},"complete":{"type":"boolean"}}},"protocol":{"type":"string","const":"pumpfun"},"instruction":{"type":"string","enum":["migrate","migrate_v2"]},"mint":{"type":"string"},"quote_mint":{"type":"string"},"source_curve":{"type":"string"},"destination_pool":{"type":"string"},"launchpad":{"type":"string","const":"pumpfun"},"destination_venue":{"type":"string","const":"pumpswap"}}}}}]}},"early_outcome_early_migrations":{"name":"early:outcome","title":"early:migrations execution outcome","description":"Final-only: one outcome per observation, finalized with the execution status, pushed when the chain finalizes the transaction (typically about 13 to 20 s after the observation), or unresolved after 120 s if no final status was seen, with the last evidence seen if any. A missing status is unknown, never failed. Observations never wait for outcomes.","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/EarlyEventEnvelope"},{"type":"object","properties":{"channel":{"const":"early:migrations"},"event":{"const":"early:outcome"},"data":{"allOf":[{"type":"object","additionalProperties":true,"required":["schema_version","chain","channel","signature","event_id","observed_slot","first_observed_at","source","source_region","observation_stage","execution_status","decoding_basis","decoder_version","transaction_version","transaction_config","lifetime_token","outer_instruction_index","program_id","fee_payer","action","actor","attribution_basis","protocol","instruction","mint","quote_mint","source_curve","destination_pool","launchpad","destination_venue"],"properties":{"schema_version":{"type":"integer","const":1},"chain":{"type":"string","const":"solana"},"channel":{"type":"string","enum":["early:deploys","early:locks","early:trades","early:liquidity","early:migrations","early:token_changes"]},"signature":{"type":"string"},"event_id":{"type":"string"},"observed_slot":{"type":"string"},"first_observed_at":{"type":"string","format":"date-time"},"source":{"type":"string","const":"shredprism"},"source_region":{"type":"string"},"observation_stage":{"type":"string","enum":["observed","outcome"]},"execution_status":{"type":"string","enum":["unknown","succeeded","failed","unresolved"]},"decoding_basis":{"type":"string","const":"outer_instruction"},"decoder_version":{"type":"string"},"transaction_version":{"oneOf":[{"type":"string","const":"legacy"},{"type":"integer","enum":[0,1]}]},"transaction_config":{"type":["object","null"]},"lifetime_token":{"type":"string"},"outer_instruction_index":{"type":"integer","minimum":0},"program_id":{"type":"string"},"fee_payer":{"type":"string"},"action":{"const":"migrate"},"actor":{"type":"string"},"attribution_basis":{"type":"string"},"wallet_label":{"type":"object","description":"Database roster snapshot for actor (not an on-chain fact). Present on every non-deploy event; only early:trades accepts the wallet_labels filter.","properties":{"wallet":{"type":"string"},"labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"available_labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"observed_at_ms":{"type":["number","null"]},"basis":{"type":"string","const":"database_roster_snapshot"},"complete":{"type":"boolean"}}},"protocol":{"type":"string","const":"pumpfun"},"instruction":{"type":"string","enum":["migrate","migrate_v2"]},"mint":{"type":"string"},"quote_mint":{"type":"string"},"source_curve":{"type":"string"},"destination_pool":{"type":"string"},"launchpad":{"type":"string","const":"pumpfun"},"destination_venue":{"type":"string","const":"pumpswap"}}},{"type":"object","required":["observed_event_id","outcome_at","execution_status"],"properties":{"observation_stage":{"const":"outcome"},"observed_event_id":{"type":"string"},"outcome_at":{"type":"string","format":"date-time"},"outcome_source":{"type":["string","null"],"enum":["kaldera_rpc","kaldera_status_stream",null],"description":"Where the execution evidence came from: kaldera_rpc (a transaction-status lookup: early:deploys, and the fallback for the other channels) or kaldera_status_stream (a pushed finalized status, early:locks / trades / liquidity / migrations / token_changes). null when no evidence was seen. New values may be added; treat an unknown value as a valid non-null source."},"commitment":{"type":["string","null"],"enum":["processed","confirmed","finalized",null]},"execution_status":{"type":"string","enum":["succeeded","failed","unresolved"]},"resolution_status":{"type":"string","enum":["unresolved"]},"reason":{"type":"string","enum":["finalization_timeout","outcome_timeout"]},"last_observed_outcome":{"type":["object","null"]}}}]}}}]}},"early_observed_early_token_changes":{"name":"early:observed","title":"early:token_changes observation","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/EarlyEventEnvelope"},{"type":"object","properties":{"channel":{"const":"early:token_changes"},"event":{"const":"early:observed"},"data":{"type":"object","additionalProperties":true,"required":["schema_version","chain","channel","signature","event_id","observed_slot","first_observed_at","source","source_region","observation_stage","execution_status","decoding_basis","decoder_version","transaction_version","transaction_config","lifetime_token","outer_instruction_index","program_id","fee_payer","action","actor","attribution_basis","protocol","instruction","authority","authority_is_signer"],"properties":{"schema_version":{"type":"integer","const":1},"chain":{"type":"string","const":"solana"},"channel":{"type":"string","enum":["early:deploys","early:locks","early:trades","early:liquidity","early:migrations","early:token_changes"]},"signature":{"type":"string"},"event_id":{"type":"string"},"observed_slot":{"type":"string"},"first_observed_at":{"type":"string","format":"date-time"},"source":{"type":"string","const":"shredprism"},"source_region":{"type":"string"},"observation_stage":{"type":"string","enum":["observed","outcome"]},"execution_status":{"type":"string","enum":["unknown","succeeded","failed","unresolved"]},"decoding_basis":{"type":"string","const":"outer_instruction"},"decoder_version":{"type":"string"},"transaction_version":{"oneOf":[{"type":"string","const":"legacy"},{"type":"integer","enum":[0,1]}]},"transaction_config":{"type":["object","null"]},"lifetime_token":{"type":"string"},"outer_instruction_index":{"type":"integer","minimum":0},"program_id":{"type":"string"},"fee_payer":{"type":"string"},"action":{"type":"string","enum":["mint","burn","freeze","thaw","set_authority"]},"actor":{"type":"string"},"attribution_basis":{"type":"string"},"wallet_label":{"type":"object","description":"Database roster snapshot for actor (not an on-chain fact). Present on every non-deploy event; only early:trades accepts the wallet_labels filter.","properties":{"wallet":{"type":"string"},"labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"available_labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"observed_at_ms":{"type":["number","null"]},"basis":{"type":"string","const":"database_roster_snapshot"},"complete":{"type":"boolean"}}},"protocol":{"type":"string","enum":["spl_token","token_2022"]},"instruction":{"type":"string","enum":["mint_to","mint_to_checked","burn","burn_checked","freeze","thaw","set_authority"]},"authority":{"type":"string"},"authority_is_signer":{"type":"boolean"},"mint":{"type":["string","null"]},"token_account":{"type":["string","null"]},"requested_amount_raw":{"type":"string"},"decimals":{"type":["integer","null"]},"authority_type":{"type":"string","enum":["mint_tokens","freeze_account","account_owner","close_account"]},"target_scope":{"type":"string","enum":["mint","token_account"]},"target_account":{"type":"string"},"new_authority":{"type":["string","null"]},"authority_revocation_requested":{"type":"boolean"},"missing_fields":{"type":"array","items":{"type":"string"}}}}}}]}},"early_outcome_early_token_changes":{"name":"early:outcome","title":"early:token_changes execution outcome","description":"Final-only: one outcome per observation, finalized with the execution status, pushed when the chain finalizes the transaction (typically about 13 to 20 s after the observation), or unresolved after 120 s if no final status was seen, with the last evidence seen if any. A missing status is unknown, never failed. Observations never wait for outcomes.","contentType":"application/json","payload":{"allOf":[{"$ref":"#/components/schemas/EarlyEventEnvelope"},{"type":"object","properties":{"channel":{"const":"early:token_changes"},"event":{"const":"early:outcome"},"data":{"allOf":[{"type":"object","additionalProperties":true,"required":["schema_version","chain","channel","signature","event_id","observed_slot","first_observed_at","source","source_region","observation_stage","execution_status","decoding_basis","decoder_version","transaction_version","transaction_config","lifetime_token","outer_instruction_index","program_id","fee_payer","action","actor","attribution_basis","protocol","instruction","authority","authority_is_signer"],"properties":{"schema_version":{"type":"integer","const":1},"chain":{"type":"string","const":"solana"},"channel":{"type":"string","enum":["early:deploys","early:locks","early:trades","early:liquidity","early:migrations","early:token_changes"]},"signature":{"type":"string"},"event_id":{"type":"string"},"observed_slot":{"type":"string"},"first_observed_at":{"type":"string","format":"date-time"},"source":{"type":"string","const":"shredprism"},"source_region":{"type":"string"},"observation_stage":{"type":"string","enum":["observed","outcome"]},"execution_status":{"type":"string","enum":["unknown","succeeded","failed","unresolved"]},"decoding_basis":{"type":"string","const":"outer_instruction"},"decoder_version":{"type":"string"},"transaction_version":{"oneOf":[{"type":"string","const":"legacy"},{"type":"integer","enum":[0,1]}]},"transaction_config":{"type":["object","null"]},"lifetime_token":{"type":"string"},"outer_instruction_index":{"type":"integer","minimum":0},"program_id":{"type":"string"},"fee_payer":{"type":"string"},"action":{"type":"string","enum":["mint","burn","freeze","thaw","set_authority"]},"actor":{"type":"string"},"attribution_basis":{"type":"string"},"wallet_label":{"type":"object","description":"Database roster snapshot for actor (not an on-chain fact). Present on every non-deploy event; only early:trades accepts the wallet_labels filter.","properties":{"wallet":{"type":"string"},"labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"available_labels":{"type":"array","items":{"type":"string","enum":["kol","dev","alpha"]}},"observed_at_ms":{"type":["number","null"]},"basis":{"type":"string","const":"database_roster_snapshot"},"complete":{"type":"boolean"}}},"protocol":{"type":"string","enum":["spl_token","token_2022"]},"instruction":{"type":"string","enum":["mint_to","mint_to_checked","burn","burn_checked","freeze","thaw","set_authority"]},"authority":{"type":"string"},"authority_is_signer":{"type":"boolean"},"mint":{"type":["string","null"]},"token_account":{"type":["string","null"]},"requested_amount_raw":{"type":"string"},"decimals":{"type":["integer","null"]},"authority_type":{"type":"string","enum":["mint_tokens","freeze_account","account_owner","close_account"]},"target_scope":{"type":"string","enum":["mint","token_account"]},"target_account":{"type":"string"},"new_authority":{"type":["string","null"]},"authority_revocation_requested":{"type":"boolean"},"missing_fields":{"type":"array","items":{"type":"string"}}}},{"type":"object","required":["observed_event_id","outcome_at","execution_status"],"properties":{"observation_stage":{"const":"outcome"},"observed_event_id":{"type":"string"},"outcome_at":{"type":"string","format":"date-time"},"outcome_source":{"type":["string","null"],"enum":["kaldera_rpc","kaldera_status_stream",null],"description":"Where the execution evidence came from: kaldera_rpc (a transaction-status lookup: early:deploys, and the fallback for the other channels) or kaldera_status_stream (a pushed finalized status, early:locks / trades / liquidity / migrations / token_changes). null when no evidence was seen. New values may be added; treat an unknown value as a valid non-null source."},"commitment":{"type":["string","null"],"enum":["processed","confirmed","finalized",null]},"execution_status":{"type":"string","enum":["succeeded","failed","unresolved"]},"resolution_status":{"type":"string","enum":["unresolved"]},"reason":{"type":"string","enum":["finalization_timeout","outcome_timeout"]},"last_observed_outcome":{"type":["object","null"]}}}]}}}]}},"dex.subscribe":{"name":"dex.subscribe","title":"dex.subscribe","summary":"Open or replace a dex-stream subscription.","contentType":"application/json","payload":{"type":"object","required":["type","filters"],"properties":{"type":{"const":"subscribe"},"sub_id":{"type":"string","minLength":1,"maxLength":64,"description":"Absent = \"default\". Max 10 subscriptions per connection."},"filters":{"$ref":"#/components/schemas/DexFilters"},"legs":{"description":"Per-pool view: true|\"on\" = dex:route + dex:leg + the legacy dex:trades; \"only\" = without the legacy frame.","oneOf":[{"type":"boolean"},{"type":"string","enum":["off","on","only"]}]},"liquidity":{"description":"dex:liquidity events: true|\"on\" (with trades) or \"only\".","oneOf":[{"type":"boolean"},{"type":"string","enum":["off","on","only"]}]},"replay":{"type":"integer","minimum":0,"maximum":500,"description":"Replay up to N buffered matching trades (ring only) before live."},"replay_order":{"type":"string","enum":["asc","desc"],"default":"desc"}},"examples":[{"type":"subscribe","filters":{"dex":"pumpfun"}}]}},"dex.update":{"name":"dex.update","title":"dex.update","summary":"Replace a subscription's filters.","contentType":"application/json","payload":{"type":"object","required":["type","sub_id","filters"],"properties":{"type":{"const":"update"},"sub_id":{"type":"string"},"filters":{"$ref":"#/components/schemas/DexFilters"}}}},"dex.unsubscribe":{"name":"dex.unsubscribe","title":"dex.unsubscribe","summary":"Remove a subscription (or all).","contentType":"application/json","payload":{"type":"object","required":["type"],"properties":{"type":{"const":"unsubscribe"},"sub_id":{"type":"string","description":"Omitted = all subscriptions."}}}},"dex.list":{"name":"dex.list","title":"dex.list","summary":"List subscriptions.","contentType":"application/json","payload":{"type":"object","required":["type"],"properties":{"type":{"const":"list"}}}},"dex.connected":{"name":"dex.connected","title":"dex.connected","summary":"First frame after the handshake, with capabilities.","contentType":"application/json","payload":{"type":"object","properties":{"type":{"const":"connected"},"tier":{"type":"string"},"note":{"type":"string"},"subscribe_example":{"type":"object"},"capabilities":{"type":"object","properties":{"max_subs":{"const":10},"max_replay":{"const":500},"dex_names":{"type":"array","items":{"type":"string","enum":["pumpfun","pumpswap","raydium","jupiter","orca","meteora","launchlab","moonshot"]}},"deployer_tiers":{"type":"array"},"legs":{"type":"object"},"liquidity":{"type":"object"}}},"ts":{"type":"number"}}}},"dex.hint":{"name":"dex.hint","title":"dex.hint","summary":"Sent once if nothing is subscribed after 10 s.","contentType":"application/json","payload":{"type":"object","properties":{"type":{"const":"hint"},"message":{"type":"string"},"dex_names":{"type":"array"},"ts":{"type":"number"}}}},"dex.heartbeat":{"name":"dex.heartbeat","title":"dex.heartbeat","summary":"Every 30000 ms.","contentType":"application/json","payload":{"type":"object","properties":{"type":{"const":"heartbeat"},"ts":{"type":"number"}}}},"dex.subscribed":{"name":"dex.subscribed","title":"dex.subscribed","summary":"Subscribe ack.","contentType":"application/json","payload":{"type":"object","properties":{"type":{"const":"subscribed"},"sub_id":{"type":"string"},"filters":{"type":"object","description":"The EFFECTIVE filters (incl. the injected default min_sol)."},"legs":{"type":"string"},"coverage":{"type":"object"},"liquidity":{"type":"string"},"liquidity_coverage":{"type":"object"},"ts":{"type":"number"}}}},"dex.updated":{"name":"dex.updated","title":"dex.updated","summary":"Update ack.","contentType":"application/json","payload":{"type":"object","properties":{"type":{"const":"updated"},"sub_id":{"type":"string"},"filters":{"type":"object"},"ts":{"type":"number"}}}},"dex.unsubscribed":{"name":"dex.unsubscribed","title":"dex.unsubscribed","summary":"Unsubscribe ack.","contentType":"application/json","payload":{"type":"object","properties":{"type":{"const":"unsubscribed"},"sub_id":{"type":"string"},"all":{"type":"boolean"},"ts":{"type":"number"}}}},"dex.list_reply":{"name":"dex.list_reply","title":"dex.list_reply","summary":"Reply to list.","contentType":"application/json","payload":{"type":"object","properties":{"type":{"const":"list"},"subs":{"type":"array"},"ts":{"type":"number"}}}},"dex.error":{"name":"dex.error","title":"dex.error","summary":"Refused subscribe/update (invalid filter, over 10 subs, unknown sub_id) or rate limit (5 client frames/s).","contentType":"application/json","payload":{"type":"object","required":["type","message"],"properties":{"type":{"const":"error"},"sub_id":{"type":"string"},"message":{"type":"string"},"ts":{"type":"number"}}}},"dex.replay_done":{"name":"dex.replay_done","title":"dex.replay_done","summary":"End of a dex-stream replay.","contentType":"application/json","payload":{"type":"object","properties":{"type":{"const":"replay_done"},"sub_id":{"type":"string"},"count":{"type":"integer"},"sent":{"type":"integer"},"requested":{"type":"integer"},"matched":{"type":"integer"},"complete":{"type":"boolean"},"reason":{"type":"string"},"note":{"type":"string"},"liquidity":{"type":"object"},"order":{"type":"string"},"ts":{"type":"number"}}}},"dex.token_refresh":{"name":"dex.token_refresh","title":"dex.token_refresh","summary":"Stream token rotated.","contentType":"application/json","payload":{"type":"object","properties":{"type":{"const":"token_refresh"},"token":{"type":"string"},"expires_at":{"type":["string","null"]},"ts":{"type":"number"}}}},"dex_event_dex_trades":{"name":"dex:trades","title":"dex:trades","contentType":"application/json","payload":{"type":"object","required":["channel","sub_id","data","ts"],"properties":{"channel":{"const":"dex:trades"},"sub_id":{"type":"string"},"data":{"type":"object","properties":{"sol_amount":{"type":"number","description":"Economic size in SOL: the native SOL leg, or the SOL equivalent of a USDC/USDT leg (stable USD / SOL/USD). 0 when sol_amount_basis = stable_quote_unconverted (size unknown)."},"dust":{"type":"boolean","description":"Below the dust floor, judged on sol_amount (for a stable-quoted trade: below both 0.05 SOL-equivalent and $3.50)."},"sol_amount_basis":{"type":"string","enum":["native_sol","stable_quote_equivalent","stable_quote_unconverted"],"description":"How sol_amount was derived. Only USDC and USDT are converted; any other quote stays native_sol."},"stable_quote":{"type":["object","null"],"description":"null for a native SOL trade. For a USDC/USDT-paid swap: the stable leg and the SOL/USD price used.","properties":{"mint":{"type":"string","description":"USDC or USDT mint"},"amount":{"type":"number"},"usd_amount":{"type":"number"},"sol_usd":{"type":["number","null"]},"sol_usd_observed_at":{"type":["number","null"],"description":"ms epoch"},"sol_usd_age_ms":{"type":["number","null"]},"status":{"type":"string","enum":["converted","sol_usd_unavailable","sol_usd_stale"],"description":"sol_usd_stale = SOL/USD older than 5 min"}}}}},"replay":{"type":"boolean","description":"true on replayed frames."},"ts":{"type":"number"}}}},"dex_event_dex_route":{"name":"dex:route","title":"dex:route","contentType":"application/json","payload":{"type":"object","required":["channel","sub_id","data","ts"],"properties":{"channel":{"const":"dex:route"},"sub_id":{"type":"string"},"data":{"type":"object"},"replay":{"type":"boolean","description":"true on replayed frames."},"ts":{"type":"number"}}}},"dex_event_dex_leg":{"name":"dex:leg","title":"dex:leg","contentType":"application/json","payload":{"type":"object","required":["channel","sub_id","data","ts"],"properties":{"channel":{"const":"dex:leg"},"sub_id":{"type":"string"},"data":{"type":"object"},"replay":{"type":"boolean","description":"true on replayed frames."},"ts":{"type":"number"}}}},"dex_event_dex_liquidity":{"name":"dex:liquidity","title":"dex:liquidity","contentType":"application/json","payload":{"type":"object","required":["channel","sub_id","data","ts"],"properties":{"channel":{"const":"dex:liquidity"},"sub_id":{"type":"string"},"data":{"type":"object"},"replay":{"type":"boolean","description":"true on replayed frames."},"ts":{"type":"number"},"id":{"type":"string"}}}},"dex_event_dex_graduations":{"name":"dex:graduations","title":"dex:graduations","contentType":"application/json","payload":{"type":"object","required":["channel","sub_id","data","ts"],"properties":{"channel":{"const":"dex:graduations"},"sub_id":{"type":"string"},"data":{"type":"object"},"replay":{"type":"boolean","description":"true on replayed frames."},"ts":{"type":"number"}}}},"dex_event_dev_activity":{"name":"dev:activity","title":"dev:activity","contentType":"application/json","payload":{"type":"object","required":["channel","sub_id","data","ts"],"properties":{"channel":{"const":"dev:activity"},"sub_id":{"type":"string"},"data":{"type":"object"},"replay":{"type":"boolean","description":"true on replayed frames."},"ts":{"type":"number"},"id":{"type":"string","description":"dx1:<signature>:<mint>:<type>:<actor>"}}}},"dex_event_dev_activity_enrichment":{"name":"dev:activity_enrichment","title":"dev:activity_enrichment","contentType":"application/json","payload":{"type":"object","required":["channel","sub_id","data","ts"],"properties":{"channel":{"const":"dev:activity_enrichment"},"sub_id":{"type":"string"},"data":{"type":"object"},"replay":{"type":"boolean","description":"true on replayed frames."},"ts":{"type":"number"},"id":{"type":"string","description":"dx1:<signature>:<mint>:<type>:<actor>"}}}},"webhook_kol_trade_message":{"name":"kol:trade","title":"kol:trade","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"kol:trade"},"data":{"type":"object","required":["kol_name","wallet_address","token_mint","token_name","token_symbol","action","sol_amount","token_amount","tx_signature","traded_at"],"properties":{"kol_name":{"type":"string"},"wallet_address":{"type":"string"},"token_mint":{"type":"string"},"token_name":{"type":"string"},"token_symbol":{"type":"string"},"action":{"type":"string"},"sol_amount":{"type":"number"},"token_amount":{"type":"number"},"tx_signature":{"type":"string"},"slot":{"type":"number"},"traded_at":{"type":"string"},"chain_time_estimate":{"type":"string"},"price_usd_at_trade":{"type":"number"},"market_cap_usd_at_trade":{"type":"number"},"fdv_usd_at_trade":{"type":"number"},"liquidity_usd_at_trade":{"type":"number"},"primary_dex":{"type":"string"},"primary_pool_address":{"type":"string"}},"additionalProperties":true,"examples":[{"kol_name":"ansem","wallet_address":"7vfCExampleKolWallet00000000000000000000000","token_mint":"So11111111111111111111111111111111111111112","token_name":"Sample Token","token_symbol":"SMPL","action":"buy","sol_amount":5.25,"token_amount":1000000,"tx_signature":"kolExampleSignature0000000000000000000000000","slot":301234567,"traded_at":"2026-06-10T17:00:00.000Z","chain_time_estimate":"2026-06-10T16:59:59.000Z","price_usd_at_trade":0.0000184,"market_cap_usd_at_trade":18400,"fdv_usd_at_trade":18400,"liquidity_usd_at_trade":9200,"primary_dex":"pumpswap","primary_pool_address":"PoolExampleAddress0000000000000000000000000"}],"x-madeonsol-contract-source":"services/kol-tracker/index.mjs"}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"webhook_kol_coordination_message":{"name":"kol:coordination","title":"kol:coordination","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"kol:coordination"},"data":{"type":"object","required":["rule_id","rule_name","user_id","fired_at","token_mint","token_symbol","token_name","kol_count","exited_count","avg_winrate_7d","entry_rank_avg","coordination_score","score_version","window_minutes","is_rearm","signal_id"],"properties":{"rule_id":{"type":"string"},"rule_name":{"type":"string"},"user_id":{"type":"string"},"fired_at":{"type":"string"},"token_mint":{"type":"string"},"token_symbol":{"type":"string"},"token_name":{"type":"string"},"triggering_trade":{"type":"object"},"kol_count":{"type":"number"},"exited_count":{"type":"number"},"avg_winrate_7d":{"type":"number"},"entry_rank_avg":{"type":"number"},"coordination_score":{"type":"number"},"score_version":{"type":"string"},"window_minutes":{"type":"number"},"kols":{"type":"array"},"is_rearm":{"type":"boolean"},"signal_id":{"type":"number"}},"additionalProperties":true,"examples":[{"rule_id":"11111111-2222-4333-8444-555555555555","rule_name":"3+ KOLs in 15m","user_id":"00000000-0000-0000-0000-000000000000","fired_at":"2026-06-10T17:00:00.000Z","token_mint":"PumpExampleMint00000000000000000000000000pump","token_symbol":"TEST","token_name":"Test Token","triggering_trade":{"wallet_address":"7vfCExampleKolWallet00000000000000000000000","kol_name":"ansem","sol_amount":5.25,"tx_signature":"kolExampleSignature0000000000000000000000000","traded_at":"2026-06-10T16:59:58.000Z","market_cap_usd_at_trade":48000,"price_usd_at_trade":0.000048},"kol_count":3,"exited_count":0,"avg_winrate_7d":61.5,"entry_rank_avg":22.4,"coordination_score":74,"score_version":"v1","window_minutes":15,"kols":[{"wallet":"7vfCExampleKolWallet00000000000000000000000","name":"ansem"},{"wallet":"3kBxExampleKolWallet00000000000000000000000","name":"alpha_scout"},{"wallet":"9pQzExampleKolWallet00000000000000000000000","name":null}],"is_rearm":false,"signal_id":98765}],"x-madeonsol-contract-source":"services/signal-evaluator/coordination.mjs"}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"webhook_deployer_alert_message":{"name":"deployer:alert","title":"deployer:alert","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"deployer:alert"},"data":{"type":"object","required":["deployer_wallet","deployer_tier","token_mint","token_name","token_symbol","alert_type","bonding_rate","recent_bond_rate","total_bonded","total_deployed","runner_rate","labeled_tokens","market_cap_at_alert","deployer_sol_balance"],"properties":{"alert_id":{"type":"number"},"tx_signature":{"type":"string"},"slot":{"type":"number"},"detected_at":{"type":"string"},"deployer_wallet":{"type":"string"},"deployer_tier":{"type":"string"},"token_mint":{"type":"string"},"token_name":{"type":"string"},"token_symbol":{"type":"string"},"launchpad":{"type":"string"},"alert_type":{"type":"string"},"bonding_rate":{"type":"number"},"recent_bond_rate":{"type":"number"},"total_bonded":{"type":"number"},"total_deployed":{"type":"number"},"runner_rate":{"type":"number"},"labeled_tokens":{"type":"number"},"market_cap_at_alert":{"type":"number"},"deployer_sol_balance":{"type":"number"},"dev_buy_sol":{"type":"number"},"dev_buy_supply_pct":{"type":"number"}},"additionalProperties":true,"examples":[{"alert_id":123456,"tx_signature":"deployExampleSignature000000000000000000000","slot":301234567,"detected_at":"2026-06-10T17:00:00.000Z","deployer_wallet":"8kP4ExampleDeployerWallet0000000000000000000","deployer_tier":"elite","token_mint":"PumpExampleMint00000000000000000000000000pump","token_name":"Test Token","token_symbol":"TEST","launchpad":"pumpfun","alert_type":"new_deploy","bonding_rate":0.67,"recent_bond_rate":0.7,"total_bonded":10,"total_deployed":15,"runner_rate":0.2,"labeled_tokens":8,"market_cap_at_alert":25000,"deployer_sol_balance":12.4,"dev_buy_sol":1.5,"dev_buy_supply_pct":3.2}],"x-madeonsol-contract-source":"services/deployer-listener/index.mjs"}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"webhook_deployer_bond_message":{"name":"deployer:bond","title":"deployer:bond","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"deployer:bond"},"data":{"type":"object","required":["deployer_wallet","deployer_tier","token_mint","token_name","token_symbol","time_to_bond_minutes","bonding_rate","recent_bond_rate","total_bonded","total_deployed","runner_rate","labeled_tokens","market_cap_at_alert","deployer_sol_balance"],"properties":{"deployer_wallet":{"type":"string"},"deployer_tier":{"type":"string"},"token_mint":{"type":"string"},"token_name":{"type":"string"},"token_symbol":{"type":"string"},"time_to_bond_minutes":{"type":"number"},"bonding_rate":{"type":"number"},"recent_bond_rate":{"type":"number"},"total_bonded":{"type":"number"},"total_deployed":{"type":"number"},"runner_rate":{"type":"number"},"labeled_tokens":{"type":"number"},"market_cap_at_alert":{"type":"number"},"deployer_sol_balance":{"type":"number"}},"additionalProperties":true,"examples":[{"deployer_wallet":"8kP4ExampleDeployerWallet0000000000000000000","deployer_tier":"elite","token_mint":"PumpExampleMint00000000000000000000000000pump","token_name":"Test Token","token_symbol":"TEST","time_to_bond_minutes":14.2,"bonding_rate":0.67,"recent_bond_rate":0.7,"total_bonded":10,"total_deployed":15,"runner_rate":0.2,"labeled_tokens":8,"market_cap_at_alert":69000,"deployer_sol_balance":12.4}],"x-madeonsol-contract-source":"services/deployer-listener/index.mjs"}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"webhook_wallet_tracker_event_message":{"name":"wallet_tracker:event","title":"wallet_tracker:event","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"wallet_tracker:event"},"data":{"type":"object","required":["subscriber","wallet_address","label","event_type","action","token_mint","sol_amount","token_amount","counterparty","tx_signature","block_time","ts"],"properties":{"subscriber":{"type":"string"},"wallet_address":{"type":"string"},"label":{"type":"string"},"event_type":{"type":"string"},"action":{"type":"string"},"token_mint":{"type":"string"},"sol_amount":{"type":"number"},"token_amount":{"type":"number"},"counterparty":{},"tx_signature":{"type":"string"},"block_time":{"type":"number"},"slot":{"type":"number"},"replayed":{"type":"boolean"},"ts":{"type":"string"}},"additionalProperties":true,"examples":[{"subscriber":"00000000-0000-0000-0000-000000000000","wallet_address":"9aBcExampleTrackedWallet0000000000000000000","label":"whale-1","event_type":"swap","action":"buy","token_mint":"PumpExampleMint00000000000000000000000000pump","sol_amount":3.1,"token_amount":500000,"counterparty":null,"tx_signature":"wtExampleSignature00000000000000000000000000","block_time":1780000000,"slot":301234567,"replayed":false,"ts":"2026-06-10T17:00:00.000Z"}],"x-madeonsol-contract-source":"services/wallet-tracker/index.mjs"}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"webhook_sniper_deploy_message":{"name":"sniper:deploy","title":"sniper:deploy","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"sniper:deploy"},"data":{"type":"object","required":["mint","name","symbol","deployer","deployer_wallet","signature","slot","detected_at","detection_region","confidence","deployer_tier","deployer_bond_rate","deployer_total_bonded","deployer_recent","deployer_runner_rate","deployer_labeled_tokens"],"properties":{"mint":{"type":"string"},"name":{"type":"string"},"symbol":{"type":"string"},"deployer":{"type":"string"},"deployer_wallet":{"type":"string"},"signature":{"type":"string"},"slot":{"type":"number"},"detected_at":{"type":"string"},"detection_region":{"type":"string"},"confidence":{"type":"string"},"deployer_tier":{"type":"string"},"deployer_bond_rate":{"type":"number"},"deployer_total_bonded":{"type":"number"},"deployer_recent":{"type":"string"},"deployer_runner_rate":{"type":"number"},"deployer_labeled_tokens":{"type":"number"}},"additionalProperties":true,"examples":[{"mint":"9kQuExamplePumpMint000000000000000000000pump","name":"Waffle Inu","symbol":"WAFFLE","deployer":"7dExExampleDeployerWallet0000000000000000000","deployer_wallet":"7dExExampleDeployerWallet0000000000000000000","signature":"5xTExampleSignature000000000000000000000000","slot":301234567,"detected_at":"2026-06-10T17:00:00.000Z","detection_region":"Frankfurt","confidence":"deshred","deployer_tier":"elite","deployer_bond_rate":0.734,"deployer_total_bonded":41,"deployer_recent":"BBBBBFBBB","deployer_runner_rate":0.18,"deployer_labeled_tokens":22}],"x-madeonsol-contract-source":"services/sniper-detector/index.mjs"}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"webhook_rhc_kol_trade_message":{"name":"rhc:kol_trade","title":"rhc:kol_trade","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"rhc:kol_trade"},"data":{"type":"object","required":["chain","kol_wallet_id","evm_address","token_address","action","eth_amount","token_amount","price_usd","dex","tx_hash","log_index","traded_at"],"properties":{"chain":{"type":"string"},"kol_wallet_id":{"type":"number"},"evm_address":{"type":"string"},"token_address":{"type":"string"},"action":{"type":"string"},"eth_amount":{"type":"number"},"token_amount":{"type":"number"},"price_usd":{"type":"number"},"dex":{"type":"string"},"tx_hash":{"type":"string"},"log_index":{"type":"number"},"traded_at":{"type":"string"}},"additionalProperties":true,"examples":[{"chain":"robinhood","kol_wallet_id":42,"evm_address":"0x1111111111111111111111111111111111111111","token_address":"0x2222222222222222222222222222222222222222","action":"buy","eth_amount":0.35,"token_amount":1250000,"price_usd":0.00091,"dex":"uniswap-v3","tx_hash":"0x3333333333333333333333333333333333333333333333333333333333333333","log_index":7,"traded_at":"2026-06-10T17:00:00.000Z"}],"x-madeonsol-contract-source":"services/rhc-dex-stream/index.mjs"}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"webhook_token_surge_message":{"name":"token:surge","title":"token:surge","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"token:surge"},"data":{"type":"object","required":["id","kind","tier","mint","symbol","name","launchpad","primary_dex","fired_at","birth_at","birth_source","age_seconds","market_cap_usd","liquidity_usd","baseline_mc_usd","baseline_source","mc_multiple","mc_change_3m_pct","dormant_hours","prev_mc_usd","peak_mc_usd","tape","kol","early_buyers","deployer","deployer_wallet","deployer_tier","risk_flags","detail_url"],"properties":{"id":{"type":"number"},"kind":{"type":"string"},"tier":{"type":"string"},"mint":{"type":"string"},"symbol":{"type":"string"},"name":{"type":"string"},"launchpad":{"type":"string"},"primary_dex":{"type":"string"},"fired_at":{"type":"string"},"birth_at":{"type":"string"},"birth_source":{"type":"string"},"age_seconds":{"type":"number"},"market_cap_usd":{"type":"number"},"liquidity_usd":{"type":"number"},"liquidity_to_mc_ratio":{"type":"number"},"price_usd":{"type":"number"},"baseline_mc_usd":{"type":"number"},"baseline_source":{"type":"string"},"mc_multiple":{"type":"number"},"mc_change_3m_pct":{"type":"number"},"dormant_hours":{},"prev_mc_usd":{},"mc_vs_prev_multiple":{},"peak_mc_usd":{"type":"number"},"pct_of_peak":{"type":"number"},"bonding_progress_pct":{"type":"number"},"is_bonded":{"type":"boolean"},"tape":{"type":"object"},"kol":{"type":"object"},"early_buyers":{"type":"object"},"deployer":{"type":"object"},"deployer_wallet":{"type":"string"},"deployer_tier":{"type":"string"},"mint_authority_revoked":{"type":"boolean"},"freeze_authority_revoked":{"type":"boolean"},"is_token_2022":{"type":"boolean"},"risk_flags":{"type":"array"},"detail_url":{"type":"string"},"enrichment_available":{"type":"boolean"}},"additionalProperties":true,"examples":[{"id":1234,"kind":"surge","tier":"strong","mint":"SurgeExampleMint0000000000000000000000000pump","symbol":"RUNNER","name":"Runner Coin","launchpad":"pumpfun","primary_dex":"pumpfun","fired_at":"2026-08-28T10:00:00.000Z","birth_at":"2026-08-28T09:52:30.000Z","birth_source":"sniper","age_seconds":450,"market_cap_usd":38400,"liquidity_usd":9100,"liquidity_to_mc_ratio":0.237,"price_usd":0.0000384,"baseline_mc_usd":5600,"baseline_source":"launch","mc_multiple":6.857,"mc_change_3m_pct":112.4,"dormant_hours":null,"prev_mc_usd":null,"mc_vs_prev_multiple":null,"peak_mc_usd":39200,"pct_of_peak":97.96,"bonding_progress_pct":41.2,"is_bonded":false,"tape":{"since":"2026-08-28T09:52:30.000Z","buys":96,"sells":31,"trades":127,"buy_volume_usd":21300,"sell_volume_usd":6900,"volume_usd":28200,"mev_volume_usd":410,"unique_buyers":58,"unique_wallets":63,"trades_per_wallet":2.02,"wallet_data_available":true},"kol":{"buyers":2,"buys":3,"sells":0,"names":["alpha_scout","degen_dan"]},"early_buyers":{"count":20,"bundled":0,"cohort_sol":18.4,"sold":3,"sniper_wallets":1},"deployer":{"wallet":"7dExExampleDeployerWallet0000000000000000000","tier":"good","bonding_rate":0.31,"total_bonded":9,"total_deployed":29,"runner_rate":0.27,"labeled_tokens":22,"recent":"BDDBBDDDBD"},"deployer_wallet":"7dExExampleDeployerWallet0000000000000000000","deployer_tier":"good","mint_authority_revoked":true,"freeze_authority_revoked":true,"is_token_2022":false,"risk_flags":[],"detail_url":"https://madeonsol.com/api/v1/token/SurgeExampleMint0000000000000000000000000pump","enrichment_available":true}],"x-madeonsol-contract-source":"services/surge-tracker/index.mjs"}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"webhook_token_revival_message":{"name":"token:revival","title":"token:revival","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"token:revival"},"data":{"type":"object","required":["id","kind","tier","mint","symbol","name","launchpad","primary_dex","fired_at","birth_at","birth_source","age_seconds","market_cap_usd","liquidity_usd","baseline_mc_usd","baseline_source","mc_multiple","mc_change_3m_pct","dormant_hours","prev_mc_usd","peak_mc_usd","tape","kol","early_buyers","deployer","deployer_wallet","deployer_tier","risk_flags","detail_url"],"properties":{"id":{"type":"number"},"kind":{"type":"string"},"tier":{},"mint":{"type":"string"},"symbol":{"type":"string"},"name":{"type":"string"},"launchpad":{"type":"string"},"primary_dex":{"type":"string"},"fired_at":{"type":"string"},"birth_at":{"type":"string"},"birth_source":{"type":"string"},"age_seconds":{"type":"number"},"market_cap_usd":{"type":"number"},"liquidity_usd":{"type":"number"},"liquidity_to_mc_ratio":{"type":"number"},"price_usd":{"type":"number"},"baseline_mc_usd":{},"baseline_source":{},"mc_multiple":{},"mc_change_3m_pct":{},"dormant_hours":{"type":"number"},"prev_mc_usd":{"type":"number"},"mc_vs_prev_multiple":{"type":"number"},"peak_mc_usd":{"type":"number"},"pct_of_peak":{"type":"number"},"bonding_progress_pct":{},"is_bonded":{"type":"boolean"},"tape":{"type":"object"},"kol":{"type":"object"},"early_buyers":{"type":"object"},"deployer":{"type":"object"},"deployer_wallet":{"type":"string"},"deployer_tier":{"type":"string"},"mint_authority_revoked":{"type":"boolean"},"freeze_authority_revoked":{"type":"boolean"},"is_token_2022":{"type":"boolean"},"risk_flags":{"type":"array"},"detail_url":{"type":"string"},"enrichment_available":{"type":"boolean"}},"additionalProperties":true,"examples":[{"id":1235,"kind":"revival","tier":null,"mint":"RevivalExampleMint00000000000000000000000pump","symbol":"GHOST","name":"Ghost Coin","launchpad":"pumpfun","primary_dex":"pumpswap","fired_at":"2026-08-28T10:05:00.000Z","birth_at":"2026-07-02T14:20:00.000Z","birth_source":"deployer","age_seconds":4915500,"market_cap_usd":61000,"liquidity_usd":14800,"liquidity_to_mc_ratio":0.243,"price_usd":0.000061,"baseline_mc_usd":null,"baseline_source":null,"mc_multiple":null,"mc_change_3m_pct":null,"dormant_hours":412.6,"prev_mc_usd":22100,"mc_vs_prev_multiple":2.76,"peak_mc_usd":340000,"pct_of_peak":17.94,"bonding_progress_pct":null,"is_bonded":true,"tape":{"since":"2026-08-28T09:58:00.000Z","buys":27,"sells":4,"trades":31,"buy_volume_usd":8900,"sell_volume_usd":1100,"volume_usd":10000,"mev_volume_usd":0,"unique_buyers":19,"unique_wallets":21,"trades_per_wallet":1.48,"wallet_data_available":true},"kol":{"buyers":1,"buys":1,"sells":0,"names":["cto_hunter"]},"early_buyers":{"count":20,"bundled":2,"cohort_sol":9.1,"sold":17,"sniper_wallets":0},"deployer":{"wallet":"8kP4ExampleDeployerWallet0000000000000000000","tier":"moderate","bonding_rate":0.18,"total_bonded":4,"total_deployed":22,"runner_rate":0.1,"labeled_tokens":20,"recent":"DDBDDDDDBD"},"deployer_wallet":"8kP4ExampleDeployerWallet0000000000000000000","deployer_tier":"moderate","mint_authority_revoked":true,"freeze_authority_revoked":true,"is_token_2022":false,"risk_flags":["early_buyers_exiting"],"detail_url":"https://madeonsol.com/api/v1/token/RevivalExampleMint00000000000000000000000pump","enrichment_available":true}],"x-madeonsol-contract-source":"services/surge-tracker/index.mjs"}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"webhook_dev_activity_message":{"name":"dev:activity","title":"dev:activity","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"dev:activity"},"data":{"type":"object","required":["id","v","type","chain","mint","deployer_wallet","actor_wallet","actor_role","action","signature","slot","block_time","observed_at","region","token_amount_raw","token_decimals","token_amount","quote_amount","quote_mint","venue","counterparty_wallet","counterparty_class","supply_pct","provenance"],"properties":{"id":{"type":"string"},"v":{"type":"number"},"type":{"type":"string"},"chain":{"type":"string"},"mint":{"type":"string"},"deployer_wallet":{"type":"string"},"actor_wallet":{"type":"string"},"actor_role":{"type":"string"},"action":{"type":"string"},"signature":{"type":"string"},"slot":{"type":"number"},"block_time":{},"observed_at":{"type":"string"},"region":{"type":"string"},"token_amount_raw":{"type":"string"},"token_decimals":{"type":"number"},"token_amount":{"type":"number"},"quote_amount":{"type":"number"},"quote_mint":{"type":"string"},"venue":{"type":"string"},"counterparty_wallet":{},"counterparty_class":{},"supply_pct":{"type":"number"},"creator_kind":{"type":"string"},"human_dev_exit":{"type":"boolean"},"identity_evidence":{"type":"boolean"},"provenance":{"type":"object"}},"additionalProperties":true,"examples":[{"id":"dx1:5ExampleSig:DevExampleMint00000000000000000000000000pump:dev_sell:8kP4ExampleDeployerWallet0000000000000000000","v":1,"type":"dev_sell","chain":"solana","mint":"DevExampleMint00000000000000000000000000pump","deployer_wallet":"8kP4ExampleDeployerWallet0000000000000000000","actor_wallet":"8kP4ExampleDeployerWallet0000000000000000000","actor_role":"deployer","action":"sell","signature":"5ExampleSig","slot":453259174,"block_time":null,"observed_at":"2026-10-04T12:00:00.000Z","region":"Amsterdam","token_amount_raw":"125000000000000","token_decimals":6,"token_amount":125000000,"quote_amount":9.8,"quote_mint":"SOL","venue":"pumpfun","counterparty_wallet":null,"counterparty_class":null,"supply_pct":12.5,"creator_kind":"human","human_dev_exit":true,"identity_evidence":false,"provenance":{"source":"dex_stream_firehose","decoder":"trade-parse","map_source":"pending_deploys","attribution":"active_map","map_age_ms":4200,"mode":"on"}}],"x-madeonsol-contract-source":"services/dex-stream/dev-exit-wiring.mjs"}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"webhook_rhc_dev_activity_message":{"name":"rhc:dev_activity","title":"rhc:dev_activity","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"rhc:dev_activity"},"data":{"type":"object","required":["id","v","type","chain","mint","deployer_wallet","actor_wallet","actor_role","action","signature","slot","block_time","observed_at","region","token_amount_raw","token_decimals","token_amount","quote_amount","quote_mint","venue","counterparty_wallet","counterparty_class","supply_pct","provenance"],"properties":{"id":{"type":"string"},"v":{"type":"number"},"type":{"type":"string"},"chain":{"type":"string"},"mint":{"type":"string"},"deployer_wallet":{"type":"string"},"actor_wallet":{"type":"string"},"actor_role":{"type":"string"},"action":{"type":"string"},"signature":{"type":"string"},"slot":{"type":"number"},"block_time":{"type":"string"},"observed_at":{"type":"string"},"region":{},"token_amount_raw":{"type":"string"},"token_decimals":{},"token_amount":{},"quote_amount":{"type":"number"},"quote_mint":{"type":"string"},"venue":{"type":"string"},"counterparty_wallet":{},"counterparty_class":{},"supply_pct":{},"identity_evidence":{"type":"boolean"},"provenance":{"type":"object"}},"additionalProperties":true,"examples":[{"id":"dx1:0x5e1ec7ed00000000000000000000000000000000000000000000000000000001:0x00000000000000000000000000000000000000a1:dev_sell:0x00000000000000000000000000000000000000de","v":1,"type":"dev_sell","chain":"robinhood","mint":"0x00000000000000000000000000000000000000a1","deployer_wallet":"0x00000000000000000000000000000000000000de","actor_wallet":"0x00000000000000000000000000000000000000de","actor_role":"deployer","action":"sell","signature":"0x5e1ec7ed00000000000000000000000000000000000000000000000000000001","slot":61900000,"block_time":"2026-10-05T16:00:00.000Z","observed_at":"2026-10-05T16:00:01.200Z","region":null,"token_amount_raw":"125000000000000000000000","token_decimals":null,"token_amount":null,"quote_amount":0.42,"quote_mint":"0x0000000000000000000000000000000000000e7e","venue":"uniswap-v2","counterparty_wallet":null,"counterparty_class":null,"supply_pct":null,"identity_evidence":false,"provenance":{"source":"rhc_dex_stream","decoder":"rhc-swap","map_source":"launchpad","attribution":"creator","map_age_ms":21000,"mode":"on","late_classified":false}}],"x-madeonsol-contract-source":"services/rhc-dex-stream/dev-map.mjs"}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"rule_webhook_copytrade_signal_message":{"name":"copytrade:signal","title":"copytrade:signal","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"copytrade:signal"},"data":{"type":"object","additionalProperties":true,"description":"Payload of copytrade:signal. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"rule_webhook_kol_coordination_message":{"name":"kol:coordination","title":"kol:coordination","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"kol:coordination"},"data":{"type":"object","required":["rule_id","rule_name","user_id","fired_at","token_mint","token_symbol","token_name","kol_count","exited_count","avg_winrate_7d","entry_rank_avg","coordination_score","score_version","window_minutes","is_rearm","signal_id"],"properties":{"rule_id":{"type":"string"},"rule_name":{"type":"string"},"user_id":{"type":"string"},"fired_at":{"type":"string"},"token_mint":{"type":"string"},"token_symbol":{"type":"string"},"token_name":{"type":"string"},"triggering_trade":{"type":"object"},"kol_count":{"type":"number"},"exited_count":{"type":"number"},"avg_winrate_7d":{"type":"number"},"entry_rank_avg":{"type":"number"},"coordination_score":{"type":"number"},"score_version":{"type":"string"},"window_minutes":{"type":"number"},"kols":{"type":"array"},"is_rearm":{"type":"boolean"},"signal_id":{"type":"number"}},"additionalProperties":true,"examples":[{"rule_id":"11111111-2222-4333-8444-555555555555","rule_name":"3+ KOLs in 15m","user_id":"00000000-0000-0000-0000-000000000000","fired_at":"2026-06-10T17:00:00.000Z","token_mint":"PumpExampleMint00000000000000000000000000pump","token_symbol":"TEST","token_name":"Test Token","triggering_trade":{"wallet_address":"7vfCExampleKolWallet00000000000000000000000","kol_name":"ansem","sol_amount":5.25,"tx_signature":"kolExampleSignature0000000000000000000000000","traded_at":"2026-06-10T16:59:58.000Z","market_cap_usd_at_trade":48000,"price_usd_at_trade":0.000048},"kol_count":3,"exited_count":0,"avg_winrate_7d":61.5,"entry_rank_avg":22.4,"coordination_score":74,"score_version":"v1","window_minutes":15,"kols":[{"wallet":"7vfCExampleKolWallet00000000000000000000000","name":"ansem"},{"wallet":"3kBxExampleKolWallet00000000000000000000000","name":"alpha_scout"},{"wallet":"9pQzExampleKolWallet00000000000000000000000","name":null}],"is_rearm":false,"signal_id":98765}],"x-madeonsol-contract-source":"services/signal-evaluator/coordination.mjs"}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"rule_webhook_kol_first_touch_message":{"name":"kol:first_touch","title":"kol:first_touch","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"kol:first_touch"},"data":{"type":"object","additionalProperties":true,"description":"Payload of kol:first_touch. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"rule_webhook_price_alert_dip_message":{"name":"price_alert:dip","title":"price_alert:dip","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"price_alert:dip"},"data":{"type":"object","additionalProperties":true,"description":"Payload of price_alert:dip. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"rule_webhook_price_alert_recovery_message":{"name":"price_alert:recovery","title":"price_alert:recovery","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"price_alert:recovery"},"data":{"type":"object","additionalProperties":true,"description":"Payload of price_alert:recovery. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"rule_webhook_rhc_copytrade_signal_message":{"name":"rhc:copytrade:signal","title":"rhc:copytrade:signal","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"rhc:copytrade:signal"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:copytrade:signal. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"rule_webhook_rhc_kol_coordination_message":{"name":"rhc:kol:coordination","title":"rhc:kol:coordination","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"rhc:kol:coordination"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:kol:coordination. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"rule_webhook_rhc_kol_first_touch_message":{"name":"rhc:kol:first_touch","title":"rhc:kol:first_touch","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"rhc:kol:first_touch"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:kol:first_touch. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"rule_webhook_rhc_price_alert_dip_message":{"name":"rhc:price_alert:dip","title":"rhc:price_alert:dip","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"rhc:price_alert:dip"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:price_alert:dip. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}},"rule_webhook_rhc_price_alert_recovery_message":{"name":"rhc:price_alert:recovery","title":"rhc:price_alert:recovery","contentType":"application/json","headers":{"$ref":"#/components/schemas/WebhookHeaders"},"payload":{"allOf":[{"$ref":"#/components/schemas/WebhookBody"},{"type":"object","properties":{"event":{"const":"rhc:price_alert:recovery"},"data":{"type":"object","additionalProperties":true,"description":"Payload of rhc:price_alert:recovery. No machine-readable contract in src/lib/event-contracts.ts yet — see docs/api.md."}}}]},"bindings":{"http":{"bindingVersion":"0.3.0"}}}},"securitySchemes":{"streamTokenBearer":{"type":"httpApiKey","name":"Authorization","in":"header","description":"`Bearer <stream token>` from POST /api/v1/stream/token."},"streamTokenQuery":{"type":"httpApiKey","name":"token","in":"query","description":"Stream token as ?token=."},"webhookSignature":{"type":"httpApiKey","name":"X-MadeOnSol-Signature","in":"header","description":"HMAC-SHA256 signature MadeOnSol attaches; verify it with your webhook secret (see WebhookHeaders)."}}}}