{"project":{"slug":"madeonsol-robinhood-chain-python","name":"MadeOnSol","url":"https://heyresearch.xyz/project/madeonsol-robinhood-chain-python"},"lens":"held","items":[{"id":"ship:dbdd4611-38c3-450b-afbc-6fb68224d1ef","kind":"announcement","at":"2026-10-17T18:17:32.000Z","precision":"EXACT","title":"Aurus","summary":"Self-custodial Solana mobile wallet built for active traders, with a token terminal and low per-swap fees","recordedAt":"2026-10-17T19:10:34.369Z","discoveryLagHours":0.9,"eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/tools/aurus"},{"id":"ship:f4be9eff-ae8b-4196-96c1-f14ac0f0f888","kind":"release","at":"2026-10-15T00:00:00.000Z","precision":"DATE","title":"Impossible VWAP values are no longer passed on","summary":"The 15-minute VWAP ( vwap_price_usd , vwap_price_sol ) on GET /api/v1/token/{mint} , POST /api/v1/token/batch , the x402 token endpoint and the WebSocket token:price event (live and on resume) is now withheld when it is more than 1000 times away from the price it is shipped with. The fields are then null and the new vwap_status says why: ok , unavailable (no VWAP measured), no_price_reference (no price to check it against) or implausible_vs_price . Why: on some graduated PumpSwap tokens a pool's virtual reserve was misread, which pushed a single pool price up by a factor of millions and with i","recordedAt":"2026-10-15T18:32:05.467Z","discoveryLagHours":18.5,"eventType":"API_RELEASE","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:6d3ff329-7ba3-4132-a02b-7097dd9c43b6","kind":"announcement","at":"2026-10-15T00:00:00.000Z","precision":"DATE","title":"Token VWAP no longer jumps to absurd values on some graduated pump.fun tokens","summary":"vwap_price_sol and vwap_price_usd (token price endpoints, the token WebSocket price frames and anything that reads the 15-minute VWAP) could be thousands of times too high for some tokens that graduated from pump.fun to PumpSwap. A field in the PumpSwap pool account that holds a negative number was read as a huge positive one, so those pools were priced at tens of SOL per token while they traded at fractions of a micro-SOL, and those prices entered the VWAP. Example: MBGA ( dFybjfpAbTxjen9Ux2Q2dQSFTmrbcVRzYsGoiV5pump ) showed a VWAP of about 19 SOL per token on 2026-10-15 while it traded at ab","recordedAt":"2026-10-15T18:32:05.430Z","discoveryLagHours":18.5,"eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:109535b3-03bd-4e48-b01e-c88ac163d1b0","kind":"announcement","at":"2026-10-13T00:00:00.000Z","precision":"DATE","title":"Solana holders: percentages use the live on-chain supply","summary":"GET /api/v1/tokens/{mint}/holders now computes every percentage ( pct_of_supply , pct_of_circulating , top10_share and the rest) over the token supply read on-chain in the same request. Before, it used a cached supply value. When a token had minted or burned since that cache was refreshed, shares could exceed 100 % or be understated, and very large supplies lost precision. New fields in concentration : supply_source : mint_account (normal), token_prices_cache or rpc_token_supply (fallbacks). supply_consistent : false when no supply consistent with the listed balances was available. In that cas","recordedAt":"2026-10-13T21:29:27.191Z","discoveryLagHours":21.5,"eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:e5536a0a-2a7b-4067-b081-1623234d5c99","kind":"release","at":"2026-10-10T00:00:00.000Z","precision":"DATE","title":"Robinhood Chain Trading Terminal Architecture: REST Snapshots Plus WebSocket Updates","summary":"How to structure a Robinhood Chain (chain id 4663) trading terminal: one include-scoped REST snapshot per token, then price, risk, lock and candle events over one WebSocket. Runnable code with watchTokenIntelligence() from robinhood-chain-x402 0.21.0, plus the Ultra firehose trade-off.","recordedAt":"2026-10-10T18:38:04.140Z","discoveryLagHours":18.6,"eventType":"FEATURE_RELEASE","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"blog_article","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/blog/robinhood-chain-trading-terminal-rest-snapshot-websocket"},{"id":"ship:d8b0d1ef-2a44-4751-b5d4-7f2dded76350","kind":"release","at":"2026-10-10T00:00:00.000Z","precision":"DATE","title":"Solana holder count on first paint, with its measurement time","summary":"Token intelligence has a new module, holder_count (PRO and up, cost 1): GET /api/v1/tokens/{mint}/intelligence?include=snapshot,risk,holder_count . It returns the holder count from the last complete holder census of that mint, with as_of (when it was measured), slot , age_seconds and freshness . The module is ready when the count is at most 15 minutes old, unverified with reason stale_measurement when it is older (the count and its time are still returned), and unavailable with reason not_measured when no complete census exists yet: unknown is never shown as zero. Only a full ledger census is","recordedAt":"2026-10-10T08:20:01.374Z","discoveryLagHours":8.3,"eventType":"FEATURE_RELEASE","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:043d7462-69c4-4bfd-aabb-13c74b23efac","kind":"release","at":"2026-10-10T00:00:00.000Z","precision":"DATE","title":"Build a Realtime Solana Token Intelligence Dashboard Without Polling","summary":"Load a Solana token's risk, locks, flow and holder count with one include-scoped REST read, then keep the panel current from WebSocket events instead of polling. Runnable Node and browser code with watchTokenIntelligence() from madeonsol-x402 4.3.0.","recordedAt":"2026-10-10T18:38:04.109Z","discoveryLagHours":18.6,"eventType":"FEATURE_RELEASE","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/blog/realtime-solana-token-intelligence-dashboard-without-polling"},{"id":"ship:819cc9c1-7dec-4a7e-8f51-118537a7b08d","kind":"release","at":"2026-10-09T00:00:00.000Z","precision":"DATE","title":"Token depth: concentrated pools report availability per size","summary":"On GET /api/v1/tokens/{mint}/depth , Meteora DLMM and Raydium CLMM pools could be listed with depth_available: true even when none of the requested sizes could be quoted, and a one-sided Meteora DLMM pair reported to_move_price as 0 SOL for 1%, 5% and 10%. Now every quote on a concentrated pool carries available . A size that the pool's liquidity cannot fill keeps its status (for example exceeds_loaded_bins ), has no numbers, and for Meteora DLMM adds fillable_up_to_sol , the SOL the pool can absorb. A pool where no requested size can be filled moves to unsupported_pools with dlmm_insufficient","recordedAt":"2026-10-09T20:51:23.236Z","discoveryLagHours":20.9,"eventType":"FEATURE_RELEASE","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:1fe035f2-72ba-49f7-8328-3b7b46fe5db9","kind":"announcement","at":"2026-10-09T00:00:00.000Z","precision":"DATE","title":"Solana candles: bounded reads, a hard time limit, and opt-in partial results","summary":"GET /api/v1/tokens/{mint}/candles (and the x402 candles route) could answer 503 after about 8 seconds for a large window on a busy token, for example tf=1h&limit=1500 , when part of the window fell in closed months on cold storage. One database read covered up to 999 buckets of 1-minute data. Candles are now read in smaller time windows that grow while reads are fast. A request starts no new database reads after about 4 seconds and stops after at most about 7 seconds. Windows that fit the budget, including all recently read data, return complete as before. When the budget runs out, the default","recordedAt":"2026-10-09T20:51:23.225Z","discoveryLagHours":20.9,"eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:e892cb95-eeea-4de4-b8b8-0ac60cebb971","kind":"announcement","at":"2026-10-07T00:00:00.000Z","precision":"DATE","title":"Pricing reflects your current plan","summary":"The plan cards on Pricing and Solana Data API now show your current subscription and mark the lower plans that are already included in it. Paid customers no longer see Pro marked as recommended or purchase buttons for lower plans; higher plans remain available as upgrades, and Enterprise includes every self-service plan. While your account details load, or if they cannot be loaded, the cards stay neutral and show no recommendation or checkout button. Platform October 7, 2026 #","recordedAt":"2026-10-07T18:18:59.267Z","discoveryLagHours":18.3,"eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:c91990b4-5cfe-430d-954b-0307d04011f0","kind":"announcement","at":"2026-10-06T00:00:00.000Z","precision":"DATE","title":"Sniper deploys now come from ShredPrism, with a dedicated early stream for ULTRA and above","summary":"Since 6 October 2026, 21:45 UTC, the Solana sniper feed is built from ShredPrism, the earliest data our provider offers (transaction entries as the leader produces them, before execution results). It powers GET /api/v1/sniper/recent , GET /api/v1/sniper/by-deployer/{wallet} , the sniper:deploys WebSocket channel and sniper webhooks. Rows from the new source carry source: \"shredprism\" . New early endpoint. ULTRA, BUSINESS and ENTERPRISE stream tokens ( POST /api/v1/stream/token ) now include early_ws_url ( wss://madeonsol.com/ws/v1/early ) and an early_stream block. Connect with the same stream","recordedAt":"2026-10-07T11:21:24.519Z","discoveryLagHours":35.4,"eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:f5c046d1-229d-4d4d-8155-493e2edc0e75","kind":"release","at":"2026-10-05T00:00:00.000Z","precision":"DATE","title":"The developer's buy inside the launch transaction is now a dev:activity event","summary":"When a pump.fun developer buys their own token in the same transaction that creates it, that buy is now delivered as a dev_buy on dev:activity (WebSocket and webhooks) and appears in the developer timeline. Before, these creator buys were missed for part of new launches. Measured after the change: 286 of 286 new pump.fun launches with a creator buy produced the event. Platform October 5, 2026 #","recordedAt":"2026-10-05T20:25:48.615Z","discoveryLagHours":20.4,"eventType":"FEATURE_RELEASE","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:a19bd590-8b0d-4bcc-b1eb-4e4b727809c6","kind":"release","at":"2026-10-05T00:00:00.000Z","precision":"DATE","title":"Stored trade history now includes the first seconds of new Meteora DBC launches","summary":"Since 5 October 2026, 15:07 UTC, /tokens/{mint}/trades and the other stored-trade endpoints keep the earliest trades of a new launchpad token, including the trades made before we finished recognising the launch. Why it matters. Meteora DBC tokens (for example bags launches) often trade within seconds of being created. Our launch recognition used to refresh only every 10 minutes, so on a measured interval before this change only 29 percent of trades in new Meteora DBC tokens were stored. Trades of a token that is not yet recognised are now held briefly in memory and written as soon as the token","recordedAt":"2026-10-05T18:10:43.827Z","discoveryLagHours":18.2,"eventType":"FEATURE_RELEASE","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:5b599da0-1e9a-4343-87f6-b688002aa6f5","kind":"announcement","at":"2026-10-05T00:00:00.000Z","precision":"DATE","title":"Meteora DAMM v2 depth only from a verified pool","summary":"GET /api/v1/tokens/{mint}/depth now quotes a Meteora DAMM v2 pool only after reading its pool account live and checking that it belongs to the DAMM v2 program, has the expected layout, holds the pool's token vault, and covers the full price range (where the constant-product formula is exact). Such pools carry model_detail: \"meteora_damm_v2_full_range\" and pool_account . Every other DAMM v2 pool is listed in unsupported_pools with a reason instead of an estimate: damm_v2_pool_unknown (pool account not identified yet), damm_v2_single_range (a narrower price range, concentrated liquidity, no dept","recordedAt":"2026-10-06T05:07:09.718Z","discoveryLagHours":29.1,"eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:32500618-8e57-4af6-9306-e5f653aa6f8d","kind":"announcement","at":"2026-10-05T00:00:00.000Z","precision":"DATE","title":"Copy-trade: one signal per independent trade action","summary":"Solana copy-trade rules now fire one signal per independent trade action instead of one per transaction. A followed wallet that makes seven separate buys in one transaction now produces seven signals (it produced one before). A routed swap through several pools is still a single action and a single signal. When several wallets act in one transaction, each signal names the wallet that made that trade ( source_wallet ), and a rule that follows a wallet which is not the first tracked wallet in the transaction now receives its trade (it was missed before). Webhook and WebSocket signals carry a new","recordedAt":"2026-10-06T05:07:09.705Z","discoveryLagHours":29.1,"eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:78059efa-d852-4dac-bf78-1a7051588e77","kind":"release","at":"2026-10-04T00:00:00.000Z","precision":"DATE","title":"DEX stream: swaps paid in USDC or USDT are sized correctly","summary":"Some swaps are paid in USDC or USDT instead of SOL, for example pump.fun trades through its USDC route (about 50,000 a day since 2 October). We sized every swap by the SOL it moved, and these move almost none, only about 0.0015 SOL of account rent. So about 92 % of them were marked dust: true and hidden from subscribers using the default min_sol of 0.05, even large ones. Since 5 October 2026, 03:26 UTC, a USDC- or USDT-paid swap on dex:trades is sized by its stable leg, converted at a current SOL/USD price: sol_amount is the SOL equivalent, and dust , min_sol and max_sol use it. Example from p","recordedAt":"2026-10-05T04:22:20.720Z","discoveryLagHours":28.4,"eventType":"FEATURE_RELEASE","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:c8fc1796-5d55-4329-b251-723034662248","kind":"announcement","at":"2026-10-01T00:00:00.000Z","precision":"DATE","title":"2026-10-01 — June trade history moves to the archive tier; wallet history over archived months is being fixed","summary":"Token history: unchanged for you. June 2026 Solana trades were moved out of our live database into the long-term archive, after the archive copy was checked row for row (108,752,540 trades, stored with two independent storage providers). GET /api/v1/tokens/{mint}/trades still returns June: archived rows come back on the same cursor and in the same order as recent ones, and a page that spans the end of June and the start of July is merged without gaps or duplicates. The response's history block shows which months came from the archive. Plan limits are unchanged: archived history is available on","recordedAt":"2026-10-02T21:29:36.760Z","discoveryLagHours":45.5,"eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:3256ccf1-e27e-4faa-bada-ed4d17fdefc9","kind":"announcement","at":"2026-10-01T00:00:00.000Z","precision":"DATE","title":"2026-10-01 — Solana wallet profile: a failed lookup is flagged, not shown as empty","summary":"GET /api/v1/wallet/{address} combines a 90-day aggregate with several enrichment lookups. When one of them failed under load (for example a database timeout), its block came back null or [] , which looked exactly like a wallet with no data. Now stats_unavailable: true means the 90-day aggregate failed ( stats: null is then unknown, not an inactive wallet), and enrichment_unavailable: true with degraded_fields names the blocks that failed ( top_tokens , trading_style , deployer_breakdown , recent_trades , biggest_miss ). Their values are unknown; retry later. Both fields are absent on a fully m","recordedAt":"2026-10-03T07:29:37.513Z","discoveryLagHours":55.5,"eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:f74d34cc-24cb-4736-a43b-e0cb18008e65","kind":"announcement","at":"2026-09-30T00:00:00.000Z","precision":"DATE","title":"2026-09-30 — Liquidity depth for PumpSwap pools that had no recent account update","summary":"GET /api/v1/tokens/{mint}/depth returned pumpswap_virtual_reserve_unknown for about 1,600 active PumpSwap pools whose virtual reserve was known from validated swap events but whose pool account had not changed since we started recording it. Depth now uses that validated event value when no decoded account value exists. A decoded account value still always takes precedence.","recordedAt":"2026-10-02T04:47:46.441Z","discoveryLagHours":52.8,"eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:aa0279f8-6101-4b2f-bb0a-779ea9fe0c0b","kind":"announcement","at":"2026-09-30T00:00:00.000Z","precision":"DATE","title":"2026-09-30 — Candles: no split bucket at page seams, the newest window on x402, and the Solana PRO window measured from now","summary":"Page seams. GET /api/v1/tokens/{mint}/candles , GET /api/v1/rhc/tokens/{address}/candles and the x402 candles route fetch long ranges in several pages. Page boundaries did not fall on the candle grid, so a response that needed more than one page could contain one candle built from only part of its bucket. Pages are now cut on the grid and a bucket is never split. x402 returns the newest candles. A request such as 24 hours of tf=1m with limit=200 returned candles from about 7 hours earlier instead of the newest 200. It now returns the newest ones. Solana PRO and x402 history window. The 30-day","recordedAt":"2026-10-02T04:47:46.420Z","discoveryLagHours":52.8,"eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:caabd9d3-30fe-4ccf-a376-68f8e7c8e959","kind":"announcement","at":"2026-09-28T00:00:00.000Z","precision":"DATE","title":"2026-09-28 — Prices and market caps: no more pump.fun price spikes, and no dead pools after a restart","summary":"pump.fun spikes. For a moment after some small bot round-trips on a pump.fun curve, the price was computed from the trader's whole SOL change, which includes the rent for a new token account. That could put the price about 1,500 times too high for around a second: enough to reach candle highs, the market cap stored on trades and, in some cases, a token's peak market cap. Since 28 September pump.fun curve prices come from the trade event and the curve's own state, and a price above what the curve can reach is refused. In the first 26,749 candles after the fix, no wick was 50 times or more above","recordedAt":"2026-10-02T04:47:46.470Z","discoveryLagHours":100.8,"eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:91c9f791-50e1-406d-901b-ce6cfbbf0d29","kind":"release","at":"2026-09-26T00:00:00.000Z","precision":"DATE","title":"2026-09-26 — SDK and MCP correctness releases","summary":"Keyless x402 clients fail fast on routes x402 cannot serve. madeonsol-x402 2.7.0 (npm) and madeonsol-x402 1.36.0 (PyPI): in keyless mode, peak history, KOL consensus, token bundle, the scout leaderboard and coordination history now raise KeylessNotAvailableError before any request or payment. Those routes are not priced for x402 and answered 404; with an API key they work as before. Descriptions match the API. mcp-server-madeonsol 3.1.1, solana-agent-kit-plugin-madeonsol 2.1.1 and @madeonsol/plugin-madeonsol 1.28.1: token risk is described as risk evidence for your own policy, not a verdict, a","recordedAt":"2026-10-02T04:47:46.490Z","discoveryLagHours":148.8,"eventType":"SDK_RELEASE","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:bc2108d1-2dd5-4f32-bcda-150e7737198e","kind":"announcement","at":"2026-09-20T00:00:00.000Z","precision":"DATE","title":"2026-09-20 — Wallet funding evidence is live on the API, with Pro and Ultra seeing different depths","summary":"GET /api/v1/wallet/{address}/funding and GET /api/v1/rhc/wallet/{address}/funding now return a direct_funding block answering \"where did this wallet's money come from\": the source address, the amount, the asset, when it arrived, how many transfers it covers, and, where we hold a label for the sender, who that sender is. Native and token funding are reported separately, because they are often different sources and answer different questions. Solana token funding is reported as not observable rather than as absent, since inbound SPL transfers reference a wallet's associated token account and are","recordedAt":"2026-10-01T02:13:44.648Z","discoveryLagHours":266.2,"eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/changelog"},{"id":"ship:cd40a23b-2d7a-4006-b3c4-a0b02035c1c9","kind":"announcement","at":"2026-09-17T15:57:55.000Z","precision":"EXACT","title":"Supanode","summary":"Frankfurt-edge Solana RPC, gRPC streaming, ShredStream, and stake-weighted TPU transaction landing","recordedAt":"2026-09-18T09:42:45.508Z","eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/tools/supanode"},{"id":"ship:6e850234-551b-4787-9dfb-8ad7a58fb991","kind":"announcement","at":"2026-09-14T15:58:35.000Z","precision":"EXACT","title":"Scry Wallet Intelligence","summary":"Pay-per-call x402 API for Solana wallet forensics and funding-lineage evidence","recordedAt":"2026-09-18T09:42:45.517Z","eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/tools/scry-wallet-intelligence"},{"id":"ship:00fcda93-3a33-472b-a42a-2c49f4206c5f","kind":"release","at":"2026-09-10T00:00:00.000Z","precision":"DATE","title":"Agentic Trading in 2026: What Actually Changed","summary":"More than 70% of Solana DEX volume on peak launch days now comes from autonomous agents, not humans. Here's what shifted this year in MCP, x402, and agent tooling — and how MadeOnSol's infrastructure compares to what exchanges are shipping.","recordedAt":"2026-09-18T09:42:45.610Z","eventType":"FEATURE_RELEASE","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/blog/agentic-trading-2026-what-changed"},{"id":"ship:60b5dcb7-fe09-4380-b261-74395ddd1224","kind":"build","at":"2026-09-06T00:00:00.000Z","precision":"DATE","title":"Best Robinhood Chain APIs for Developers (2026): Bitquery vs GoldRush vs Mobula vs Goldsky vs MadeOnSol","summary":"Robinhood Chain (chain ID 4663) now has real API coverage — Bitquery, GoldRush, Mobula and Goldsky all index it. Here's what each actually gives you, sourced from their live docs, and where none of them go: KOL wallets, deployer reputation, and sniper detection.","recordedAt":"2026-09-18T09:42:45.616Z","eventType":"DOCS_UPDATE","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"blog_article","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/blog/best-robinhood-chain-apis-for-developers"},{"id":"ship:db4dfae1-d545-4694-9461-76875101245b","kind":"release","at":"2026-09-05T00:00:00.000Z","precision":"DATE","title":"How to Stream New Solana Token Launches over WebSocket: Deploys, Graduations, Surges (2026)","summary":"One socket, three channels: sniper:deploys pushes every pump.fun launch about half a second before the chain confirms it, token:graduations pushes every bonding-curve completion, token:surges pushes young tokens running 3×, 6× or 8× against their launch cap. Handshake, real frames, filters, and what each channel does not tell you.","recordedAt":"2026-09-18T09:42:45.629Z","eventType":"FEATURE_RELEASE","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/blog/stream-new-solana-token-launches-websocket-pump-fun"},{"id":"ship:7a5539e6-9225-43a8-8202-f6f746dae347","kind":"announcement","at":"2026-09-05T00:00:00.000Z","precision":"DATE","title":"How to Track Solana KOL Wallet Trades via API: since-Cursor Polling or WebSocket Push (2026)","summary":"Two ways to follow the trades of 1,000+ tracked Solana KOL wallets: poll GET /api/v1/kol/feed with the next_since cursor, or subscribe to the kol:trades WebSocket channel. Real response fields, the per-KOL scores that ride on every row, and how to pick wallets from the leaderboard.","recordedAt":"2026-09-18T09:42:45.625Z","eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/blog/solana-kol-wallet-trades-api-since-cursor-websocket"},{"id":"ship:45e04cfb-7837-4ac3-871d-bae269b00158","kind":"announcement","at":"2026-09-05T00:00:00.000Z","precision":"DATE","title":"How to Get pump.fun Token Trades via API: the Per-Mint Trade Tape (2026)","summary":"One GET returns every buy and sell on a pump.fun token, newest first, with the executed price, the pool price at that slot, the wallet and the early-buyer rank. Cursor paging, buy/sell and wallet filters, and what the coverage block tells you before you trust the numbers.","recordedAt":"2026-09-18T09:42:45.621Z","eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/blog/pump-fun-token-trades-api-per-mint-trade-tape"},{"id":"ship:bc26c2c5-1cfd-4c40-8ced-e4508a5c6812","kind":"announcement","at":"2026-08-28T00:00:00.000Z","precision":"DATE","title":"Pump.fun Surge Alerts, Day 1: 138 Fires and What Happened an Hour Later","summary":"First live day of surge alerts, 28 Aug 2026: 138 pump.fun surges on 104 mints. Fires with no risk flag were above their fire price an hour later 60% of the time; fires flagged early_buyers_exiting, 6%.","recordedAt":"2026-09-18T09:42:45.635Z","eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/blog/pump-fun-surge-alerts-week-1-outcomes-2026-08"},{"id":"ship:59889cb9-dc86-42c5-8e13-1a15556f4d7b","kind":"announcement","at":"2026-08-28T00:00:00.000Z","precision":"DATE","title":"Solana KOL Trading Report — August 2026: 1.13M Trades Across 533 Wallets","summary":"August 1–28, 2026: 533 tracked Solana KOL wallets made 1,133,569 trades across 90,075 tokens, moving 2.11M SOL. Median market cap at first KOL buy was $4,654 and the second KOL followed within 9 seconds.","recordedAt":"2026-09-18T09:42:45.639Z","eventType":"ANNOUNCEMENT","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/blog/solana-kol-trading-report-august-2026"},{"id":"ship:2f5cab46-1e68-40f9-9877-6fed360fa231","kind":"release","at":"2026-08-28T00:00:00.000Z","precision":"DATE","title":"Pump.fun Deployer Stats — August 2026: 1.03M Launches, 18,202 Graduations, a 1.8% Bond Rate","summary":"August 1–28, 2026: 1,032,440 launchpad deploys from 223,339 wallets, 18,202 graduations (1.8%), median time to bond 1 minute, median graduate peak $31K. 1,170 wallets minted 40% of the month's tokens.","recordedAt":"2026-09-18T09:42:45.642Z","eventType":"FEATURE_RELEASE","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/blog/pump-fun-deployer-stats-august-2026"},{"id":"ship:c2d224fc-eb25-42ee-a030-e59013b30810","kind":"release","at":"2026-07-17T00:00:00.000Z","precision":"DATE","title":"Where Tokens Actually Launch on Robinhood Chain (hood.fun Is Nearly Dead)","summary":"As of mid-July 2026, NOXA was ~75% of Robinhood Chain deploys before dying and relaunching as Pons — now #1 at ~930 deploys/hr. flap.sh leads curve volume, Clanker feeds Uniswap v4, and hood.fun has just 8 lifetime graduations.","recordedAt":"2026-09-18T09:42:45.686Z","eventType":"FEATURE_RELEASE","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"blog_article","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/blog/robinhood-chain-launchpads-where-tokens-launch"},{"id":"ship:3459e15e-8192-40ab-8711-276456c1e6e9","kind":"release","at":"2026-07-17T00:00:00.000Z","precision":"DATE","title":"The Solana Smart-Money Dataset: 1.25M Scored Wallets for ML & Research","summary":"1.25M Solana wallets, each pre-scored with win_rate, net_pnl_sol, roi, bundle_rate and a 0–1 bot_confidence label — a ready-made feature table for copy-trade backtests and model training.","recordedAt":"2026-09-18T09:42:45.691Z","eventType":"FEATURE_RELEASE","verification":"SOURCE_LINKED","countsAsBuilding":false,"contextReason":"other_chain_entry","contextWords":"Recorded, not counted: HEY keeps it on record as context, not as this project’s building.","source":"https://madeonsol.com/blog/solana-smart-money-dataset-ml-research"}],"totals":{"ships":35,"contractSource":0,"locks":0,"resumed":0,"marketIntegrity":0,"verification":0},"total":35,"truncated":false,"nextCursor":null,"disclaimer":"Public, source-backed activity HEY recorded. Still Building means verified activity through a tracked market drawdown — it is not a prediction, not a ranking by price, and not investment advice. Few projects meet Still Building or Under the Radar at any time; both are strict by design, and list responses carry the counts."}