Updates and announcements will be posted here as they become available.
2026-07-19 — /utils/sol/* moved to History API
History API
- Write utilities (
transfer,burn,distribute,consolidate,launch,fees/claim,fees/config,agent/initialize) now live onhttps://api.raze.botalongside/api/sol/*reads. Same paths and bodies as before. - Docs + OpenAPI moved under History → Utilities.
Trading API
router.raze.botis swap / quote / buy / sell / instructions / perps only. Calls tohttps://router.raze.bot/utils/sol/*will 404 after the fleet cutover — point clients atapi.raze.bot.
2026-07-15 — Perpetuals, executable swaps, and sendBundle tip policy
Trading API
- Perpetuals are live.
/perp/sol/*builds Jupiter Perps + Phoenix positions —markets,quote,order,close,tpsl,modify,cancel. Historical perp data ships under/api/sol/perp/*(fills, liquidations, positions, funding) with matching GraphQL resolvers. - Executable swaps.
POST /swap/sol/instructionsacceptsserialize: trueand returns an unsigned v0 transaction withfeePayerset to your wallet, a fresh blockhash, and address-lookup tables resolved server-side — sign and send it directly. The same endpoint addsswapMode: exactOutandmaxHops/includeDex/excludeDexroute filters. - Utilities
distribute,consolidate, andfees/configare implemented (previously stubs) and return real partially-signed transactions. Thefees/claimpump.fun creator-fee path is live; the Meteora partner/creator path is still pending. Themixerendpoint has been removed.
Solana RPC
sendBundleno longer sponsors a Jito tip. Your bundle must include its own tip transaction to a Jito tip wallet or it is rejected (-32602).sendBundlealso now requires aproorenterpriseentitlement (-32001), and the default transaction encoding isbase64.- Rate limits are now documented: per API key, per minute — 60 (free) / 300 (pro) / 1000 (enterprise), each with a daily cap.
2026-06-02 — GraphQL batch token enrichment + typed topTokens
History API — GraphQL
topTokensnow returns a typedTopTokensPage(not free-form JSON) withsort(VOLUME|TXNS),platform, andhours(1–168) — parity with RESTGET /api/sol/tokens/top.tokens(mints: [String!]!)— batch up to 500 mints; nested fields mirror REST enrichment (deploy,priceChanges,tradingVolume,metadata,holders,supply,sniperBundleStats,topTraders,ohlcv). Request only the fields you need.- Root shortcuts:
tokenMetadata,tokenHolders,tokenSupply,topTraders,sniperBundleStats. - Live board queries:
liveDeploys,liveMigrations,migratingDeploys. searchTokensandstatsreturn typedSearchToken/PlatformStatsinstead of opaque JSON.
GET /api/sol/tokens/top documents the sort query parameter (volume | txns).
References: GraphQL overview, GraphQL tokens.
2026-05-26 — Enriched trade fields + USDC-pool retrocompat fix
Streaming + History APIs
USDC-quoted Token-2022 pools (TRALALERO, Bank, others launching direct on PumpSwap with USDC as the pool’s quote) were emittingsolAmount set to the priority-fee delta (~0.0001 SOL) and avgPrice in USDC/token units. The parser now detects aggregate-level USDC pools and:
- Normalises
solAmountandavgPriceinto SOL units via the live SOL/USD price hook — old clients keep rendering price × supply correctly. - Drops the trade (rather than emitting wrong units) when the price hook hasn’t been set yet (early startup) — the trade reappears on the next price tick.
WS payload shape, REST
/api/sol/tx/parse/{sig}, GraphQL Trade type, and raze.trades columns all updated 1:1. Pre-fix rows for USDC-quoted pools may be backfilled separately; filter by quoteSymbol != '' (or source != '') to restrict to post-fix rows in the meantime.
References: GraphQL trades, AsyncAPI.
2026-05-23 — DexScreener “DEX Paid” event + enriched migration payload
Streaming API
-
New event type
dex_paidon/ws/sol. Subscribe via either:- By event type:
{"action": "subscribe", "subscriptions": ["dex_paid"]}— receive every newly-paid Solana mint. - By mint:
{"action": "subscribe", "tokenMint": "<mint>"}— receive adex_paidevent for that mint alongside trades and other events.
url,icon,header,description,links[]) so clients can render the badge and project socials without a follow-up REST call. Source: DexScreener’s public/token-profiles/{latest,recent-updates}/v1WS, filtered tochainId=solanaon the streaming bridge. Status is monotonic — oncetruefor a mint, never demoted. See the Streaming API reference for the full schema. - By event type:
-
The existing
migrationevent payload is now documented in full —data.platform,data.mint,data.quoteMint,data.pool,data.poolDex,data.slot,data.signature, plus the delay-0 reservesdata.baseReserve/data.quoteReserve. The broadcaster already coalesces pump.fun’sComplete+Migratepair into one event per(mint, kind)inside a 2-second window, so consumers see a single migration per token.
History API
-
GET /api/sol/tokens/metadata/{tokenMint}now returnsmetadata.dexPaid(boolean, nullable) andmetadata.dexscreenerUrl(string, nullable):dexPaid: true— the team paid for DexScreener Enhanced Token Info.dexPaid: false— confirmed not paid (resolved via DexScreener/orders).dexPaid: null— the backend hasn’t resolved this mint yet; an on-demand check is enqueued in the background, and the next call returns the answer.dexscreenerUrl— present when the live WS feed has delivered a profile URL for this mint (always populated for tokens that became paid while the streaming bridge was running).
/orderscalls well under the 60 req/min ceiling, so you cannot trip the upstream limit by hitting this endpoint hard.
