# Wicked MCP (remote · mcp.wickedapi.com)

The whole Wicked suite for agents: trading, DeFi/token risk, identity, reputation, memory. x402.

- Trust score: 65/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-07

## Components

- remote · `mcp.wickedapi.com`: 65/100 (this document), [markdown](https://verifymcp.io/servers/choaticpixels-wicked-mcp/mcp.md), [page](https://verifymcp.io/servers/choaticpixels-wicked-mcp/mcp)
- npm · `wickedapi-mcp`: 36/100, [markdown](https://verifymcp.io/servers/choaticpixels-wicked-mcp/wickedapi-mcp.md), [page](https://verifymcp.io/servers/choaticpixels-wicked-mcp/wickedapi-mcp)

## Channel facts

- Endpoint: `https://mcp.wickedapi.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.2.0`

## 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-10-07.

- **Endpoint Security**: 60/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 70 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 83/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 8282 tokens (~108/item across 76 items; 70 tools + 6 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability check failed: schema churn in the 5 days we've observed: 3 tool removals, 27 breaking changes, 0 auth/transport breaks, 43 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 99% of tool parameters carry a description.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "memory_delete" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 71 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Wicked MCP server?

Wicked MCP is a hosted endpoint at https://mcp.wickedapi.com/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 choaticpixels-wicked-mcp 'https://mcp.wickedapi.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "choaticpixels-wicked-mcp": {
      "url": "https://mcp.wickedapi.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "choaticpixels-wicked-mcp": {
      "type": "http",
      "url": "https://mcp.wickedapi.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.choaticpixels-wicked-mcp]
url = "https://mcp.wickedapi.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "choaticpixels-wicked-mcp": {
      "type": "remote",
      "url": "https://mcp.wickedapi.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add choaticpixels-wicked-mcp --url 'https://mcp.wickedapi.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  choaticpixels-wicked-mcp:
    url: "https://mcp.wickedapi.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "choaticpixels-wicked-mcp": {
      "Transport": "http",
      "Url": "https://mcp.wickedapi.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add choaticpixels-wicked-mcp -t streamable-http -u 'https://mcp.wickedapi.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "choaticpixels-wicked-mcp": {
      "type": "http",
      "url": "https://mcp.wickedapi.com/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-10-03 (score 65, +5)

We did not load change detail this far back for this component, so this day may have recorded more than is shown.

- [security regression] Stability: unverified → fail
- [security regression] Tool “wickedapi_momentum” was removed
- [security regression] Tool “wickedapi_funding_oi” was removed
- [security regression] Tool “wickedapi_price” was removed
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] The server changed its declared name: wicked-reputation → wickedapi
- [security] Tool “memory_store” rewrote its description, which is the text the model reads
- [security] Tool “reputation_transparency” rewrote its description, which is the text the model reads
- [security] Tool “registry_featured_tools” rewrote its description, which is the text the model reads
- [security] Tool “reputation_tiers” rewrote its description, which is the text the model reads
- [security] Tool “memory_prepare” rewrote its description, which is the text the model reads
- [security] Tool “registry_tool_detail” rewrote its description, which is the text the model reads
- [security] Tool “memory_delete” rewrote its description, which is the text the model reads
- [security] Tool “reputation_status” rewrote its description, which is the text the model reads
- [security] Tool “memory_search” rewrote its description, which is the text the model reads
- [security] Tool “registry_search_tools” rewrote its description, which is the text the model reads
- [security] Tool “reputation_query” rewrote its description, which is the text the model reads
- [security] Tool “registry_register_tool” rewrote its description, which is the text the model reads
- [security] Tool “identity_jwks” rewrote its description, which is the text the model reads
- [security] Tool “identity_status” rewrote its description, which is the text the model reads
- [security] Tool “registry_report_tool” rewrote its description, which is the text the model reads
- [security] Tool “reputation_statement” rewrote its description, which is the text the model reads
- [security] Tool “identity_register” rewrote its description, which is the text the model reads
- [security] Tool “memory_get” rewrote its description, which is the text the model reads
- [security] Tool “identity_get_challenge” rewrote its description, which is the text the model reads
- [security] Tool “sanity_check” rewrote its description, which is the text the model reads
- [security] Tool “identity_get_nonce” rewrote its description, which is the text the model reads
- [security] Tool “memory_deletions” rewrote its description, which is the text the model reads
- [security] Tool “memory_history” rewrote its description, which is the text the model reads
- [security] Tool “memory_update” rewrote its description, which is the text the model reads
- [security] Tool “registry_tool_badge” rewrote its description, which is the text the model reads
- [security] Tool “identity_submit_response” rewrote its description, which is the text the model reads
- [security] Tool “sanity_check_batch” rewrote its description, which is the text the model reads
- [functional regression] “reputation_query” changed the type of “limit”: integer → number
- [functional regression] “registry_search_tools” changed the type of “limit”: integer → number
- [functional regression] Tool “memory_delete” dropped its output schema
- [functional regression] Tool “registry_search_tools” dropped its output schema
- [functional regression] Tool “memory_history” dropped its output schema
- [functional regression] Tool “memory_search” dropped its output schema
- [functional regression] Tool “reputation_statement” dropped its output schema
- [functional regression] Tool “identity_get_nonce” dropped its output schema
- [functional regression] Tool “reputation_status” dropped its output schema
- [functional regression] Tool “sanity_check_batch” dropped its output schema
- [functional regression] Tool “registry_tool_detail” dropped its output schema
- [functional regression] Tool “memory_store” dropped its output schema
- [functional regression] Tool “sanity_check” dropped its output schema
- [functional regression] Tool “registry_featured_tools” dropped its output schema
- [functional regression] Tool “identity_status” dropped its output schema
- [functional regression] Tool “memory_deletions” dropped its output schema
- [functional regression] Tool “memory_update” dropped its output schema
- [functional regression] Tool “memory_prepare” dropped its output schema
- [functional regression] Tool “memory_get” dropped its output schema
- [functional regression] Tool “registry_register_tool” dropped its output schema
- [functional regression] Tool “registry_tool_badge” dropped its output schema
- [functional regression] Tool “reputation_transparency” dropped its output schema
- [functional regression] Tool “reputation_query” dropped its output schema
- [functional regression] Tool “registry_report_tool” dropped its output schema
- [functional regression] Tool “identity_get_challenge” dropped its output schema
- [functional regression] Tool “identity_submit_response” dropped its output schema
- [functional regression] Tool “identity_jwks” dropped its output schema
- [functional regression] Tool “identity_register” dropped its output schema
- [functional regression] Tool “reputation_tiers” dropped its output schema
- [functional improvement] Schema quality: 193 → 108
- [functional improvement] Tool coverage: 0% → 99%
- [functional] First check of Schema quality: 100
- [functional] Schema quality: excellent → good
- [functional] MCP protocol: Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
- [functional] New prompt “verify_agent”
- [functional] New prompt “find_reliable_tool”
- [functional] New prompt “agent_memory_guide”
- [functional] New prompt “fact_check”
- [functional] New prompt “rug_check”
- [functional] New prompt “morning_briefing”
- [functional] New prompt “vet_dependency”
- [functional] MCP protocol version: 2026-07-28 → 2025-11-25
- [functional] New resource “platform-services”
- [functional] New resource “token_risk-status”
- [functional] New resource “trading-status”
- [functional] New resource “broker_sync-status”
- [functional] New resource “protocol_health-status”
- [functional] New resource “platform-llms-txt”
- [functional] Server version: 0.3.1 → 0.4.0
- [functional] New tool “defi_tvl”
- [functional] New tool “basis”
- [functional] New tool “broker_sync_prop_firms”
- [functional] New tool “orderbook”
- [functional] New tool “gas”
- [functional] New tool “long_short_ratio”
- [functional] New tool “protocol_health_refresh_all”
- [functional] New tool “macro_calendar”
- [functional] New tool “market_overview”
- [functional] New tool “kalshi_probability”
- [functional] New tool “protocol_health_sync_universe”
- [functional] New tool “paywall_list_settlements”
- [functional] New tool “atr”
- [functional] New tool “paywall_import_routes”
- [functional] New tool “ohlcv”
- [functional] New tool “earnings_calendar”
- [functional] New tool “broker_sync_transactions”
- [functional] New tool “protocol_health_track_protocol”
- [functional] New tool “broker_sync_register_user”
- [functional] New tool “protocol_health_scoreboard”
- [functional] New tool “token_risk”
- [functional] New tool “momentum_score”
- [functional] New tool “paywall_update_route”
- [functional] New tool “broker_sync_connections”
- [functional] New tool “protocol_health_list_protocols”
- [functional] New tool “kalshi_market”
- [functional] New tool “hyperliquid”
- [functional] New tool “paywall_signup”
- [functional] New tool “market_clock”
- [functional] New tool “paywall_delete_route”
- [functional] New tool “liquidity_levels”
- [functional] New tool “funding_oi”
- [functional] New tool “broker_sync_balances”
- [functional] New tool “price”
- [functional] New tool “broker_sync_positions”
- [functional] New tool “sentiment”
- [functional] New tool “paywall_get_tenant”
- [functional] New tool “protocol_health_score”
- [functional] New tool “rates”
- [functional] New tool “paywall_create_route”
- [functional] New tool “volatility”
- [functional] New tool “fvg”
- [functional] New tool “paywall_list_routes”
- [cosmetic] “memory_store” reworded the description of “metadata”
- [cosmetic] “memory_store” reworded the description of “signature”
- [cosmetic] “memory_search” reworded the description of “limit”
- [cosmetic] “memory_history” reworded the description of “nonce”
- [cosmetic] “identity_get_challenge” reworded the description of “wallet”
- [cosmetic] “reputation_query” reworded the description of “sort”
- [cosmetic] “reputation_query” reworded the description of “max_stake”
- [cosmetic] “registry_search_tools” reworded the description of “protocol”
- [cosmetic] “reputation_query” reworded the description of “min_stake”
- [cosmetic] “memory_delete” reworded the description of “timestamp”
- [cosmetic] “memory_search” reworded the description of “wallet”
- [cosmetic] “memory_update” reworded the description of “tags”
- [cosmetic] “memory_update” reworded the description of “memory_id”
- [cosmetic] “memory_history” reworded the description of “timestamp”
- [cosmetic] “identity_submit_response” reworded the description of “response_text”
- [cosmetic] “memory_search” reworded the description of “payment_signature”
- [cosmetic] “identity_get_challenge” reworded the description of “signature”
- [cosmetic] “memory_update” reworded the description of “source”
- [cosmetic] “registry_tool_detail” reworded the description of “tool_id”
- [cosmetic] “memory_search” reworded the description of “q”
- [cosmetic] “memory_update” reworded the description of “timestamp”
- [cosmetic] “registry_report_tool” reworded the description of “evidence”
- [cosmetic] “sanity_check_batch” reworded the description of “mode”
- [cosmetic] “identity_register” reworded the description of “nonce”
- [cosmetic] “sanity_check_batch” reworded the description of “context”
- [cosmetic] “memory_delete” reworded the description of “wallet”
- [cosmetic] “registry_register_tool” reworded the description of “endpoint_url”
- [cosmetic] “memory_delete” reworded the description of “nonce”
- [cosmetic] “memory_history” reworded the description of “signature”
- [cosmetic] “memory_get” reworded the description of “signature”
- [cosmetic] “memory_prepare” reworded the description of “params”
- [cosmetic] “memory_prepare” reworded the description of “wallet”
- [cosmetic] “memory_get” reworded the description of “timestamp”
- [cosmetic] “memory_delete” reworded the description of “reason”
- [cosmetic] “memory_history” reworded the description of “memory_id”
- [cosmetic] “registry_register_tool” reworded the description of “owner_wallet”
- [cosmetic] “memory_update” reworded the description of “wallet”
- [cosmetic] “memory_search” reworded the description of “created_before”
- [cosmetic] “identity_register” reworded the description of “wallet”
- [cosmetic] “memory_delete” reworded the description of “memory_id”
- [cosmetic] “memory_get” reworded the description of “memory_id”
- [cosmetic] “memory_store” reworded the description of “timestamp”
- [cosmetic] “memory_delete” reworded the description of “scope”
- [cosmetic] “reputation_query” reworded the description of “min_reputation”
- [cosmetic] “memory_prepare” reworded the description of “operation”
- [cosmetic] “registry_register_tool” reworded the description of “signature”
- [cosmetic] “identity_register” reworded the description of “signature”
- [cosmetic] “registry_search_tools” reworded the description of “category”
- [cosmetic] “memory_store” reworded the description of “wallet”
- [cosmetic] “registry_search_tools” reworded the description of “limit”
- [cosmetic] “registry_search_tools” reworded the description of “sort”
- [cosmetic] “memory_search” reworded the description of “timestamp”
- [cosmetic] “memory_search” reworded the description of “created_after”
- [cosmetic] “memory_store” reworded the description of “tags”
- [cosmetic] “memory_deletions” reworded the description of “wallet”
- [cosmetic] “memory_get” reworded the description of “nonce”
- [cosmetic] “memory_update” reworded the description of “signature”
- [cosmetic] “reputation_status” reworded the description of “wallet”
- [cosmetic] “memory_store” reworded the description of “content”
- [cosmetic] “memory_delete” reworded the description of “signature”
- [cosmetic] “memory_deletions” reworded the description of “nonce”
- [cosmetic] “registry_report_tool” reworded the description of “reason”
- [cosmetic] “registry_report_tool” reworded the description of “tool_id”
- [cosmetic] “identity_get_nonce” reworded the description of “wallet”
- [cosmetic] “identity_status” reworded the description of “wallet”
- [cosmetic] “memory_history” reworded the description of “wallet”
- [cosmetic] “memory_search” reworded the description of “nonce”
- [cosmetic] “reputation_query” reworded the description of “min_slash_count”
- [cosmetic] “identity_get_challenge” reworded the description of “nonce”
- [cosmetic] “identity_submit_response” reworded the description of “challenge_id”
- [cosmetic] “reputation_query” reworded the description of “limit”
- [cosmetic] “memory_store” reworded the description of “source”
- [cosmetic] “registry_register_tool” reworded the description of “protocol”
- [cosmetic] “registry_tool_badge” reworded the description of “tool_id”

### 2026-10-02 (score 60)

First indexed and scored.

## MCP tools (75)

### `kalshi_probability` (~162 tokens)

[Trading Data API] Free, no signup required — Free, no signup required. Kalshi prediction-market probabilities. Query by category (returns the most active open markets) or a specific market ticker.

\**Example:** `/v1/kalshi-probability?category=crypto`

Input parameters:

- `category` (string, required): Optional. One of: crypto, macro, fed-rate, financials, politics, sports, world, companies, climate, science, health, entertainment, elections. Either category or ticker is required.
- `limit` (number): Optional. Max markets to return for a category query (default 25, max 100).
- `ticker` (string): Optional. A specific Kalshi market ticker (e.g. KXBTCD-...).

### `kalshi_market` (~162 tokens)

[Trading Data API] Single Kalshi market depth: orderbook (yes/no levels) + recent trades for a specific ticker. — Single Kalshi market depth: orderbook (yes/no levels) + recent trades for a specific ticker.

\**Example:** `/v1/kalshi-market?ticker=KXBTCD-26JUN1315-T64099.99`

Input parameters:

- `depth` (number): Optional. Orderbook depth per side (default 10, max 100).
- `ticker` (string, required): Required. A Kalshi market ticker (e.g. KXBTCD-26JUN1315-T64099.99).
- `trades` (string): Optional. Recent trades to return (default 20, max 100).

### `funding_oi` (~145 tokens)

[Trading Data API] Aggregated perpetual-futures funding rate & open interest from Binance + Bybit, with 7-day average funding, 24h OI change, and a long/short bias signal. — Aggregated perpetual-futures funding rate & open interest from Binance + Bybit, with 7-day average funding, 24h OI change, and a long/short bias signal.

\**Example:** `/v1/funding-oi?symbol=BTC`

Input parameters:

- `symbol` (string, required): Required. Base crypto symbol (e.g. BTC, ETH, SOL). Mapped to the <SYMBOL>USDT perpetual ticker on Binance/Bybit.

### `long_short_ratio` (~162 tokens)

[Trading Data API] Binance long/short ratios: global account, top-trader account, top-trader position, and taker buy/sell — Binance long/short ratios: global account, top-trader account, top-trader position, and taker buy/sell. Companion to funding-oi.

\**Example:** `/v1/long-short-ratio?symbol=BTC&period=1h`

Input parameters:

- `period` (number): Optional. One of 5m,15m,30m,1h,2h,4h,6h,12h,1d (default 5m).
- `symbol` (string, required): Required. Base crypto symbol (e.g. BTC). Mapped to <SYMBOL>USDT.

### `orderbook` (~134 tokens)

[Trading Data API] Top-of-book depth + spread (bps) from Binance, Bybit, or Hyperliquid. — Top-of-book depth + spread (bps) from Binance, Bybit, or Hyperliquid.

\**Example:** `/v1/orderbook?symbol=BTC&exchange=binance&depth=10`

Input parameters:

- `depth` (number): Optional. Levels per side (default 10, max 50).
- `exchange` (string): Optional. binance (default), bybit, or hyperliquid.
- `symbol` (string, required): Required. Base crypto symbol (e.g. BTC).

### `basis` (~88 tokens)

[Trading Data API] Spot-vs-perp basis (premium %) with funding-implied annualized carry — Spot-vs-perp basis (premium %) with funding-implied annualized carry. Spot from Coinbase; perp marks from Binance + Bybit.

\**Example:** `/v1/basis?symbol=BTC`

Input parameters:

- `symbol` (string, required): Required. Base crypto symbol (e.g. BTC).

### `hyperliquid` (~113 tokens)

[Trading Data API] Hyperliquid perpetual context: funding (hourly), open interest, mark/oracle/mid price, premium, 24h volume — Hyperliquid perpetual context: funding (hourly), open interest, mark/oracle/mid price, premium, 24h volume. Not geo-blocked.

\**Example:** `/v1/hyperliquid?symbol=BTC`

Input parameters:

- `symbol` (string, required): Required. Hyperliquid coin name (e.g. BTC, ETH, SOL).

### `volatility` (~90 tokens)

[Trading Data API] Deribit volatility: DVOL implied-vol index (30d forward) + latest realized volatility, for BTC or ETH. — Deribit volatility: DVOL implied-vol index (30d forward) + latest realized volatility, for BTC or ETH.

\**Example:** `/v1/volatility?currency=BTC`

Input parameters:

- `currency` (string): Optional. BTC (default) or ETH.

### `sentiment` (~76 tokens)

[Trading Data API] Free, no signup required — Free, no signup required. Crypto Fear & Greed Index (alternative.me), current reading + optional history.

\**Example:** `/v1/sentiment?limit=7`

Input parameters:

- `limit` (number): Optional. Number of days of history (default 1, max 90).

### `defi_tvl` (~156 tokens)

[Trading Data API] DefiLlama data: TVL by chain, stablecoin circulating supply, or yield pools. — DefiLlama data: TVL by chain, stablecoin circulating supply, or yield pools.

\**Example:** `/v1/defi-tvl?view=chains`

Input parameters:

- `chain` (string): Optional (yields view). Filter pools by chain, e.g. Ethereum.
- `limit` (number): Optional. Rows to return (default 20, max 100).
- `project` (string): Optional (yields view). Filter pools by project, e.g. aave-v3.
- `view` (string): Optional. chains (default), stablecoins, or yields.

### `price` (~124 tokens)

[Trading Data API] Current spot price for crypto (Coinbase) or US equities/ETFs (Alpaca SIP), via the shared routing layer. — Current spot price for crypto (Coinbase) or US equities/ETFs (Alpaca SIP), via the shared routing layer.

\**Example:** `/v1/price?symbol=BTC`

Input parameters:

- `class` (string, required): Optional. stock|crypto — required for symbols outside the curated list.
- `symbol` (string, required): Required. e.g. BTC, ETH, SUI, NVDA, SPY.

### `ohlcv` (~184 tokens)

[Trading Data API] OHLCV candles (oldest-first) for crypto or stocks — OHLCV candles (oldest-first) for crypto or stocks. Routes to Alpaca SIP / Alpaca-crypto / Coinbase.

\**Example:** `/v1/ohlcv?symbol=NVDA&timeframe=1h&limit=100`

Input parameters:

- `class` (string): Optional. stock|crypto for non-curated symbols.
- `limit` (number): Optional. Candles to return (default 100, max 300).
- `symbol` (string, required): Required. e.g. BTC, NVDA, SPY.
- `timeframe` (string): Optional. 1m,5m,15m,30m,1h,2h,4h,6h,12h,1D,1W (default 1h).

### `atr` (~192 tokens)

[Trading Data API] Average True Range (Wilder's) + volatility-regime classification (low/normal/high/extreme by historical percentile) — Average True Range (Wilder's) + volatility-regime classification (low/normal/high/extreme by historical percentile). Crypto or stocks.

\**Example:** `/v1/atr?symbol=BTC&timeframe=1h&period=14`

Input parameters:

- `class` (string): Optional. stock|crypto for non-curated symbols.
- `period` (number): Optional. ATR period (default 14).
- `symbol` (string, required): Required. e.g. BTC, NVDA, SPY (or any with &class=).
- `timeframe` (string): Optional. 1m,5m,15m,30m,1h,2h,4h,6h,12h,1D,1W (default 1h).

### `rates` (~117 tokens)

[Trading Data API] US Treasury yield curve (1M–30Y) + recession-indicator spreads (10y-2y, 10y-3m), from FRED. — US Treasury yield curve (1M–30Y) + recession-indicator spreads (10y-2y, 10y-3m), from FRED.

\**Example:** `/v1/rates`

Input parameters:

- `series` (string): Optional. A specific FRED series id (e.g. DGS10) for a single value.

### `market_clock` (~102 tokens)

[Trading Data API] US equities market clock (is_open, next_open/close) + upcoming sessions, via Alpaca — US equities market clock (is_open, next_open/close) + upcoming sessions, via Alpaca. Crypto endpoints are 24/7 and unaffected.

\**Example:** `/v1/market-clock`

Input parameters:

- `days` (number): Optional. Upcoming session days to include (default 3, max 30; 0 to omit).

### `market_overview` (~103 tokens)

[Trading Data API] Free, no signup required — Free, no signup required. CoinGecko global crypto stats (total market cap, 24h volume, BTC/ETH dominance) or top coins by market cap.

\**Example:** `/v1/market-overview`

Input parameters:

- `limit` (number): Optional (coins view). Number of coins (default 20, max 100).
- `view` (string): Optional. global (default) or coins.

### `gas` (~57 tokens)

[Trading Data API] Free, no signup required — Free, no signup required. Ethereum gas oracle (safe/propose/fast gas prices + base fee, in gwei), via Etherscan.

\**Example:** `/v1/gas`

### `fvg` (~268 tokens)

[Trading Data API] Fair Value Gap zones (standard ICT/LuxAlgo) with CE (50%), gap size, age, fill status, distance from price — Fair Value Gap zones (standard ICT/LuxAlgo) with CE (50%), gap size, age, fill status, distance from price. Standard timeframes match TradingView candles. Crypto or stocks.

\**Example:** `/v1/fvg?symbol=BTC&timeframe=1h`

Input parameters:

- `class` (string): Optional. stock|crypto for non-curated symbols.
- `include_filled` (boolean): Optional. true to include filled FVGs (default false = active only).
- `lookback` (number): Optional. Timeframe candles to analyze (default 120, max 500).
- `min_gap_pct` (number): Optional. Filter out gaps smaller than this % of price (default 0 = all).
- `symbol` (string, required): Required. e.g. BTC, NVDA, SPY (or any with &class=).
- `timeframe` (string): Optional. 1m,5m,15m,30m,1h,2h,4h,6h,12h,1D,1W (default 1h). Matches TradingView candles.

### `liquidity_levels` (~263 tokens)

[Trading Data API] ICT liquidity levels: buy-side liquidity (above swing highs) & sell-side (below swing lows), sweep/taken status, relative-equal pools, and nearest untaken targets — ICT liquidity levels: buy-side liquidity (above swing highs) & sell-side (below swing lows), sweep/taken status, relative-equal pools, and nearest untaken targets. Crypto or stocks.

\**Example:** `/v1/liquidity-levels?symbol=TQQQ&timeframe=1h`

Input parameters:

- `equal_threshold_pct` (number): Optional. Group swings within this % as relative-equal pools (default 0.1).
- `include_swept` (boolean): Optional. true to include already-taken levels (default false = resting only).
- `lookback` (number): Optional. Candles to analyze (default 300, max 500).
- `swing_length` (number): Optional. Pivot strength — bars each side of a swing (default 5). Tune to match your chart indicator.
- `symbol` (string, required): Required. e.g. BTC, NVDA, TQQQ (or any with &class=).
- `timeframe` (string): Optional. 1m..1W (default 1h).

### `macro_calendar` (~118 tokens)

[Trading Data API] Free, no signup required — Free, no signup required. Upcoming US macro events (FOMC rate decisions, CPI, jobs report) with verified Fed/BLS dates, days-until, and Kalshi rate-decision odds (cut/hold/hike) for FOMC meetings.

\**Example:** `/v1/macro-calendar`

Input parameters:

- `days` (number): Optional. Only events within the next N days.
- `type` (string): Optional. Filter to FOMC, CPI, or NFP.

### `earnings_calendar` (~164 tokens)

[Trading Data API] US equity earnings announcement calendar: report date, before/after-market timing, analyst EPS estimate + count, market cap, and prior-year actual EPS — US equity earnings announcement calendar: report date, before/after-market timing, analyst EPS estimate + count, market cap, and prior-year actual EPS. Sourced live from Nasdaq's public calendar.

\**Example:** `/v1/earnings-calendar?date=2026-07-14&days=3`

Input parameters:

- `date` (string): Optional. Start date YYYY-MM-DD (default: today).
- `days` (number): Optional. Days to scan forward from date (default 1, max 7).
- `symbol` (string): Optional. Filter to one ticker within the scanned range.

### `momentum_score` (~178 tokens)

[Trading Data API] Multi-asset momentum verdict (bias, confidence, thesis, entry/invalidation/targets, signal readings) from the oracle.py pipeline, run on a separate Python service — Multi-asset momentum verdict (bias, confidence, thesis, entry/invalidation/targets, signal readings) from the oracle.py pipeline, run on a separate Python service. Scoped to 10 assets.

\**Example:** `/v1/momentum-score?symbol=BTC&timeframe=1h`

Input parameters:

- `symbol` (string, required): Required. One of: BTC, ETH, SOL, SUI, NVDA, IBIT, COIN, QQQ, TQQQ, DIA.
- `timeframe` (string): Optional. 15m, 1h, 4h, 1D, 1W (default 1h).

### `protocol_health_scoreboard` (~180 tokens)

[Protocol Health Oracle] Public teaser: protocol name, score, and verdict only (no components/history) across the full tracked universe — auto-ingested from DefiLlama (TVL > $1M) plus curated protocols. — Public teaser: protocol name, score, and verdict only (no components/history) across the full tracked universe — auto-ingested from DefiLlama (TVL > $1M) plus curated protocols.

Input parameters:

- `category` (string): Optional. Filter by DefiLlama category, e.g. "Liquid Staking".
- `limit` (number): Optional. Rows to return (default 100, max 2000).
- `min_tvl` (string): Optional. Only protocols with TVL >= this USD amount.
- `offset` (string): Optional. Pagination offset (default 0).

### `protocol_health_list_protocols` (~111 tokens)

[Protocol Health Oracle] All tracked protocols with their latest health score and verdict. — All tracked protocols with their latest health score and verdict.

Input parameters:

- `category` (string): Optional. Filter by DefiLlama category.
- `limit` (number): Optional. Rows to return (default 100, max 2000).
- `min_tvl` (string): Optional. Only protocols with TVL >= this USD amount.
- `offset` (string): Optional. Pagination offset (default 0).

### `protocol_health_track_protocol` (~130 tokens)

[Protocol Health Oracle] Track a new protocol — Track a new protocol. Scored immediately from live GitHub + DeFiLlama data.

Input parameters:

- `chain` (string): Optional. Default "ethereum".
- `defillama_slug` (string, required): DeFiLlama protocol slug, e.g. lido.
- `github_repo` (string, required): owner/repo, e.g. lidofinance/core.
- `name` (string, required): Display name, e.g. "Lido".
- `treasury_address` (string): Optional. On-chain treasury address to score (Etherscan balance).

### `protocol_health_score` (~114 tokens)

[Protocol Health Oracle] Latest health score for one protocol: components (GitHub activity, TVL trend, treasury), source details, and score history. — Latest health score for one protocol: components (GitHub activity, TVL trend, treasury), source details, and score history.

Input parameters:

- `history` (number): Optional. Number of historical scores to include (default 10, max 100).
- `slug` (string, required): Required (path). The protocol's defillama_slug, e.g. lido.

### `protocol_health_refresh_all` (~38 tokens)

[Protocol Health Oracle] Force an immediate live re-score of all tracked protocols. — Force an immediate live re-score of all tracked protocols.

### `protocol_health_sync_universe` (~76 tokens)

[Protocol Health Oracle] Force an immediate sync of the tracked-protocol universe from DefiLlama (TVL > $1M) — Force an immediate sync of the tracked-protocol universe from DefiLlama (TVL > $1M). Runs automatically once/day; use this to trigger it on demand.

### `token_risk` (~174 tokens)

[Token Risk Oracle] Free, public, no signup — Free, public, no signup. Aggregates real on-chain risk signals from GoPlus Security for a token contract — honeypot detection, mint/ownership authority, holder & LP concentration, buy/sell tax, trust-list status — into one transparent risk score. Never a bare safe/unsafe claim: every flag GoPlus didn't return data for stays null, and the raw source data ships alongside the score.

Input parameters:

- `address` (string, required): Required. The token contract address (EVM) or mint address (Solana).
- `chain` (string, required): Required. ethereum, bsc, base, polygon, arbitrum, optimism, avalanche, fantom, zksync, linea, scroll, or solana. A numeric EVM chain_id also works.

### `broker_sync_register_user` (~62 tokens)

[Broker Sync API] Register a user with SnapTrade and get a brokerage connection-portal URL. — Register a user with SnapTrade and get a brokerage connection-portal URL.

Input parameters:

- `user_id` (string, required): Your application's stable identifier for this end user.

### `broker_sync_connections` (~42 tokens)

[Broker Sync API] List a user's connected brokerage accounts (normalized). — List a user's connected brokerage accounts (normalized).

Input parameters:

- `user_id` (string, required): Required.

### `broker_sync_positions` (~62 tokens)

[Broker Sync API] Real positions across all of a user's connected brokerages, one normalized schema, stamped as_of. — Real positions across all of a user's connected brokerages, one normalized schema, stamped as_of.

Input parameters:

- `user_id` (string, required): Required.

### `broker_sync_balances` (~45 tokens)

[Broker Sync API] Cash & buying power per connected account (normalized). — Cash & buying power per connected account (normalized).

Input parameters:

- `user_id` (string, required): Required.

### `broker_sync_transactions` (~62 tokens)

[Broker Sync API] Transaction/activity history across brokerages. — Transaction/activity history across brokerages.

Input parameters:

- `from` (string): Optional. YYYY-MM-DD.
- `to` (string): Optional. YYYY-MM-DD.
- `user_id` (string, required): Required.

### `broker_sync_prop_firms` (~73 tokens)

[Broker Sync API] Prop-firm platform integration registry — live-verified methods (Topstep ProjectX API, FTMO MatchTrader bridge) and connection status. — Prop-firm platform integration registry — live-verified methods (Topstep ProjectX API, FTMO MatchTrader bridge) and connection status.

### `reputation_status` (~67 tokens)

[Wicked Reputation] An agent's current reputation: tier, active/unbonding stake, score, slash count, founding-member badge. http_status 404 means the wallet never registered — treat as tier 'unranked'.

Input parameters:

- `wallet` (string, required): The 0x wallet address.

### `reputation_statement` (~63 tokens)

[Wicked Reputation] An agent's full position plus real event ledger (stakes, unstakes, withdrawals, slashes). Does not include WickedAPI call volume or fees — see the `note` field.

Input parameters:

- `wallet` (string, required): The 0x wallet address.

### `reputation_query` (~174 tokens)

[Wicked Reputation] Search/rank registered agents by tier, stake, reputation or slash history. Every filter is a typed query param.

Input parameters:

- `founding_member` (boolean): True to only show founding members.
- `limit` (number): 1-200, default 20.
- `max_stake` (number): Maximum active stake (USDC).
- `min_reputation` (number): Minimum reputation score.
- `min_slash_count` (number): Minimum slash events (1 finds agents ever slashed).
- `min_stake` (number): Minimum active stake (USDC).
- `sort` (string): stake_amount | reputation_score | slash_count | registered_at, prefixed "-" (desc, default) or "+" (asc).
- `tier` (string): Exact tier name, e.g. "gold".

### `reputation_tiers` (~41 tokens)

[Wicked Reputation] Live tier thresholds and benefits (min stake, rate-limit multiplier, fee discount). Read at call time — thresholds are admin-configurable.

### `reputation_transparency` (~41 tokens)

[Wicked Reputation] Live transparency numbers: treasury address, custody model, unbonding cooldown, total stake, agents, slash events, founding-slot counts.

### `registry_search_tools` (~207 tokens)

[Wicked Registry] Search x402/MCP tools by real reliability data (uptime, latency, schema conformance). Works via x402 (402 carries payment instructions) or a free API key (pass api_key, or set REGISTRY_API_KEY). No key yet? Call registry_onboarding_message then registry_create_api_key to get one yourself. For a quick free check of a known tool, use registry_lookup.

Input parameters:

- `api_key` (string): Free Wicked Registry API key (wr_...). Overrides REGISTRY_API_KEY.
- `category` (string): e.g. "data", "crypto".
- `limit` (number): 1-200, default 50.
- `min_score` (number): Minimum composite score 0-100; unchecked tools are excluded once set.
- `protocol` (string): "x402", "mcp" or "rest".
- `sort` (string): "score" (default), "latency" or "recency".

### `registry_tool_detail` (~81 tokens)

[Wicked Registry] One tool's full score breakdown, component history and recent real health checks. x402 or a free API key.

Input parameters:

- `api_key` (string): Free Wicked Registry API key (wr_...). Overrides REGISTRY_API_KEY.
- `tool_id` (string, required): Registry id from registry_lookup / registry_search_tools / registry_featured_tools.

### `registry_lookup` (~127 tokens)

[Wicked Registry] Free lookup: find a tool's id and headline reliability score by name or URL fragment (q), exact endpoint URL (endpoint) or category. No key or payment. Use it to check a tool before your agent pays it; follow with registry_tool_badge or registry_tool_detail.

Input parameters:

- `category` (string)
- `endpoint` (string): Exact endpoint URL of the tool you are about to call.
- `limit` (number): 1-25, default 10.
- `q` (string): Name or URL fragment, at least 2 characters.

### `registry_onboarding_message` (~138 tokens)

[Wicked Registry] Step 1 of self-onboarding. Returns the exact message YOU must sign (EIP-191 personal_sign) plus its timestamp, valid for about an hour. action=api_key (needs wallet) for a free API key, or action=register (needs name and endpoint_url) to list your own tool. This tool never signs anything.

Input parameters:

- `action` (string, required)
- `endpoint_url` (string): Tool endpoint URL (required for register).
- `name` (string): Tool name (required for register).
- `wallet` (string): Your 0x wallet address (required for api_key).

### `registry_create_api_key` (~153 tokens)

[Wicked Registry] Step 2 of getting a free API key. Submit the wallet, the timestamp and YOUR signature over the message from registry_onboarding_message(action=api_key). The key (wr_...) is returned once - store it and pass it as api_key to registry_search_tools / registry_tool_detail. Up to 3 active keys per wallet; past the daily cap calls fall back to x402.

Input parameters:

- `label` (string): Optional label for the key.
- `signature` (string, required): 0x-prefixed ECDSA signature over the message.
- `timestamp` (string, required): The timestamp returned with the message.
- `wallet` (string, required): 0x wallet that signed the message.

### `registry_featured_tools` (~24 tokens)

[Wicked Registry] Top scored active tools. Public and free.

### `registry_tool_badge` (~41 tokens)

[Wicked Registry] A tool's current composite reliability score. Public and free.

Input parameters:

- `tool_id` (string, required): The tool's Wicked Registry id.

### `registry_report_tool` (~111 tokens)

[Wicked Registry] File a complaint about a tool's reliability or behaviour. Public, rate-limited; reviewed manually, never auto-suspends.

Input parameters:

- `evidence` (string): Optional note or URL.
- `reason` (string, required): "downtime", "incorrect_response", "scam_or_abuse", "schema_violation" or "other".
- `reporter` (string, required): Your wallet address or another best-effort identifier.
- `tool_id` (string, required): The tool's Wicked Registry id.

### `registry_register_tool` (~191 tokens)

[Wicked Registry] Register a tool you own so it gets real synthetic checks and a live score. Get the exact message to sign from registry_onboarding_message(action=register), sign it with owner_wallet, then call this. This tool never signs.

Input parameters:

- `category` (string, required)
- `description` (string, required)
- `endpoint_url` (string, required): Live, publicly reachable endpoint.
- `name` (string, required)
- `owner_wallet` (string, required): 0x wallet that signed the registration message.
- `protocol` (string, required): "x402", "mcp" or "rest".
- `schema_url` (string): Optional JSON Schema URL enabling the schema-conformance score.
- `signature` (string, required): 0x-prefixed ECDSA signature over the registration message.
- `timestamp` (string, required): ISO 8601 timestamp used in the signed message (within an hour of the call).

### `identity_sandbox_register` (~102 tokens)

[Wicked Identity] START HERE if you have no wallet or cannot sign messages. Returns a sandbox wallet + sandbox_token (no signing, no body). Then call identity_get_challenge and identity_submit_response with wallet + sandbox_token. Sandbox results are for trying the service: signed with a separate key (identity_jwks sandbox=true) and never reported as verified. Use a real wallet for an accountable identity. Limit: 10 per IP per hour.

### `identity_get_test_key` (~70 tokens)

[Wicked Identity] Get a free self-serve test API key (7-day expiry, 20 requests/min) to use as api_key on identity_status instead of paying via x402. Limit: 5 per IP per day.

Input parameters:

- `label` (string): Optional name for this key.

### `identity_get_nonce` (~79 tokens)

[Wicked Identity] Real-wallet path, step 1: a one-time nonce + message to sign. Every signed identity call needs a fresh nonce (single-use, 5-minute TTL). Not needed for sandbox identities.

Input parameters:

- `wallet` (string, required): Your 0x wallet address on Base, or the sandbox wallet from identity_sandbox_register.

### `identity_register` (~111 tokens)

[Wicked Identity] Register a REAL wallet (no stake required). Needs your signature over identity_get_nonce's message; this tool never signs. Sandbox identities are registered by identity_sandbox_register instead.

Input parameters:

- `nonce` (string, required): Nonce from a FRESH identity_get_nonce call.
- `signature` (string, required): 0x-prefixed ECDSA signature over that nonce's message.
- `wallet` (string, required): Your 0x wallet address on Base, or the sandbox wallet from identity_sandbox_register.

### `identity_get_challenge` (~191 tokens)

[Wicked Identity] Request a real time-boxed liveness challenge (constrained-generation task, 30s budget). The clock starts when this returns: answer in ONE pass via identity_submit_response before `expires_at`. Real wallet: needs a fresh signed nonce (fetch + sign the nonce for the NEXT call before calling this). Sandbox: just wallet + sandbox_token.

Input parameters:

- `nonce` (string): Real wallet: nonce from a FRESH identity_get_nonce call. Omit for sandbox.
- `sandbox_token` (string): Sandbox identity: the sandbox_token from identity_sandbox_register. Use INSTEAD of nonce/signature.
- `signature` (string): Real wallet: 0x-prefixed ECDSA signature over that nonce's message. Omit for sandbox.
- `wallet` (string, required): Your 0x wallet address on Base, or the sandbox wallet from identity_sandbox_register.

### `identity_submit_response` (~213 tokens)

[Wicked Identity] Submit your answer to a challenge; scored pass / fail / inconclusive. A pass returns a short-lived signed assertion_token (JWT) verifiable via identity_jwks. Real wallet: needs a DIFFERENT fresh nonce than identity_get_challenge used. Sandbox: wallet + sandbox_token.

Input parameters:

- `challenge_id` (string, required): The challenge_id from identity_get_challenge.
- `nonce` (string): Real wallet: nonce from a FRESH identity_get_nonce call. Omit for sandbox.
- `response_text` (string, required): Your answer exactly as the instructions specify: raw text only.
- `sandbox_token` (string): Sandbox identity: the sandbox_token from identity_sandbox_register. Use INSTEAD of nonce/signature.
- `signature` (string): Real wallet: 0x-prefixed ECDSA signature over that nonce's message. Omit for sandbox.
- `wallet` (string, required): Your 0x wallet address on Base, or the sandbox wallet from identity_sandbox_register.

### `identity_status` (~106 tokens)

[Wicked Identity] Does a wallet currently hold a valid, unexpired assertion? No signature needed. Pays via x402, or pass api_key (get one free from identity_get_test_key) / set IDENTITY_API_KEY. Sandbox wallets are never `verified`; they report sandbox: true and sandbox_verified instead.

Input parameters:

- `api_key` (string): Optional x-api-key, e.g. from identity_get_test_key.
- `wallet` (string, required): The 0x wallet address.

### `identity_jwks` (~61 tokens)

[Wicked Identity] Public RS256 keys to verify an assertion_token locally. Free. Set sandbox=true for the separate key set that signs sandbox assertions.

Input parameters:

- `sandbox` (boolean): true = the sandbox key set (issuer wicked-identity-sandbox).

### `sanity_check` (~176 tokens)

[Wicked Sanity] Verify one claim before acting on it. Verdicts: supported | contradicted | unsupported | insufficient_evidence (see `data`). confidence_score is raw consistency (a "contradicted" verdict scores near 0). Policy: act on supported; treat unsupported/insufficient_evidence as unverified; reject contradicted. x402 or SANITY_API_KEY; 429 means a rate limit — see retry_after.

Input parameters:

- `claim` (string, required): The single statement to verify (max 5,000 chars).
- `context`: Source text the claim(s) must be faithful to. Required for mode "grounded".
- `mode` (string): "grounded" (default; check against context) or "open" (check against live web evidence — consistency with the web, not objective truth).

### `sanity_check_batch` (~133 tokens)

[Wicked Sanity] Verify up to 50 claims against one shared context in a single call — prefer this over one sanity_check per sentence. `data` is a list in the same order as `claims`.

Input parameters:

- `claims` (array, required): 1-50 statements, each up to 5,000 chars.
- `context`: Source text the claim(s) must be faithful to. Required for mode "grounded".
- `mode` (string): "grounded" (default; check against context) or "open" (check against live web evidence — consistency with the web, not objective truth).

### `memory_prepare` (~173 tokens)

Wicked Memory step 1 of every call: returns the exact `message_to_sign`. Sign it with your own wallet (EIP-191 personal_sign), then call the matching memory_* tool with the SAME arguments plus the returned timestamp, nonce and your signature. Timestamp must be within 5 minutes; nonce is single-use, so prepare again for every call.

Input parameters:

- `operation` (string, required): "store", "search", "get", "update", "history", "delete" or "deletions".
- `params` (object): The arguments you will pass to the tool, by name, e.g. {"content":"...","tags":["a"]} or {"memory_id":"<uuid>"}.
- `wallet` (string, required): Your agent's 0x wallet address (memories are scoped to it).

### `memory_store` (~159 tokens)

[Wicked Memory] Store a memory (free, fair-use rate limited). A real embedding is computed at write time. Run memory_prepare with operation 'store' and these same arguments first.

Input parameters:

- `content` (string, required): Text to remember (max 16 KB).
- `metadata` (object): Free-form JSON object (max 8 KB).
- `nonce` (string, required): From memory_prepare (single use).
- `signature` (string, required): Your wallet's signature over memory_prepare's message_to_sign.
- `source` (string): Which agent/session wrote this.
- `tags` (array): Up to 20 short tags.
- `timestamp` (string, required): From memory_prepare.
- `wallet` (string, required): Your agent's 0x wallet address.

### `memory_search` (~273 tokens)

[Wicked Memory] Semantic search over YOUR memories only, ranked by real cosine similarity. The one metered call: free with MEMORY_API_KEY, otherwise http_status 402 with x402 v2 instructions under `payment_required` (0.001 USDC on Base) — pay, then call again with the SAME arguments (a 402 does not consume the nonce) plus payment_signature.

Input parameters:

- `as_of` (string): ISO-8601 instant; search memory as it stood then.
- `created_after` (string): ISO-8601 lower bound.
- `created_before` (string): ISO-8601 upper bound.
- `include_superseded` (boolean): Also search old, superseded versions.
- `limit` (number): 1-50, default 10.
- `nonce` (string, required): From memory_prepare (single use).
- `payment_signature` (string): x402 payment payload (base64) for the keyless path.
- `q` (string, required): What to look for, in natural language.
- `signature` (string, required): Your wallet's signature over memory_prepare's message_to_sign.
- `tags` (array): Only memories having ALL of these tags.
- `timestamp` (string, required): From memory_prepare.
- `wallet` (string, required): Your agent's 0x wallet address.

### `memory_get` (~102 tokens)

[Wicked Memory] Fetch one of your memories by id (another wallet's or a deleted id returns the same 404).

Input parameters:

- `memory_id` (string, required): The memory's UUID.
- `nonce` (string, required): From memory_prepare (single use).
- `signature` (string, required): Your wallet's signature over memory_prepare's message_to_sign.
- `timestamp` (string, required): From memory_prepare.
- `wallet` (string, required): Your agent's 0x wallet address.

### `memory_update` (~178 tokens)

[Wicked Memory] Update without overwriting: creates a new version and closes the old one (valid_until / superseded_by). Omitted fields carry over; only the current version can be updated (409 otherwise).

Input parameters:

- `content` (string): New text (re-embedded). Provide at least one of content/tags/metadata/source.
- `memory_id` (string, required): UUID of the CURRENT version to supersede.
- `metadata` (object): Replacement metadata object.
- `nonce` (string, required): From memory_prepare (single use).
- `signature` (string, required): Your wallet's signature over memory_prepare's message_to_sign.
- `source` (string): New source label.
- `tags` (array): Replacement tags.
- `timestamp` (string, required): From memory_prepare.
- `wallet` (string, required): Your agent's 0x wallet address.

### `memory_history` (~112 tokens)

[Wicked Memory] Full version chain for a memory, oldest first, with valid_from / valid_until / superseded_by. Works from any version's id.

Input parameters:

- `memory_id` (string, required): UUID of any version in the chain.
- `nonce` (string, required): From memory_prepare (single use).
- `signature` (string, required): Your wallet's signature over memory_prepare's message_to_sign.
- `timestamp` (string, required): From memory_prepare.
- `wallet` (string, required): Your agent's 0x wallet address.

### `memory_delete` (~162 tokens)

[Wicked Memory] PERMANENTLY hard-delete a memory (right-to-be-forgotten). Default scope "chain" removes every version; "version" only this one. Only an audit row (no content) is kept.

Input parameters:

- `memory_id` (string, required): UUID of any version in the chain.
- `nonce` (string, required): From memory_prepare (single use).
- `reason` (string): Optional audit-log note (max 200 chars).
- `scope` (string): "chain" (all versions, default) or "version".
- `signature` (string, required): Your wallet's signature over memory_prepare's message_to_sign.
- `timestamp` (string, required): From memory_prepare.
- `wallet` (string, required): Your agent's 0x wallet address.

### `memory_deletions` (~85 tokens)

[Wicked Memory] Your deletion audit log (ids, times, reasons; never content).

Input parameters:

- `nonce` (string, required): From memory_prepare (single use).
- `signature` (string, required): Your wallet's signature over memory_prepare's message_to_sign.
- `timestamp` (string, required): From memory_prepare.
- `wallet` (string, required): Your agent's 0x wallet address.

### `paywall_signup` (~101 tokens)

[x402 Paywall] Create a tenant account. Returns a Bearer apiKey ONCE — store it and set PAYWALL_API_KEY. Rate-limited to 5/hour per IP.

Input parameters:

- `name` (string, required): Letters, digits, space . _ - (max 100).
- `slug` (string, required): Lowercase a-z0-9 and hyphens, 2-40 chars; becomes your mount path prefix /{slug}.

### `paywall_get_tenant` (~28 tokens)

[x402 Paywall] Your tenant record (needs PAYWALL_API_KEY).

### `paywall_list_routes` (~30 tokens)

[x402 Paywall] List your paywalled routes (needs PAYWALL_API_KEY).

### `paywall_create_route` (~225 tokens)

[x402 Paywall] Paywall a new endpoint with x402 pay-per-call, settled in USDC straight to payTo. With upstreamUrl, paid requests are proxied to your backend. Applies live within ~20s (needs PAYWALL_API_KEY).

Input parameters:

- `asset` (string): Payment token contract; defaults to USDC on the network.
- `description` (string): Up to 200 chars: letters, digits, space . _ -
- `method` (string): Default GET.
- `network` (string, required): CAIP-2 id: Base mainnet eip155:8453, Base Sepolia eip155:84532.
- `path` (string): Route path, e.g. "/weather".
- `payTo` (string, required): Your payout wallet (0x…). Settlement pays here directly; nothing is custodied.
- `price` (string, required): Decimal USD amount, e.g. "0.01" or "$0.01".
- `upstreamUrl` (string): Your https backend. Omit for the demo confirmation payload.

### `paywall_import_routes` (~61 tokens)

[x402 Paywall] Bulk upsert routes keyed on (method, path) — paywall a whole API in one call (needs PAYWALL_API_KEY).

Input parameters:

- `routes` (array, required): Route objects, same fields as paywall_create_route.

### `paywall_update_route` (~220 tokens)

[x402 Paywall] Partial update of a route (e.g. change price or payout wallet); applies live within ~20s (needs PAYWALL_API_KEY).

Input parameters:

- `asset` (string): Payment token contract; defaults to USDC on the network.
- `description` (string): Up to 200 chars: letters, digits, space . _ -
- `id` (string, required): Route id from paywall_list_routes.
- `method` (string): Default GET.
- `network` (string): CAIP-2 id: Base mainnet eip155:8453, Base Sepolia eip155:84532.
- `path` (string): Route path, e.g. "/weather".
- `payTo` (string): Your payout wallet (0x…). Settlement pays here directly; nothing is custodied.
- `price` (string): Decimal USD amount, e.g. "0.01" or "$0.01".
- `upstreamUrl` (string): Your https backend. Omit for the demo confirmation payload.

### `paywall_delete_route` (~50 tokens)

[x402 Paywall] Remove a paywalled route; applies within ~20s (needs PAYWALL_API_KEY).

Input parameters:

- `id` (string, required): Route id from paywall_list_routes.

### `paywall_list_settlements` (~51 tokens)

[x402 Paywall] Your real on-chain USDC settlements (earnings) (needs PAYWALL_API_KEY).

Input parameters:

- `limit` (number): Default 50, max 200.

## Diagnostics

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

## Score history

- 2026-10-07: 65
- 2026-10-05: 65
- 2026-10-04: 65
- 2026-10-03: 65
- 2026-10-02: 60

## Common questions

### What is the Wicked MCP server?

Wicked MCP is listed in the public MCP registry as io.github.choaticpixels/wicked-mcp. The whole Wicked suite for agents: trading, DeFi/token risk, identity, reputation, memory. x402. This page covers its hosted endpoint (https://mcp.wickedapi.com/mcp).

### Is the Wicked MCP server safe to use?

Wicked MCP scores 65 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 Wicked MCP server expose?

Wicked MCP exposes 75 tools: kalshi_probability, kalshi_market, funding_oi, long_short_ratio, orderbook, and 70 more. Their descriptions and schemas cost roughly 9,038 tokens of context every time the server is loaded.

### Does the Wicked MCP server require authentication?

No. We connected to Wicked MCP without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Wicked MCP server still maintained?

Wicked MCP is still listed as active in the MCP registry. We last reached this channel on 7 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://mcp.wickedapi.com/mcp
- Repository: https://github.com/choaticpixels/wicked-mcp
- Website: https://mcp.wickedapi.com/
- Changelog RSS feed: https://verifymcp.io/servers/choaticpixels-wicked-mcp/mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/choaticpixels-wicked-mcp/mcp.json
- HTML version of this page: https://verifymcp.io/servers/choaticpixels-wicked-mcp/mcp
