API Reference
SQD
sqd.SQD(*, dataset, portal_url='https://portal.sqd.dev', stream_type='realtime')
SQD(
*,
dataset: HyperliquidDataset
| Literal["hyperliquid-fills"],
portal_url: str = "https://portal.sqd.dev",
stream_type: Literal[
"finalized", "realtime"
] = "realtime",
) -> HyperliquidQuery
SQD(
*,
dataset: SolanaDataset | Literal["solana-mainnet"],
portal_url: str = "https://portal.sqd.dev",
stream_type: Literal[
"finalized", "realtime"
] = "realtime",
) -> SolanaQuery
SQD(
*,
dataset: EvmDataset | str,
portal_url: str = "https://portal.sqd.dev",
stream_type: Literal[
"finalized", "realtime"
] = "realtime",
) -> EVMQuery
Create a query builder for the specified dataset.
This is the main entry point for building SQD queries.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dataset
|
Dataset | str
|
Dataset to query (e.g., 'ethereum-mainnet', 'arbitrum-one', 'solana-mainnet') |
required |
portal_url
|
str
|
SQD portal URL |
'https://portal.sqd.dev'
|
stream_type
|
Literal['finalized', 'realtime']
|
Type of stream ('finalized' or 'realtime') |
'realtime'
|
Returns:
| Type | Description |
|---|---|
EVMQuery | SolanaQuery | HyperliquidQuery
|
EVMQuery for EVM chains or SolanaQuery for Solana |
Example
sqd = SQD(dataset='ethereum-mainnet')
query = sqd.get_transactions(from_block=17_000_000, address='0x...')
async for tx in query:
print(tx)
sqd.Dataset
Bases: StrEnum
EVM
sqd.query.evm.decode
EVM decoding utilities for common events and data types.
DecodedTransfer
Bases: TypedDict
Decoded ERC-20/ERC-721 Transfer event.
decode_transfer(log)
Decode an ERC-20/ERC-721 Transfer event log.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
log
|
dict[str, object]
|
Raw log data from SQD API |
required |
Returns:
| Type | Description |
|---|---|
DecodedTransfer
|
DecodedTransfer with parsed addresses and value |
Example
async for block in query:
for log in block.get("logs", []):
transfer = decode_transfer(log)
print(f"{transfer['from_address']} -> {transfer['to_address']}: {transfer['value']}")
format_token_amount(value, decimals)
Format a token amount with decimals for display.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
int
|
Raw token amount (in smallest units) |
required |
decimals
|
int
|
Token decimals (default: 18 for most ERC-20 tokens) |
required |
Returns:
| Type | Description |
|---|---|
str
|
Formatted string with decimal point |
Example
>>> format_token_amount(1000000000000000000, 18)
'1.0'
>>> format_token_amount(1500000, 6) # USDC
'1.5'
Utilities
sqd.setup_logging(level=logging.INFO)
Configure logging for the SQD client.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
level
|
int
|
Logging level (default: logging.INFO) |
INFO
|
Example
import sqd
sqd.setup_logging() # Enable INFO level logging with colors
sqd.setup_logging(logging.DEBUG) # Enable DEBUG level logging