Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/alphaleaks60-maker/docs2/llms.txt

Use this file to discover all available pages before exploring further.

Alpha Leak exposes two primary interfaces: a Server-Sent Events stream for real-time signal delivery, and a set of REST endpoints for querying historical signals, wallets, tokens, and pipeline stats. Both are available from the same base URL as your hosted instance.

Base URL

All endpoints are served from your hosted instance. Replace your-instance with the host you have been given.
https://your-instance/api

Endpoints

GET /api/live/feed

SSE stream pushing signals, graduations, and anti-signals in real time.

GET /api/live/recent

Fetch recent signals, graduations, and large trades for initial page load.

GET /api/signals

Query historical signals filtered by ML score threshold.

GET /api/wallets

Retrieve tracked wallets filtered by alpha score and activity status.

GET /api/tokens

Fetch token data including lifecycle state and risk scores.

GET /api/stats

Current pipeline stats and active market regime.

SSE live feed

GET /api/live/feed

The live feed is a Server-Sent Events stream. It is the primary interface for consuming Alpha Leak data — no polling required. The stream pushes three event types as they occur on-chain.
EventDescription
signalA tracked wallet or genesis model has produced a signal. Subtypes: signal, genesis_signal, anti_signal.
graduationA token has graduated from the Pump.fun bonding curve.
heartbeatSent every 15 seconds to keep connections alive through proxies and load balancers.
SSE clients reconnect automatically on disconnection. No manual reconnect logic is needed in the browser or Node.js EventSource implementation.

JavaScript connection example

const es = new EventSource('https://your-instance/api/live/feed');

es.addEventListener('signal', (event) => {
  const data = JSON.parse(event.data);

  if (data.type === 'genesis_signal') {
    // New token scored highly in its first 60 seconds
    console.log('Genesis:', data.data.symbol, `score: ${data.data.genesisScore}`);

  } else if (data.type === 'anti_signal') {
    // Active token flagged — adversarial conditions detected
    console.warn('Anti-signal:', data.data.tokenMint, data.data.reasons);

  } else {
    // Standard tracked-wallet signal
    console.log('Signal:', data.data.tokenMint, data.data.action);
  }
});

es.addEventListener('graduation', (event) => {
  const token = JSON.parse(event.data);
  console.log(`${token.symbol} graduated — ${token.volume} SOL total volume`);
});

es.onerror = () => {
  // SSE clients reconnect automatically — no manual handling required
};

Signal subtypes

The signal SSE event carries a type field that identifies the signal subtype:
  • signal — a tracked wallet with a quality profile has made a significant buy. The payload includes wallet alpha score, ML probability score, token lifecycle state, buy rank, velocity data, and creator risk.
  • genesis_signal — a newly created token scored highly across the genesis model’s 75-feature vector during its first 60 seconds. No tracked wallet is required — this is based purely on launch dynamics.
  • anti_signal — a token with recent buy signals has triggered 2 or more adversarial detection rules simultaneously (e.g. coordinated bundle combined with high bot buyer percentage). Any open position in the flagged token should be treated as an exit cue.

Recent data

GET /api/live/recent

Returns recent signals, graduations, and large trades. Call this once on page or app load to seed your initial state, then let the SSE stream handle updates from that point forward.

Query parameters

limit
number
default:"20"
Maximum number of records to return per category. Applies to signals, graduations, and largeTrades independently.

Response fields

signals
object[]
Recent buy/sell signals with ML scores, in descending chronological order.
graduations
object[]
Recently graduated tokens, in descending chronological order.
largeTrades
object[]
Recent individual trades of 1.0 SOL or more, in descending chronological order.

Example

const res = await fetch('https://your-instance/api/live/recent?limit=20');
const { signals, graduations, largeTrades } = await res.json();

// signals      — recent buy/sell signals with ML scores
// graduations  — recently graduated tokens
// largeTrades  — recent trades >= 1.0 SOL

Signals

GET /api/signals

Returns a paginated list of historical signals filtered by ML score. Use this endpoint to query the signal archive or to build backtesting datasets.

Query parameters

min_ml_score
number
default:"0"
Filter to signals where the ML model’s calibrated probability is at or above this value. Range: 0.01.0.
limit
number
default:"50"
Maximum number of signals to return per page.

Example

// Signals with ML scores above 80% — paginated
const signals = await fetch('/api/signals?min_ml_score=0.80&limit=50').then(r => r.json());

Wallets

GET /api/wallets

Returns tracked wallets with their computed alpha scores and quality metrics. The system builds and maintains a scored profile for every wallet it observes, updated on a rolling 30-minute cycle across up to 5,000 wallets per pass.

Query parameters

min_alpha
number
default:"0"
Filter to wallets with an alphaScore at or above this value. Range: 0100.
active_only
boolean
default:"false"
When true, returns only wallets that have made a trade within the current scoring window.

Example

// Tracked wallets with alpha score >= 70, active only
const wallets = await fetch('/api/wallets?min_alpha=70&active_only=true').then(r => r.json());

Tokens

GET /api/tokens

Returns token data including the current lifecycle state, risk score, bundle confidence, and creator risk score. Tokens remain tracked throughout their lifecycle on the bonding curve and after graduation.

Query parameters

graduated
boolean
Filter tokens by graduation status. true returns only graduated tokens. false returns only tokens still on the bonding curve. Omit to return all tokens.

Example

// Tokens still on the bonding curve
const tokens = await fetch('/api/tokens?graduated=false').then(r => r.json());

Stats

GET /api/stats

Returns a snapshot of current pipeline throughput and the active market regime. Useful for dashboards and health monitoring.

Response fields

regime
object
Active market regime snapshot, reclassified every 10 minutes.
signalsLast1h
number
Number of signals emitted in the last 60 minutes.
walletsTracked
number
Total number of wallets currently tracked with scoring profiles.
tokensActive
number
Number of tokens currently being monitored on the bonding curve.

Example

// Current pipeline stats and market regime
const stats = await fetch('/api/stats').then(r => r.json());
{
  "ws": {
    "connected": true,
    "eventsPerSec": 42,
    "totalEvents": 4320000,
    "currentSlot": 312450000
  },
  "signals": {
    "total": 84200,
    "last24h": 1240
  },
  "wallets": {
    "tracked": 2840,
    "scored": 1920,
    "bots": 340
  },
  "regime": {
    "state": "bull_normal",
    "confidence": 0.6
  },
  "models": {
    "loaded": 4,
    "scored": 81200,
    "fallbacks": 42
  },
  "uptime": 86400,
  "memMb": 312
}

Signal payload reference

Every signal event on the SSE feed carries a structured JSON payload. The top-level type field identifies the signal subtype, and all signal data is nested under data.
type
string
required
Signal subtype. One of: "signal", "genesis_signal", "anti_signal".
data
object
required
The full signal payload.

Full payload example

{
  "type": "signal",
  "data": {
    "tokenMint": "So11...",
    "wallet": "ABC1...",
    "action": "buy",
    "solAmount": 0.5,
    "buyRank": 4,
    "curvePct": 0.12,
    "curveSol": 8.3,
    "buysLast60s": 12,
    "buysLast300s": 34,
    "walletStats": {
      "alphaScore": 84,
      "graduationRate": 0.41,
      "winRate": 0.68,
      "captureEfficiency": 0.72
    },
    "tokenState": {
      "lifecycleState": "momentum",
      "riskScore": 18,
      "bundleConfidence": 0.12,
      "creatorRiskScore": 24
    }
  }
}

Signal quality guide

Not all signals carry the same conviction. The following criteria distinguish a high-quality signal from a marginal one. The more of these conditions a signal satisfies, the stronger the case for acting on it.
The best signals combine a high-scoring wallet entering early, rising buy velocity, a token in a favourable lifecycle state, and low adversarial risk across all three risk fields.
FieldHigh-quality indicatorWhat it means
walletStats.alphaScore≥ 75The wallet has a strong, consistent track record of early entries on winning tokens.
buyRank≤ 5The wallet entered very early — limited competition for price appreciation.
buysLast60sRising relative to buysLast300sBuy velocity is accelerating, suggesting growing market interest.
tokenState.riskScore≤ 25Low adversarial signal density on this token. Fewer red flags.
tokenState.bundleConfidence≤ 0.20Early buys appear organic rather than coordinated. Lower manipulation risk.
tokenState.lifecycleState"momentum" or "early_accumulation"Token is in a phase historically associated with upward price movement.
tokenState.creatorRiskScore≤ 30Creator has a history of legitimate launches without rug patterns.
An anti_signal for a token overrides all quality indicators. If an anti_signal arrives for a token you hold a position in, the recommended response is an immediate exit — regardless of how strong the original signal appeared.

Build docs developers (and LLMs) love