Stream Solana Memecoin Data in Real‑Time

TrenchFeed provides a high‑performance Solana memecoin firehose for bots and research platforms. Subscribe to clean or raw swap data with enterprise‑grade reliability.

Get API Key
Abstract data stream illustration

Overview

TrenchFeed is built by developers for developers. Inspired by world‑class financial data providers, our mission is to make blockchain data delightful for engineers. We deliver a simple streaming API that gives you access to high‑frequency swap events across supported decentralized exchanges. Whether you’re building AI agents, trading bots, or dashboards, TrenchFeed brings the data to you in seconds.


The API is organized into two tiers to fit your needs:

Streaming data illustration

Rate Limits

Pro: 500 to 1,000 messages per minute, 1 to 3 concurrent streams per account

Enterprise: 10,000 plus messages per minute, 10 to 100 plus concurrent streams, burst tolerance, priority routing

API Reference

How to Connect

TrenchFeed streams real time events over a Server Sent Events connection.

Connection Steps:

  1. Get your API key from your welcome email after checkout.
  2. Choose your tier route: /stream/pro or /stream/enterprise.
  3. Open a streaming HTTP connection to https://api.trenchfeed.cc/stream/\1 with header Authorization: Bearer <YOUR_API_KEY>.
  4. Read each SSE data line. Each line contains a JSON object. Handle events as they arrive.
  5. Implement simple retry on disconnect to restore the stream.
  6. NOTE:

  7. Email may go straight to spam folder.

Pro Tier Stream

Clean, focused swap data optimized for trading bots via the /stream/pro SSE endpoint.

Sample Event (Pro Tier)

{
  "pair": {
    "dex": "pumpfun",
    "address": "4TiRavVWTSi1NkYqsDVcreqfHXdGrY46tY5Lzmii9zn7",
    "fdv_usd": 9811.12,
    "price_usd": 0.000009811
  },
  "token": {
    "name": "this job will heal the trenches",
    "symbol": "[REDACTED]",
    "address": "8c6vV9fKjRQ3j9N5Xvo1jM8uJJLwMYL3uMYvQbDFpump"
  },
  "metrics": {
    "h1": {
      "buys": 14,
      "sells": 3,
      "volume_usd": 3906,
      "snapshot_ts": "2025-10-23T20:55:07.729661+00:00",
      "window_code": "h1",
      "pair_address": "4TiRavVWTSi1NkYqsDVcreqfHXdGrY46tY5Lzmii9zn7",
      "price_change_pct": 73.22
    },
    "m5": {
      "buys": 14,
      "sells": 3,
      "volume_usd": 3906,
      "snapshot_ts": "2025-10-23T20:55:07.729661+00:00",
      "window_code": "m5",
      "pair_address": "4TiRavVWTSi1NkYqsDVcreqfHXdGrY46tY5Lzmii9zn7",
      "price_change_pct": 73.22
    }
  },
  "timestamp": "2025-10-23T21:18:40.299018+00:00",
  "recent_swaps": [
    {
      "ts": "2025-10-23T21:18:40.299018+00:00",
      "side": "buy",
      "txid": "3TF65hUbsZnk...",
      "amount_in": 0.025887912,
      "amount_out": 382383.117559
    }
    // ... last 10 swaps
  ]
}
        

Enterprise Tier Stream

Complete transaction history with extended metadata via the /stream/enterprise SSE endpoint.

Sample Event (Enterprise Tier)

{
  "pair": {
    "url": "https://dexscreener.com/solana/4tiravvwtsi1nkyqsdvcreqfhxdgry46ty5lzmii9zn7",
    "dex_id": "pumpfun",
    "fdv_usd": 9811.12,
    "chain_id": "solana",
    "price_usd": 0.000009811,
    "base_token": "8c6vV9fKjRQ3j9N5Xvo1jM8uJJLwMYL3uMYvQbDFpump",
    "quote_token": "So11111111111111111111111111111111111111112",
    "snapshot_ts": "2025-10-23T20:55:07.729661+00:00",
    "pair_address": "4TiRavVWTSi1NkYqsDVcreqfHXdGrY46tY5Lzmii9zn7",
    "price_native": 0.00000005167,
    "market_cap_usd": 9811.12,
    "base_token_name": "this job will heal the trenches",
    "pair_created_at": "2025-10-23T20:54:51+00:00",
    "quote_token_name": "Wrapped SOL",
    "base_token_symbol": "[REDACTED]",
    "quote_token_symbol": "SOL"
  },
  "swaps": [
    {
      "ts": "2025-10-23T21:18:40.299018+00:00",
      "side": "buy",
      "txid": "3TF65hUbsZnk...",
      "amount_in": 0.025887912,
      "amount_out": 382383.117559
    }
    // ... full swap history
  ],
  "token": {
    "name": "this job will heal the trenches",
    "symbol": "[REDACTED]",
    "chain_id": "solana",
    "updated_at": "2025-10-23T20:55:05.271515+00:00",
    "token_address": "8c6vV9fKjRQ3j9N5Xvo1jM8uJJLwMYL3uMYvQbDFpump"
  },
  "timestamp": "2025-10-23T21:18:40.299018+00:00",
  "current_swap": {
    "side": "buy",
    "txid": "3TF65hUbsZnk83Fi5CgSNcFto8b6CMFWMPeww22eqWrd3tKLvbqZ1ii7J7uWtSgLK31eSEw9zADFAiNSqdyJzojN"
  },
  "pair_window_metrics": {
    "m5": { "buys": 14, "sells": 3, "volume_usd": 3906, "price_change_pct": 73.22 },
    "h1": { "buys": 14, "sells": 3, "volume_usd": 3906, "price_change_pct": 73.22 },
    "h6": { "buys": 14, "sells": 3, "volume_usd": 3906, "price_change_pct": 73.22 },
    "h24": { "buys": 14, "sells": 3, "volume_usd": 3906, "price_change_pct": 73.22 }
  }
}
        

Client Examples

curl

curl -N https://api.trenchfeed.cc/stream/\1 \
  -H "Authorization: Bearer <YOUR_API_KEY>"

Python (httpx)

import httpx, json

with httpx.stream("GET",
                  "https://api.trenchfeed.cc/stream/\1",
                  headers={"Authorization": "Bearer <YOUR_API_KEY>"},
                  timeout=None) as r:
    for raw in r.iter_lines():
        if not raw:
            continue
        line = raw.decode("utf-8", errors="ignore")
        if line.startswith("data: "):
            payload = line[len("data: "):]
            obj = json.loads(payload)
            print(obj)

JavaScript (fetch + SSE parsing)

const res = await fetch("https://api.trenchfeed.cc/stream/\1", {
  headers: { Authorization: "Bearer <YOUR_API_KEY>" }
});

const reader = res.body.getReader();
const decoder = new TextDecoder();
let buffer = "";

while (true) {
  const { value, done } = await reader.read();
  if (done) break;
  buffer += decoder.decode(value, { stream: true });

  let sep;
  while ((sep = buffer.indexOf("\n\n")) >= 0) {
    const frame = buffer.slice(0, sep);
    buffer = buffer.slice(sep + 2);

    for (const line of frame.split("\n")) {
      if (line.startsWith("data: ")) {
        const jsonText = line.slice(6);
        try {
          const obj = JSON.parse(jsonText);
          console.log(obj);
        } catch {}
      }
    }
  }
}

HTTP Status Codes

Our API returns machine‑readable JSON for every response. Here are examples of common status codes you may encounter:

200 OK
{
  "swap_id": "cafebabe",
  "pair": "SOL/USDC",
  "ts": "2025-10-07T12:00:00Z",
  "side": "buy",
  "amount0": "100",
  "amount1": "500"
}

400 Bad Request
{"error":"Invalid query parameters","status":400}

401 Unauthorized
{"error":"Missing API key","status":401}

402 Payment Required
{"error":"Subscription inactive – please subscribe to access this endpoint","status":402}

404 Not Found
{"error":"Endpoint not found","status":404}

Pricing

Choose the plan that’s right for your use case. Cancel anytime.

Pro

$1,997/mo

Includes a 5‑day free trial

  • Cleaned swap data
  • 5 concurrent connections
  • 50 GB bandwidth
  • 10M events/month
  • Email support
Subscribe

Enterprise

$4,997/mo

Includes a 5‑day free trial

  • Full raw swap data
  • 25 concurrent connections
  • 500 GB bandwidth
  • 100M events/month
  • Priority support
Subscribe

Get Started

It only takes a few minutes to integrate TrenchFeed into your application:

  1. Create an account and grab your API key from your welcome email.
  2. Stream data by adding your key to the Authorization header as Bearer <api_key>.
  3. Process SSE data lines that contain JSON objects to power your bots, dashboards, or research.

Need help? Reach out to admin@trenchfeed.cc and our team will assist you.