Lunar Shadow Labs

New Meteora DLMM pools in real time

Meteora DLMM pools are created by the program's LbPairCreate event. Our feed decodes it into a pool_create message as soon as we receive the transaction, then streams the pool's liquidity changes and swaps in the same JSON shape.

Market data only. Nothing here is a recommendation to trade any pool or token.

Subscribe

Ask for DLMM pool creations, liquidity and swaps, and keep track of the pools you have seen created:

import asyncio, json, os, websockets   # pip install websockets

URL = "wss://feed.lunarshadowlabs.com/ws?venues=meteora_dlmm&kinds=pool_create,liquidity,swap"
HEADERS = {"Authorization": f"Bearer {os.environ['LSL_KEY']}"}

async def main():
    new_pools = set()
    async with websockets.connect(URL, additional_headers=HEADERS, max_size=None) as ws:
        async for raw in ws:
            m = json.loads(raw)
            if m["kind"] == "pool_create":
                new_pools.add(m["pool"])
                print("new DLMM pool", m["pool"], m["base_mint"], m["quote_mint"], "bin_step", m["x"]["bin_step"])
            elif m["kind"] in ("liquidity", "swap") and m["pool"] in new_pools:
                print(m["kind"], m["pool"], m["base_amount"], m["quote_amount"])

asyncio.run(main())

Filters combine: kind and venue and (if given) a watchlist. For production use, add the resume and reconnect loop from the docs.

What a new pool looks like

{
  "v": 1,
  "seq": 184395,
  "kind": "pool_create",
  "venue": "meteora_dlmm",
  "keys": [
    "GenT72DYvcRMYPa56xparbTpE9FCxUwP2vxzENBpM1PF",
    "So11111111111111111111111111111111111111112",
    "4GCoQtVggsLcK39N9G6tBZZW6qFVRzT9DbYecRWwDG31",
    null
  ],
  "stage": "executed",
  "source": "geyser",
  "commitment": "processed",
  "slot": 454292856,
  "sig": "2vuHTGLxqosqAEs9bVDE3m3WcyGNhmvVYB7rFhMcFWnFGe8VCpptWsrv97sDzccNR9JxZf4c7tuehPY7mY4xQM3R",
  "ix": 0,
  "inner": 6,
  "t_ingest_us": 1791394899628833,
  "t_emit_us": 1791394899628882,
  "via": null,
  "pool": "4GCoQtVggsLcK39N9G6tBZZW6qFVRzT9DbYecRWwDG31",
  "creator": null,
  "base_mint": "GenT72DYvcRMYPa56xparbTpE9FCxUwP2vxzENBpM1PF",
  "quote_mint": "So11111111111111111111111111111111111111112",
  "base_decimals": 6,
  "quote_decimals": 9,
  "base_amount": null,
  "quote_amount": null,
  "lp_mint": null,
  "base_flags": null,
  "quote_flags": null,
  "x": {
    "bin_step": "2",
    "quote_rule": "priority"
  }
}

Captured from our live feed on 2026-10-07.

Liquidity and swaps on DLMM

{
  "v": 1,
  "seq": 13611,
  "kind": "liquidity",
  "venue": "meteora_dlmm",
  "keys": [
    "BPxxfRCXkUVhig4HS1Lh7kZqV6SPJhzfEk4x6fVBjPCy",
    "So11111111111111111111111111111111111111112",
    "7o3bfXjeDL6Wzuwk1VR8nvEwSJTA2hHJhBgUA95nFDDa",
    "AH57PudrXHPu19fz5B6YHknCLdqJzG3vZMz4FRWE7WHT"
  ],
  "stage": "executed",
  "source": "geyser",
  "commitment": "processed",
  "slot": 454291681,
  "sig": "36UnK8kB4T7jHCUKuEamfbVmkStEbt4sfXLRb66juqYkczBqFSJK8YCxFa4Smi6PC4goikaqY8jB1TmdsiYNSZMc",
  "ix": 3,
  "inner": 5,
  "t_ingest_us": 1791394580169741,
  "t_emit_us": 1791394580169783,
  "via": "FqGg2Y1FNxMiGd51Q6UETixQWkF5fB92MysbYogRJb3P",
  "pool": "7o3bfXjeDL6Wzuwk1VR8nvEwSJTA2hHJhBgUA95nFDDa",
  "user": "AH57PudrXHPu19fz5B6YHknCLdqJzG3vZMz4FRWE7WHT",
  "add": true,
  "base_mint": "BPxxfRCXkUVhig4HS1Lh7kZqV6SPJhzfEk4x6fVBjPCy",
  "quote_mint": "So11111111111111111111111111111111111111112",
  "base_amount": "106585339858",
  "quote_amount": "1352205381",
  "lp_amount": null
}

Captured from our live feed on 2026-10-07.

{
  "v": 1,
  "seq": 13665,
  "kind": "swap",
  "venue": "meteora_dlmm",
  "keys": [
    "DEW9dSN6QpWyNthphCpMmAbZP1Q4cEKR9xQXAri98WDP",
    "So11111111111111111111111111111111111111112",
    "Eb7Z4ZxMTRcuYZCjd218hYJR1FSaeTWQddqHanfPF8B7",
    "CkcQZB7bqFmT346jyeYHoP4jjWSwuW5DC8th7b4ufTwX"
  ],
  "stage": "executed",
  "source": "geyser",
  "commitment": "processed",
  "slot": 454291681,
  "sig": "3wJD1GoaMiTSEt5234es8AfWEsCrf3n8fFgNZGo6kqkeUxFh3HEJGnNuhz7W532JDqYQRCQGM3GhtRDxFgLopjhw",
  "ix": 2,
  "inner": 9,
  "t_ingest_us": 1791394580305780,
  "t_emit_us": 1791394580305860,
  "via": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4",
  "pool": "Eb7Z4ZxMTRcuYZCjd218hYJR1FSaeTWQddqHanfPF8B7",
  "user": "CkcQZB7bqFmT346jyeYHoP4jjWSwuW5DC8th7b4ufTwX",
  "base_mint": "DEW9dSN6QpWyNthphCpMmAbZP1Q4cEKR9xQXAri98WDP",
  "quote_mint": "So11111111111111111111111111111111111111112",
  "is_buy": false,
  "base_amount": "410132594",
  "quote_amount": "88300638",
  "base_decimals": 6,
  "quote_decimals": 9,
  "price": 0.00021529778245325218,
  "fees": {
    "lp": "1634024",
    "protocol": "181558",
    "host": "0",
    "limit_order": "0"
  },
  "partial": false,
  "derived": false,
  "base_flags": {
    "program": "token2022",
    "decimals": 6,
    "supply": "996403064303570",
    "mint_authority": null,
    "freeze_authority": null,
    "transfer_fee": {
      "older": {
        "bps": 100,
        "max": "1000000000000000",
        "epoch": 1039
      },
      "newer": {
        "bps": 100,
        "max": "1000000000000000",
        "epoch": 1039
      },
      "authority": "5KXDF6QnqhBj72hDtJNkkpFaQVUfbFXNybMsp3DiK6tD"
    },
    "metadata_pointer": "DEW9dSN6QpWyNthphCpMmAbZP1Q4cEKR9xQXAri98WDP",
    "extensions": [
      18,
      1,
      19
    ]
  },
  "quote_flags": null,
  "x": {
    "fee_bps": "4713612",
    "start_bin": "-305",
    "end_bin": "-306",
    "amount_left": "0",
    "fees_on_input": true,
    "quote_rule": "priority"
  }
}

Captured from our live feed on 2026-10-07.

Other Meteora pools

The same pool_create, liquidity and swap messages come from Meteora's Dynamic AMM (meteora_damm_v1) and DAMM v2 (meteora_damm_v2); add them to venues. Tokens graduating from Meteora's Dynamic Bonding Curve arrive as migration events into DAMM pools (see migrations).

Try the feed

One WebSocket, 12 Solana venues, one flat price.

Start free trial Read the docs

3-day free trial, then $49/month per license plus applicable tax, charged automatically every month until you cancel. Cancel online any time before the trial ends and you pay nothing. Starting a trial means you agree to the Terms. Market data only, no signals or advice.

← All guides