Skip to main content

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

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.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.1

2 files

0.2.0

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

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