Lightweight Python client for querying blockchain data from SQD Network
Project description
sqd_py
A lightweight Python client for querying blockchain data from the SQD Network. Supports EVM chains (Ethereum, Binance, etc.) and Solana.
Features
- 🚀 Async-first - Built on
aiohttpfor efficient concurrent data fetching - 🔗 Multi-chain support - Query Ethereum, Binance, Solana and more
- 📦 Type-safe - Full type hints with Pydantic models
- 🎯 Flexible queries - Filter transactions, logs, and more with a fluent API
Installation
pip install sqd_py
Or with uv:
uv add sqd_py
Quick Start
import asyncio
from sqd import SQD, Dataset, EvmFields
async def main():
# Create client for Ethereum mainnet
sqd = SQD(dataset=Dataset.ETHEREUM, portal_url="https://portal.sqd.dev")
# Query transactions
query = sqd.get_transactions(
address="0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
from_block=17_000_000,
to_block=17_000_010,
include_fields=[
EvmFields.TransactionField.hash,
EvmFields.TransactionField.from_,
EvmFields.TransactionField.gasUsed,
],
)
# Stream results asynchronously
async for transaction in query:
print(transaction)
if __name__ == "__main__":
asyncio.run(main())
Querying Logs
from sqd import SQD, Dataset, EvmFields
sqd = SQD(dataset=Dataset.ETHEREUM)
# Query ERC-20 Transfer events
query = sqd.get_logs(
address="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", # USDC
from_block=17_000_000,
to_block=17_000_100,
topic0="0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", # Transfer
include_fields=[
EvmFields.LogField.logIndex,
EvmFields.LogField.transactionHash,
],
)
Chaining Queries
# Build complex queries by chaining
query = sqd.get_transactions(
address="0x...",
from_block=17_000_000,
to_block=17_000_010,
).get_logs(
address="0x...",
topic0="0x...",
)
async for data in query:
print(data)
Solana Support
from sqd import SQD, Dataset, SolanaFields
sqd = SQD(dataset=Dataset.SOLANA)
# Query Solana data similarly...
Supported Datasets
| Chain | Dataset Enum |
|---|---|
| Ethereum | Dataset.ETHEREUM |
| Binance Smart Chain | Dataset.BINANCE |
| Solana | Dataset.SOLANA |
You can also use string identifiers like "ethereum-mainnet", "binance-mainnet", etc.
API Reference
SQD(dataset, portal_url, stream_type)
Main entry point for creating queries.
| Parameter | Type | Default | Description |
|---|---|---|---|
dataset |
Dataset | str |
required | The blockchain dataset to query |
portal_url |
str |
"https://portal.sqd.dev" |
SQD portal URL |
stream_type |
"finalized" | "realtime" |
"realtime" |
Data stream type |
Query Methods
get_transactions(address, from_block, to_block, include_fields)- Query transactionsget_logs(address, from_block, to_block, topic0, include_fields)- Query event logs
Requirements
- Python 3.10+
- aiohttp >= 3.9.0
License
MIT License - see LICENSE for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Links
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
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
File details
Details for the file sqd_py-0.1.0.tar.gz.
File metadata
- Download URL: sqd_py-0.1.0.tar.gz
- Upload date:
- Size: 23.8 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 |
daa7ddab3ae9697223881f91bfbfe6dffff45e7cc843aeedfe4a3339ef935bae
|
|
| MD5 |
6dc26fd8798ef99c0055c4a856a49f7d
|
|
| BLAKE2b-256 |
aa3ee3eb4c31b28f2e5fa8abc43a79b4d0067cc8a8327e85ad0f1ef1e865c2f1
|
File details
Details for the file sqd_py-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sqd_py-0.1.0-py3-none-any.whl
- Upload date:
- Size: 30.8 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 |
9b4f2d7c9dbdedb85fac619b4cdd24a3b26b8de638c58b5fe601b83c868e13a1
|
|
| MD5 |
2201c42805763b4d3312f4c82f5768e7
|
|
| BLAKE2b-256 |
e6f21166e7934c227b3522a4d8c0fc09f8b956180cd97d7a5fafeb03d9c68eba
|