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():
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():
pass
The shards parameter enables an experimental prefetch window for historical data
(values > 1 use a two-range prefetch; higher values are clamped and may be slower).
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 iterationquery.with_progress(shards=N)— with progress bar and experimental prefetching
Requirements
- Python 3.10+
- aiohttp >= 3.9.0
- tqdm >= 4.67.1
- ujson >= 5.11.0
License
MIT
Project details
Release history Release notifications | RSS feed
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.8.tar.gz
(24.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
sqd_py-0.1.8-py3-none-any.whl
(31.9 kB
view details)
File details
Details for the file sqd_py-0.1.8.tar.gz.
File metadata
- Download URL: sqd_py-0.1.8.tar.gz
- Upload date:
- Size: 24.9 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e19a717c82dcca7d793bd6359f27edb158d25ddf567116a0b4d25d25f7d7edc
|
|
| MD5 |
fa913c42996dacb05a939ee16e4529d9
|
|
| BLAKE2b-256 |
bd6ee37a61666050ef246d3aad0d06a9cdbf48ac4084eee7a7a160bf15c03000
|
File details
Details for the file sqd_py-0.1.8-py3-none-any.whl.
File metadata
- Download URL: sqd_py-0.1.8-py3-none-any.whl
- Upload date:
- Size: 31.9 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee5be8bcc819af21d6bb9e08667bf9f9e2b44b23fd917312c5a69c8dadcd4ddd
|
|
| MD5 |
f3c528bb11103ff86812ca3d0d343269
|
|
| BLAKE2b-256 |
d4394416d6632e6dfc2aae5c08a30f561a99b9da011e13c5528fb89180692cbf
|