# Sandwich bot | API reference | Femtos

> One sandwich bot of Elysium: what it took, from whom, where. GET /v1/mev/bots/{address} on Elysium: parameters, response fields and a live call per layer.

- Base URL: `https://api.femtos.xyz/v1` (REST) · `wss://api.femtos.xyz/v1/ws` (WebSocket) · MCP: `https://api.femtos.xyz/mcp`
- Auth: `Authorization: Bearer $FEMTOS_KEY`. Free key: https://dashboard.femtos.xyz/signup (browser), or with
  no browser: `GET https://femtos.xyz/accounts/agent/challenge`, solve its proof of work, then `POST https://femtos.xyz/accounts/agent/signup`
  (https://femtos.xyz/agents.md#agent-onboarding)
- Decimals are exact strings, times Unix milliseconds, addresses lowercase `0x`
- Whole API in one file: https://femtos.xyz/agents.md · OpenAPI: https://api.femtos.xyz/v1/openapi.json · Index: https://femtos.xyz/llms.txt
- Page with live calls: https://femtos.xyz/reference/mev-bot

## Sandwich bot — GET `/v1/mev/bots/{address}`

One sandwich bot of Elysium: what it took, from whom, where.

Layers: Elysium. Not on HyperCore: HyperCore trades on its order book, not on pools: no pool swap to sandwich there. Not on HyperEVM: MEV is detected on Elysium first: HyperEVM next, with the same answers.
Page with live calls: https://femtos.xyz/reference/mev-bot?layer=elysium

| Param | In | Example or values | Meaning |
|---|---|---|---|
| `address` | path | `0x20e8c116c608d1de12bce6f8ac4dd566fe14f3a9` | The bot (the sender of its back-runs) |
| `layer` | query | `elysium` | Layer (elysium; hyperevm later) |
| `confidence` | query | `(empty)`, `strict`, `probable`, `sure` | strict or probable: that shape only; sure: strict, or by a known sandwich bot (the `sure` rows); absent: all |

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/mev/bots/0x20e8c116c608d1de12bce6f8ac4dd566fe14f3a9?layer=elysium"
```

| Field | Type | Meaning |
|---|---|---|
| `bot` | string | The bot: the sender of its back-runs: 0x address, or a named wallet's handle |
| `entity` | object \| null | The bot: a named wallet (labels), else for a bot our own label (id `mev-bot-<8 hex>`, kinds `sandwich bot`, not in /v1/entities); null when neither |
| `contracts` | string[] | The contracts its front-runs called |
| `firstSeen` | ms | Its first sandwich in the window |
| `lastSeen` | ms | Its last |
| `sandwiches` | int | Sandwiches (victim swaps) |
| `profitUsd` | decimal | USD taken, summed (unpriced ones left out) |
| `victims` | int | Distinct victims |
| `pools` | int | Distinct pools |
| `medianTipWei` | decimal \| null | Median priority fee its front-runs offered, wei |

## Related (Market data)

- [Markets](https://femtos.xyz/reference/markets.md) `GET /v1/markets`: Every tradable perp, spot, HIP-3 and outcome market with 24 h stats. (Elysium, HyperCore, HyperEVM)
- [Markets stream](https://femtos.xyz/reference/ws/markets.md) `WS elysium.markets | hc.markets | hyperevm.markets`: The GET /v1/markets list of HyperCore (prices, 24 h volume and change), pushed on subscribe and when it changes. (Elysium, HyperCore, HyperEVM)
- [Token screener](https://femtos.xyz/reference/tokens-top.md) `GET /v1/tokens/top`: The tokens of HyperEVM, one row each over all their pools: trending, volume, gainers, losers, new, market cap, liquidity. (Elysium, HyperEVM)
- [Candles](https://femtos.xyz/reference/candles.md) `GET /v1/candles`: OHLCV of any HyperCore market down to 1 s, ascending, UTC-aligned. (Elysium, HyperCore, HyperEVM)
- [Forming candle](https://femtos.xyz/reference/ws/candles.md) `WS elysium.candles | hc.candles | hyperevm.candles`: The forming candle, pushed once per block where it changes. (Elysium, HyperCore, HyperEVM)
- [Token candles](https://femtos.xyz/reference/token-candles.md) `GET /v1/candles`: OHLCV of a token through its USDC market (a perp coin: the perp). (Elysium, HyperCore, HyperEVM)
- [Token candles stream](https://femtos.xyz/reference/ws/token-candles.md) `WS elysium.token.candles | hc.token.candles | hyperevm.token.candles`: A token's candles by name (its USDC market; a perp coin: the perp), the forming candle pushed once per block where it changes. (Elysium, HyperCore, HyperEVM)
- [Trades](https://femtos.xyz/reference/trades.md) `GET /v1/trades`: Latest fills of one market, newest first. (Elysium, HyperCore, HyperEVM)
- [Trades stream](https://femtos.xyz/reference/ws/trades.md) `WS elysium.trades | hc.trades | hyperevm.trades`: All trades of one market as they happen: raced between our node and Hyperliquid's public feed, first copy sent, the other dropped. (Elysium, HyperCore, HyperEVM)
- [Swap history stream](https://femtos.xyz/reference/ws/trades-history.md) `WS elysium.trades.history | hyperevm.trades.history`: The latest swaps of a token or pool on HyperEVM (GET /v1/trades with filters), pushed on subscribe, then each block with a new swap it shows. (Elysium, HyperEVM)
- [Order book](https://femtos.xyz/reference/book.md) `GET /v1/book`: L2 book of one market with order counts, from our node. (HyperCore)
- [Book stream](https://femtos.xyz/reference/ws/book.md) `WS hc.book`: Full-depth book, then the levels each block changes. (HyperCore)
- [Named wallets on the book](https://femtos.xyz/reference/ws/book-named.md) `WS hc.book.named`: Who sits on the book: the resting limit orders of the named wallets (funds, traders, KOLs), by level, live. (HyperCore)
- [Walls on the book](https://femtos.xyz/reference/ws/book-walls.md) `WS hc.book.walls`: Every large resting order on the book with its owner, live, and whether that owner's walls hold or are pulled when the price comes. (HyperCore)
- [Wall reliability](https://femtos.xyz/reference/walls.md) `GET /v1/hypercore/walls`: Which accounts' large resting orders hold when the price comes, and which are pulled. (HyperCore)
- [Walls held or pulled](https://femtos.xyz/reference/walls-events.md) `GET /v1/hypercore/walls/events`: One market's walls the price came to, one by one: held or pulled, when and whose. (HyperCore)
- [Best bid / offer](https://femtos.xyz/reference/ws/bbo.md) `WS hc.bbo`: Top of book of one market each block: raced between Hyperliquid's public feed and our node (newest block wins, our node corrects the same block). (HyperCore)
- [Asset contexts stream](https://femtos.xyz/reference/ws/ctx.md) `WS hc.ctx`: Mark, oracle, mid, funding, open interest and 24 h volume of every HyperCore market, pushed as they change: one read per second for every subscriber. (HyperCore)
- [Order updates](https://femtos.xyz/reference/ws/orders.md) `WS hc.orders`: Every order status change, filterable by coin, user and status. One frame per block with all its matching events. (HyperCore)
- [Token prices](https://femtos.xyz/reference/prices.md) `GET /v1/prices`: USD price of up to 100 tokens in one call, each with its source and provenance. (Elysium, HyperCore, HyperEVM)
- [Price history](https://femtos.xyz/reference/price-history.md) `GET /v1/prices/history`: USD closes per unit of up to 25 tokens over a window, or the price of 100 tokens at one time (at=). (Elysium, HyperCore, HyperEVM)
- [HYPE price](https://femtos.xyz/reference/ws/prices.md) `WS prices.hype`: HYPE from HyperCore’s spot mid (each block), the Hyperliquid oracle and perp mark, and exchanges. (HyperCore)
- [Token prices stream](https://femtos.xyz/reference/ws/token-prices.md) `WS elysium.prices | hyperevm.prices`: USD prices of up to 100 HyperEVM tokens, as GET /v1/prices answers them, pushed in each block that changes one. (Elysium, HyperEVM)
- [Pool detail](https://femtos.xyz/reference/pool.md) `GET /v1/pools/{address}`: One pool: dex, fee, tokens, liquidity in USD, depth, 5m to 24h activity, top LPs. (Elysium, HyperEVM)
- [Pool stream](https://femtos.xyz/reference/ws/pool.md) `WS elysium.pool | hyperevm.pool`: One pool on HyperEVM (GET /v1/pools/{address}: price, liquidity and depth, 5m to 24h activity, LPs), pushed on subscribe, then in each block that touches it: swap, liquidity added or removed, balance moved. (Elysium, HyperEVM)
- [Liquidity events](https://femtos.xyz/reference/liquidity.md) `GET /v1/liquidity`: Liquidity added to and removed from one pool, newest first. (Elysium, HyperEVM)
- [Liquidity events stream](https://femtos.xyz/reference/ws/liquidity.md) `WS elysium.liquidity | hyperevm.liquidity`: Liquidity added to and removed from one pool on HyperEVM (GET /v1/liquidity), pushed on subscribe, then in each block that adds or removes some. (Elysium, HyperEVM)
- [Daily token volume](https://femtos.xyz/reference/volume.md) `GET /v1/volume`: USD swap volume of a token per UTC day, both sides of every priced swap. (Elysium, HyperEVM)
- [Sandwiches](https://femtos.xyz/reference/mev-sandwiches.md) `GET /v1/mev/sandwiches`: Every sandwich on Elysium, newest first: the victim, the bot, the pool, the USD lost. (Elysium)
- [Sandwich stream](https://femtos.xyz/reference/ws/mev.md) `WS elysium.mev`: Each sandwich (MEV) on Elysium pools, the moment its back-run is indexed. (Elysium)
- [MEV stats](https://femtos.xyz/reference/mev-stats.md) `GET /v1/mev/stats`: What bots took on Elysium over a window: sandwiches, victims, arbitrage, top bots, pools and routers. (Elysium)
- [Sandwich bots](https://femtos.xyz/reference/mev-bots.md) `GET /v1/mev/bots`: The sandwich bots of Elysium, most USD taken first. (Elysium)

Every page: https://femtos.xyz/reference.md
