Skip to main content

METEORA DLMM SDK

Project description

metpysdk

metpysdk is a Python SDK for interacting with Meteora DLMM (Dynamic Liquidity Market Maker) on Solana.

It provides high-level, async-friendly primitives for:

  • querying DLMM pairs
  • inspecting bins and liquidity
  • reading positions and rewards
  • parsing on-chain accounts safely and accurately

The SDK is designed as a library, not a script:

  • clean public API
  • explicit versioning
  • byte-accurate account parsing
  • minimal, modern dependency set

⚠️ This project is in active development (0.x).
APIs may change until 1.0.0.


Features

  • 🚀 Async-first API (asyncio)
  • 🔍 Accurate parsing of DLMM on-chain accounts
  • 🧱 Construct-based binary layouts (no abandoned deps)
  • 🧠 Clear separation between public API and internals
  • 🛠️ Designed for bots, analytics, and backend services

Installation

Requirements

  • Python 3.9+
  • Poetry (recommended) or pip

With Poetry (recommended)

poetry add metpysdk

With pip

pip install metpysdk

Quick Example

import asyncio

from metpysdk import DLMMClient
from solders.pubkey import Pubkey


async def main():
    client = DLMMClient()

    lb_pair = Pubkey.from_string(
        "INSERT_LB_PAIR_ADDRESS_HERE"
    )

    active_bin = await client.get_active_bin(lb_pair)

    print("Active bin ID:", active_bin.bin_id)
    print("Price:", active_bin.price)


asyncio.run(main())

Project Structure

metpysdk/
├── accounts/     # Parsed on-chain account models
├── dlmm/         # Core DLMM client logic
├── helpers/      # High-level helpers and combinators
├── layouts/      # Binary layouts (construct-based)
├── utils/        # RPC, filters, derivations, constants
└── __init__.py   # Public API surface

Only symbols re-exported from package-level modules are considered public API.
Everything else may change without notice until 1.0.0.

Public API

The main entry point is:

from metpysdk import DLMMClient

Additional data models and enums are exposed via:

from metpysdk.accounts import (
    Position,
    ActiveBin,
    StrategyParameters,
)

Deep imports from internal modules are not supported.

Development

Setup

git clone https://github.com/yourname/metpysdk.git
cd metpysdk
poetry install

Poetry will create a local .venv/ automatically.

Linting

poetry run ruff check src/metpysdk
poetry run pylint src/metpysdk

Tests

poetry run pytest

Versioning

This project follows semantic versioning:

0.x.y — unstable, breaking changes allowed
1.0.0 — first stable API
>=1.0.0 — no breaking changes without major bump

License

MIT License © 2025 Ivan Bezborodov

See LICENSE for details.

Disclaimer

This SDK is provided as-is, without warranties.
Interacting with on-chain programs involves financial risk.
Always validate results independently before using in production.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

metpysdk-0.2.1.tar.gz (21.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

metpysdk-0.2.1-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

File details

Details for the file metpysdk-0.2.1.tar.gz.

File metadata

  • Download URL: metpysdk-0.2.1.tar.gz
  • Upload date:
  • Size: 21.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.11.9 Windows/10

File hashes

Hashes for metpysdk-0.2.1.tar.gz
Algorithm Hash digest
SHA256 a736a6d9ed95debbf618e2eb337da2271173a1574f12d0b0eb439a71ae5e4101
MD5 745546af1fb7a4bc44450d6d335fbe00
BLAKE2b-256 989692277acf09e0c9afd9f2778a69cfeb6756cd842b776ea475f436e00048d0

See more details on using hashes here.

File details

Details for the file metpysdk-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: metpysdk-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 32.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.11.9 Windows/10

File hashes

Hashes for metpysdk-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 445fc8bda7e987366f1851784772691e12d0a3739ec7865ba409176faf5a683d
MD5 c387d5f4366976f153374fabe284f23b
BLAKE2b-256 d9a5c0a326f2c7351806c447202ef233c2e7b86b1ef24f282418bbfa45c0cae5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page