# Sardine: Kalshi crypto settlement history (remote · sardine.info)

How often Kalshi BTC/ETH/XRP contracts settled YES, counted not forecast, with a public record

- Trust score: 73/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `sardine.info`: 73/100 (this document), [markdown](https://verifymcp.io/servers/info-sardine-sardine/sardine.md), [page](https://verifymcp.io/servers/info-sardine-sardine/sardine)
- pypi · `sardine-mcp`: 68/100, [markdown](https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp.md), [page](https://verifymcp.io/servers/info-sardine-sardine/sardine-mcp)

## Channel facts

- Endpoint: `https://sardine.info/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 11/100
  - TLS not yet verified: we couldn't open a connection to check the certificate.
  - Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS not yet verified: we couldn't read the response headers to check for it.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but we couldn't connect to verify it.
- **Schema Quality & AI Usability**: 0/100
  - Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Capabilities**: 0/100
  - Capabilities not yet verified: we couldn't read the endpoint's capabilities.

**Unverified: 5 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the Sardine: Kalshi crypto settlement history MCP server?

Sardine: Kalshi crypto settlement history is a hosted endpoint at https://sardine.info/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http info-sardine-sardine 'https://sardine.info/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "info-sardine-sardine": {
      "url": "https://sardine.info/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "info-sardine-sardine": {
      "type": "http",
      "url": "https://sardine.info/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.info-sardine-sardine]
url = "https://sardine.info/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "info-sardine-sardine": {
      "type": "remote",
      "url": "https://sardine.info/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add info-sardine-sardine --url 'https://sardine.info/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  info-sardine-sardine:
    url: "https://sardine.info/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "info-sardine-sardine": {
      "Transport": "http",
      "Url": "https://sardine.info/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add info-sardine-sardine -t streamable-http -u 'https://sardine.info/mcp'
```

### Other

```json
{
  "mcpServers": {
    "info-sardine-sardine": {
      "type": "http",
      "url": "https://sardine.info/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 73, 0)

- [security regression] Endpoint reachability: reachable → unreachable
- [security regression] Authorization: partial → unverified
- [security regression] HSTS header: fail → unverified
- [security regression] TLS certificate: pass → unverified
- [security regression] Tool safety: pass → unverified
- [security regression] Stability: 0.30 → unverified
- [security regression] Transport: pass → fail
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-11-04 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 69, 0)

- [security] Tool “get_live_board” rewrote its description, which is the text the model reads
- [security] Tool “get_settlement_rate” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 132 → 151
- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 0.1.1 → 0.2.0
- [functional] New tool “backtest_signals”
- [functional] New tool “get_z”

### 2026-10-26 (score 69)

First indexed and scored.

## MCP tools (9)

### `list_markets` (~84 tokens)

List the Kalshi series Sardine covers, and whether each is currently served.

        Each entry gives the Sardine key (e.g. "BTC-15M"), the Kalshi series
        ticker, the window length, and the latest calibration check: the largest
        gap, in probability points, between what Sardine published and what
        then settled.

### `get_settlement_rate` (~226 tokens)

How often has a contract like this one settled in favour of `side`?

        Uses the asset's live spot price. Give the contract's strike (target
        price), the minutes left until it settles, and optionally Kalshi's ask
        in dollars (0.01-0.99) to get Kalshi's fee and all-in price on the same
        line.

        Returns the historical settlement rate, its 95% interval, the number of
        past windows counted, the 1-minute realised vol and z behind the lookup,
        and with `kalshi_ask`: the fee, the all-in price and the gap after fee
        (`gap_after_fee`, `gap_cents`, signed: positive means history is above
        the price). A small `windows_counted` means a weak answer.

Input parameters:

- `asset` (string, required)
- `kalshi_ask`
- `minutes_left` (number, required)
- `side` (string)
- `strike` (number, required)
- `window_minutes` (integer, required)

### `get_live_board` (~131 tokens)

Open Kalshi contracts right now, each with Sardine's historical count. No prices.

        Optionally filter to one market. Each row has the contract, the minutes
        left, the historical settlement rate with its interval and sample size,
        and a one-sentence summary of the count. Kalshi's prices are deliberately
        NOT included (pending Kalshi's Redistribution licence): read them from
        Kalshi's own API, then pass kalshi_ask to get_settlement_rate for the
        fee and the gap.

Input parameters:

- `limit` (integer)
- `market`

### `get_rate_table` (~85 tokens)

The full lookup table behind every Sardine number for one series.

        Each row is a (distance-from-strike, time-left) bucket: distance in
        volatility units, seconds left, the share that settled YES, its 95%
        interval, and the number of independent windows counted.

Input parameters:

- `asset` (string)
- `window_minutes` (integer)

### `get_track_record` (~57 tokens)

How accurate Sardine's published numbers have been, scored against settlements.

        For each series and probability bucket: what Sardine said, what actually
        settled, and the miss in points. Use this before relying on any number.

### `list_datasets` (~56 tokens)

Downloadable CSV history files, with row counts, date ranges and URLs.

        Files open directly in Excel, pandas or any CSV reader. Credit
        "Sardine (sardine.info)" when you use them.

### `backtest_rule` (~343 tokens)

Would this rule have made money? Replays recorded Kalshi quotes, second by second.

        Describe a rule for Kalshi's 15-minute crypto up/down contracts: which side
        to buy, when (minutes left), at what prices (cents), and optionally only when
        Sardine's history beats Kalshi's ask plus fee by `min_gap_cents` (side BEST
        picks whichever side has the larger gap). Sardine replays its per-second
        recordings of Kalshi's order book: one trade per window, a limit order at the
        ask landing after `latency_seconds`, filled only up to the size resting
        there, Kalshi's real fee, and Kalshi's official settlement.

        Returns profit per contract after fees with a 95% interval, win rate, fill
        behaviour, a zero-latency comparison (exposes stale-quote illusions), a
        first-half/second-half stability check, breakdowns by minutes left and
        price, and warnings. Results only; no raw data. Dates are UTC YYYY-MM-DD.
        Present results as what happened historically, never as a forecast.

Input parameters:

- `contracts` (integer)
- `end_date`
- `latency_seconds` (integer)
- `market` (string)
- `max_gap_cents`
- `max_minutes_left` (number)
- `max_price_cents` (number)
- `min_gap_cents`
- `min_minutes_left` (number)
- `min_price_cents` (number)
- `side` (string)
- `start_date`

### `backtest_signals` (~242 tokens)

Replay YOUR OWN signals on recorded per-second Kalshi quotes, after fees.

        `signals` is a list of {"ts": <UTC epoch seconds>, "side": "YES"|"NO",
        "contracts": <int>} (at most 5,000). Each one is treated like a trigger:
        the ask seen at that second for that side, a limit order landing after
        `latency_seconds`, filled only up to the size resting there, Kalshi's
        fee, Kalshi's official settlement. One trade per 15-minute window: the
        first signal in a window is used and later ones are counted as ignored.
        Returns aggregates only (profit per contract with interval, win rate,
        zero-latency comparison, stability, breakdowns, warnings), plus
        `signals_used` and `signals_outside_data`. Needs a free key when served
        remotely. Present results as what happened, never as a forecast.

Input parameters:

- `end_date`
- `latency_seconds` (integer)
- `market` (string, required)
- `signals` (array, required)
- `start_date`

### `get_z` (~110 tokens)

Where a contract sits in the table's coordinates right now: spot, sigma_1m, z and the bucket.

        For a builder running the table offline against Kalshi's feed: the
        formula is returned with the numbers. No settlement rate here; use
        get_rate_table for the cells and get_settlement_rate for the count.

Input parameters:

- `asset` (string, required)
- `minutes_left` (number, required)
- `strike` (number, required)
- `window_minutes` (integer, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/info-sardine-sardine/sardine#diagnostics

## Score history

- 2026-11-05: 73
- 2026-11-04: 73
- 2026-11-03: 72
- 2026-11-02: 72
- 2026-11-01: 71
- 2026-10-31: 71
- 2026-10-30: 70
- 2026-10-29: 70
- 2026-10-28: 69
- 2026-10-27: 69
- 2026-10-26: 69

## Common questions

### What is the Sardine: Kalshi crypto settlement history MCP server?

Sardine: Kalshi crypto settlement history is an MCP server listed in the public MCP registry as info.sardine/sardine. How often Kalshi BTC/ETH/XRP contracts settled YES, counted not forecast, with a public record. This page covers its hosted endpoint (https://sardine.info/mcp).

### Is the Sardine: Kalshi crypto settlement history MCP server safe to use?

Sardine: Kalshi crypto settlement history scores 73 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Sardine: Kalshi crypto settlement history MCP server expose?

Sardine: Kalshi crypto settlement history exposes 9 tools: list_markets, get_settlement_rate, get_live_board, get_rate_table, get_track_record, and 4 more. Their descriptions and schemas cost roughly 1,334 tokens of context every time the server is loaded.

### Does the Sardine: Kalshi crypto settlement history MCP server require authentication?

Its publisher declares no required credentials for Sardine: Kalshi crypto settlement history. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

### Is the Sardine: Kalshi crypto settlement history MCP server still maintained?

Sardine: Kalshi crypto settlement history is still listed in the MCP registry, though our most recent checks did not reach this channel. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the Sardine: Kalshi crypto settlement history MCP server?

VerifyMCP ran 3 checks on Sardine: Kalshi crypto settlement history, covering HTTPS, DNSSEC and Transport. 8 items could not be completed, a gap on our side rather than a finding about Sardine: Kalshi crypto settlement history: TLS certificate, Authorization, HSTS header, Schema quality and 4 more. 5 categories score 0 for that reason, because we only credit what we can confirm. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://sardine.info/mcp
- Website: https://sardine.info/
- Changelog RSS feed: https://verifymcp.io/servers/info-sardine-sardine/sardine.xml
- Changelog JSON feed: https://verifymcp.io/servers/info-sardine-sardine/sardine/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/info-sardine-sardine/sardine.json
- HTML version of this page: https://verifymcp.io/servers/info-sardine-sardine/sardine
