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.1.0.tar.gz (21.4 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.1.0-py3-none-any.whl (31.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: metpysdk-0.1.0.tar.gz
  • Upload date:
  • Size: 21.4 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.1.0.tar.gz
Algorithm Hash digest
SHA256 6577edea69eac0e207a6d022b16bfed5c740937d7ee14fe9d50bd61200a8161d
MD5 e82ddd709844aa0005ba86de161d72c1
BLAKE2b-256 07a932a724f621192c477a4deeffcc0749404b435d25281413ecd1ab66aa13e4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: metpysdk-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 31.7 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 511f46519148d1d6e594ffd236e0f5914a35f906010a095bb97c809befc9cbde
MD5 e7eeae5d99c872ac5c45dc95e9d3bff4
BLAKE2b-256 747112864e08d55dffd7585b8e32707b4c3739e0768e861b6b4c24804f9577e7

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