Skip to main content

Python Api for mempool.space

Project description

pymempool

codecov PyPi Version

Python wrapper and terminal dashboard for the mempool.space API.

Installation

PyPI:

pip install pymempool

From source:

git clone https://github.com/holgern/pymempool.git
cd pymempool
python -m pip install -e .

Quick Start

from pymempool import MempoolAPI, RecommendedFees

mp = MempoolAPI()

fees = RecommendedFees(mp.get_recommended_fees_precise())
print(fees.as_dict())

mempool = mp.get_mempool()
print(mempool["count"], mempool["vsize"])

projected_blocks = mp.get_mempool_blocks_fee()
print(projected_blocks[0]["medianFee"])

Best First Commands

pymempool overview
pymempool pressure
pymempool ladder
pymempool watch

CLI Commands

# One-screen mempool dashboard
pymempool overview --precise-fees --blocks 6

# Fee pressure across human-readable bands
pymempool pressure

# Decision-first projected block ladder
pymempool ladder --limit 8

# Legacy ASCII mempool blocks view
pymempool mempool-blocks --limit 4

# Live mempool dashboard
pymempool watch --rbf fullRbf

# Stream raw websocket events
pymempool stream --want stats --want mempool-blocks

For command details:

pymempool --help
pymempool overview --help

API Highlights

from pymempool import MempoolAPI, MempoolWebSocketClient

mp = MempoolAPI()

rounded = mp.get_recommended_fees()
precise = mp.get_recommended_fees_precise()
recent = mp.get_mempool_recent()
audit = mp.get_block_audit_summary("<block_hash>")

client = MempoolWebSocketClient(want_data=["stats", "mempool-blocks"])
print(client.build_subscription_payloads())

Rate Limiting

pymempool now treats HTTP 429 Too Many Requests as back-pressure instead of a generic fast retry. The client:

  • rate-limits itself before sending REST requests with conservative per-host defaults
  • honors integer Retry-After headers when present
  • applies exponential backoff with jitter when Retry-After is absent
  • keeps cooldown state per host so failover stays resilient without turning into rate-limit evasion
  • reuses short-lived cached snapshots for hot endpoints like fees, mempool summary, and projected blocks
  • prefers WebSocket flows for live dashboards so watch and stream do not depend on tight REST polling

You can tune the policy via MempoolAPI(...):

from pymempool import MempoolAPI

mp = MempoolAPI(
    rate_limit_per_sec=1.0,
    rate_limit_burst=5,
    respect_retry_after=True,
    enable_response_cache=True,
    cache_ttl_seconds=3.0,
)

Development

Install dev and test dependencies:

uv pip install -r requirements.txt -r requirements-test.txt

Common checks:

pytest
pre-commit run --show-diff-on-failure --color=always --all-files
mypy pymempool
python docs/make.py

Documentation

License

MIT

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

pymempool-0.3.0.tar.gz (57.4 kB view details)

Uploaded Source

Built Distribution

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

pymempool-0.3.0-py3-none-any.whl (39.4 kB view details)

Uploaded Python 3

File details

Details for the file pymempool-0.3.0.tar.gz.

File metadata

  • Download URL: pymempool-0.3.0.tar.gz
  • Upload date:
  • Size: 57.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for pymempool-0.3.0.tar.gz
Algorithm Hash digest
SHA256 ac1b8ae5a0fabee1f0839f5c7e5e5726bde3e2641836d1d0116d482ee33926d0
MD5 50a9e8bd2d3f1468706c4b2980e9868f
BLAKE2b-256 1b3c96a63ad37cc277000d8356b5369b7a13fdaf1017063bdf92ae29dae75af9

See more details on using hashes here.

File details

Details for the file pymempool-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: pymempool-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 39.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for pymempool-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6298b90bc28b8b3392c65a322e3e2ac9c3618cb541eb3d3dbd2566caf2c5a8d6
MD5 0e1afaafc691037f669be30a7ff2af63
BLAKE2b-256 d7de1411f930db1e6d2429a9c37545aa2afa3dc22c0914209f69f57d9acb3867

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