Skip to main content

Lightweight Python client for querying blockchain data from SQD Network

Project description

sqd_py

Python client for querying blockchain data from SQD Network.

Installation

pip install sqd_py

Quick Start

import asyncio
from sqd import SQD, Dataset, EvmFields

async def main():
    sqd = SQD(dataset=Dataset.ETHEREUM)
    
    query = sqd.get_transactions(
        from_block=17_000_000,
        to_block=17_000_010,
        address="0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
    )
    
    async for block in query:
        for tx in block.get("transactions", []):
            print(tx["hash"])

asyncio.run(main())

Usage

Querying Logs

query = sqd.get_logs(
    from_block=17_000_000,
    to_block=17_000_100,
    address="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
    topic0="0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
)

async for block in query:
    for log in block.get("logs", []):
        print(log)

ERC-20 Transfers

query = sqd.get_transfers(
    from_block=17_000_000,
    to_block=17_100_000,
    contract_address="0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
)

async for block in query.with_progress(shards=15):
    for log in block.get("logs", []):
        print(log)

Selecting Fields

query = sqd.get_transactions(
    from_block=17_000_000,
    to_block=17_000_010,
    include_fields=[
        EvmFields.TransactionField.hash,
        EvmFields.TransactionField.from_,
        EvmFields.TransactionField.gasUsed,
    ],
)

Chaining Queries

query = sqd.get_transactions(
    from_block=17_000_000,
    to_block=17_000_010,
    address="0x...",
).get_logs(
    address="0x...",
    topic0="0x...",
)

async for block in query:
    # block contains both transactions and logs
    pass

Progress Bar

async for block in query.with_progress(shards=15):
    pass

The shards parameter controls parallel fetching for historical data.

Supported Datasets

Chain Dataset
Ethereum Dataset.ETHEREUM or "ethereum-mainnet"
Binance Smart Chain Dataset.BINANCE or "binance-mainnet"
Solana Dataset.SOLANA or "solana-mainnet"

API

SQD

SQD(
    dataset: Dataset | str,
    portal_url: str = "https://portal.sqd.dev",
    stream_type: Literal["finalized", "realtime"] = "realtime",
)

Query Methods

EVM:

  • get_blocks(from_block, to_block, ...)
  • get_transactions(from_block, address, to_block, ...)
  • get_logs(from_block, address, topic0, to_block, ...)
  • get_transfers(from_block, contract_address, ...)
  • get_traces(from_block, to_block, ...)
  • get_state_diffs(from_block, to_block, ...)

Iteration

  • async for block in query — default iteration
  • query.with_progress(shards=N) — with progress bar and parallel fetching

Requirements

  • Python 3.10+
  • aiohttp >= 3.9.0
  • tqdm >= 4.67.1
  • ujson >= 5.11.0

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

sqd_py-0.1.2.tar.gz (23.5 kB view details)

Uploaded Source

Built Distribution

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

sqd_py-0.1.2-py3-none-any.whl (30.4 kB view details)

Uploaded Python 3

File details

Details for the file sqd_py-0.1.2.tar.gz.

File metadata

  • Download URL: sqd_py-0.1.2.tar.gz
  • Upload date:
  • Size: 23.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for sqd_py-0.1.2.tar.gz
Algorithm Hash digest
SHA256 9142d1c3875366c6a11d878742e99a3e9c9ed38a8e723d10881b1227832e5d91
MD5 a7f921097b16fc9af422d625ae8cf183
BLAKE2b-256 c557ed04f3b229b9293bdb5cacf62cf30073d6164efcb82ae6cd0ad113b646a8

See more details on using hashes here.

File details

Details for the file sqd_py-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: sqd_py-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 30.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for sqd_py-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a751eb4161aac13d538d7c007f47c13e2e40805ad0f033f85e7554fb29dce00a
MD5 a54cbe5eb6e251c3f0e683d5836f400b
BLAKE2b-256 00d2b62a56085703bfce9064a7b08b70d11d9eaacbcacde825e526e74ec12cac

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