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 iterationquery.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
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.4.tar.gz
(23.7 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.4-py3-none-any.whl
(30.7 kB
view details)
File details
Details for the file sqd_py-0.1.4.tar.gz.
File metadata
- Download URL: sqd_py-0.1.4.tar.gz
- Upload date:
- Size: 23.7 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 |
590ce161dced4c244d8b86c81e955cb338d20f159a6b888bfbcd7ea83f9d1dc8
|
|
| MD5 |
ca00209bb783c7375e9edb161b867196
|
|
| BLAKE2b-256 |
afcf730a70e6e6a8e55ab8fb802bdf7668047f44bd00a4cf7770392b471b52fc
|
File details
Details for the file sqd_py-0.1.4-py3-none-any.whl.
File metadata
- Download URL: sqd_py-0.1.4-py3-none-any.whl
- Upload date:
- Size: 30.7 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 |
5e301106c28882d9ba6f7a49aeb58f688fee9e9402db716a3bddc743faaacad7
|
|
| MD5 |
45c11568549d5850cf6d733db3a67b2c
|
|
| BLAKE2b-256 |
dd2f830302741a7e5a27a9beb8c61e21d0a807b0c47034564a52496b7b5d04a8
|