SDKThe archive is ready. The runner is not.
Strategy backtesting is in development and has no release date. Dexploit does not publish strategy returns, and nothing on this page is investment advice. What you can use today is the input a backtest replays: 146M+ candles across 8 timeframes, and every decoded swap, over REST.
- Status
- In development
- Candles
- 146M+
- Timeframes
- 8
- Published returns
- None
This is the tape, not a result.
Fetched from the same endpoint your code would call, when this page was rendered. A backtest is a loop over rows like these. The loop is what is missing, not the data.
/api/v1/candles/latestpair_address=3ucNos…sUxv&timeframe=5m&limit=120USDC / SOL · raydium_clmm- Intervals
- 120
- Trades
- 6,735
- Volume
- 47.68K SOL
- Peak traders / bucket
- 79
- Window, UTC
- 2026-09-15 20:05 → 2026-09-16 06:00
The archive quotes SOL per token, so this series is the SOL price of a dollar. Invert it for the dollar price of SOL. Every readout under the chart is summed from the exact rows the chart draws, with volume_sol converted out of lamports. Getting that orientation wrong is the single most common way a first backtest ends up trading the reciprocal of its own signal.
What a backtest reads, and what it would report.
- GET
/api/v1/candlesRange query with start and end, oldest first - GET
/api/v1/candles/latestMost recent candles, newest first - GET
/api/v1/pairsPools for a mint, ranked by recent volume - GET
/swaps/rangeIndividual trades between two slots or times - GET
/swaps/token/{mint}Every trade for a mint, across pools - GET
/api/v1/protocolsThe venue list, no key required
Candles cover signal work at eight resolutions down to one second. Where a decision depends on what happened inside a bucket, the swaps endpoints return the individual fills with the fee and the realised price impact attached.
- —
total_returnChange in portfolio value over the replay window
- —
sharpe_ratioExcess return per unit of realised volatility
- —
max_drawdownLargest peak-to-trough fall inside the window
- —
win_rateShare of closed positions ending above their entry
- —
total_tradesCount of fills the strategy generated
- —
profit_factorGross gains divided by gross losses
The value column is empty on purpose. These are the fields the SDK will report back to you about your own strategy. Dexploit does not run strategies, does not publish returns, and nothing here is investment advice or a projection of any result.
Why a Solana backtest lies to you.
fillsThere is no book to lift. A simulated order is filled against pool reserves and moves them, so your own size changes your own price. The swaps index records price_impact_bps on real trades of every size. That is the empirical answer to what a fill actually costs, and it is a better assumption than a constant.
feesOne flat rate across the book is wrong here. The LP fee is per venue and quoted in basis points, pump.fun and meteora_dbc add a creator fee on top, and Token-2022 mints charge a transfer fee on the mint itself. All three arrive as separate fields on every swap record.
survivorshipThe archive keeps pools that have stopped trading. Build the universe from the mints that are still active today and every one that died drops out of it silently, which flatters the result. Select the pairs by what was tradeable at the start of the window, not by what survived to the end of it.
resolutionA bucket is not a fill. One second is the finest candle, and inside it the open and the close can be several slots and many trades apart. Anything sensitive to ordering has to replay swaps, where each row carries its own slot.
Not released, and no date.
Until it ships, everything a backtest needs is reachable with a key and a loop of your own. If there is a piece of the runner you would actually use, saying so is what shapes it.
The endpoints above need a key. Create an account to get one. Dexploit publishes market data, not strategies or performance; nothing on this page is investment advice.
The archive a backtest replays.
The runner is in development. The history it would read is not. It is the same corpus every other product on this site serves.
- 01
Validators
Every swap that executed, in slot order.
- 02
Dexploit engine
Decoded across 10 protocols into one record.
- 03
Aggregation
Candles in 8 timeframes, 1s to 1d.
- 04
REST archive
Range queries over the whole history, available today.