Skip to content

Response Schema

cyhole.solscan.v2.schema

GetTransactionActionsActivityData module-attribute

GetTransactionActionsActivityData: TypeAlias = (
    GetTransactionActionsActivityDataSplMintBurn
    | GetTransactionActionsActivityDataUnitLimit
    | GetTransactionActionsActivityDataUnitPrice
    | GetTransactionActionsActivityDataSplCommon
    | GetTransactionActionsActivityDataTokenSwap
    | GetTransactionActionsActivityDataCreateAccount
)

SolscanBaseResponse

Bases: BaseModel

Model used to identify the base response of the Solscan API.

success instance-attribute

success: bool

SolscanError

Bases: BaseModel

code instance-attribute

code: int

message instance-attribute

message: str

SolscanHTTPError

Bases: SolscanBaseResponse

Solscan API returns an error schema on failed request that can be used to investigated the error. This schema is used to strandardise the HTTPErrors.

errors instance-attribute

errors: SolscanError

SolscanTransferParam

Bases: BaseModel

Model used to identify the parameters of the Solscan transfer (Account/Token).

activity_type class-attribute instance-attribute

activity_type: str | list[str] | None = Field(
    default=None, serialization_alias="activity_type[]"
)

Activity type of the account transfer. The supported types are available on SolscanActivityTransferType.

from_address class-attribute instance-attribute

from_address: str | None = Field(
    default=None, serialization_alias="from"
)

From address to filter.

to_address class-attribute instance-attribute

to_address: str | None = Field(
    default=None, serialization_alias="to"
)

To address to filter.

amount_range class-attribute instance-attribute

amount_range: tuple[int, int] | None = Field(
    default=None, serialization_alias="amount[]"
)

Amount range to filter for the account transfers (from, to).

time_range class-attribute instance-attribute

time_range: tuple[datetime, datetime] | None = Field(
    default=None, serialization_alias="block_time[]"
)

Block times to filter by (from, to).

exclude_amount_zero class-attribute instance-attribute

exclude_amount_zero: bool | None = None

Exclude transfers with zero amount.

page class-attribute instance-attribute

page: int = Field(default=1, ge=1)

Page number to get the account transfers.

page_size class-attribute instance-attribute

page_size: int = Field(
    default=SolscanPageSizeType.SIZE_10.value
)

Number of account transfers per page. The supported types are available on SolscanPageSizeType.

validate_activity_type classmethod

validate_activity_type(
    value: list[str] | str | None,
) -> str | list[str] | None
Source code in src/cyhole/solscan/v2/schema.py
76
77
78
79
80
81
82
83
84
@field_validator("activity_type")
@classmethod
def validate_activity_type(cls, value: list[str] | str | None) -> str | list[str] | None:
    if isinstance(value, str):
        SolscanActivityTransferType.check(value)
    elif isinstance(value, list):
        for item in value:
            SolscanActivityTransferType.check(item)
    return value

validate_page_size classmethod

validate_page_size(value: int) -> int
Source code in src/cyhole/solscan/v2/schema.py
86
87
88
89
90
@field_validator("page_size")
@classmethod
def validate_page_size(cls, value: int) -> int:
    SolscanPageSizeType.check(value)
    return value

validate_amount_range classmethod

validate_amount_range(
    value: tuple[int, int] | None,
) -> tuple[int, int] | None
Source code in src/cyhole/solscan/v2/schema.py
92
93
94
95
96
97
@field_validator("amount_range")
@classmethod
def validate_amount_range(cls, value: tuple[int, int] | None) -> tuple[int, int] | None:
    if value and value[0] > value[1]:
        raise SolscanInvalidAmountRange(f"Invalid amount range: {value}")
    return value

validate_time_range classmethod

validate_time_range(
    value: tuple[datetime, datetime] | None,
) -> tuple[datetime, datetime] | None
Source code in src/cyhole/solscan/v2/schema.py
 99
100
101
102
103
104
@field_validator("time_range")
@classmethod
def validate_time_range(cls, value: tuple[datetime, datetime] | None) -> tuple[datetime, datetime] | None:
    if value and value[0] > value[1]:
        raise SolscanInvalidTimeRange(f"Invalid time range: {value}")
    return value

serialize_time_range classmethod

serialize_time_range(
    value: tuple[datetime, datetime] | None,
) -> tuple[int, int] | None
Source code in src/cyhole/solscan/v2/schema.py
107
108
109
110
111
112
@field_serializer("time_range")
@classmethod
def serialize_time_range(cls, value: tuple[datetime, datetime] | None) -> tuple[int, int] | None:
    if value:
        return (int(value[0].timestamp()), int(value[1].timestamp()))
    return

serialize_exclude_amount_zero classmethod

serialize_exclude_amount_zero(
    value: bool | None,
) -> str | None
Source code in src/cyhole/solscan/v2/schema.py
114
115
116
117
118
119
@field_serializer("exclude_amount_zero")
@classmethod
def serialize_exclude_amount_zero(cls, value: bool | None) -> str | None:
    if value is not None:
        return "true" if value else "false"
    return

SolscanTransferData

Bases: BaseModel

Model used to parse the data of the Solscan transfer (Account/Token).

block_id instance-attribute

block_id: int

transaction_id class-attribute instance-attribute

transaction_id: str = Field(alias='trans_id')

block_time_unix_utc class-attribute instance-attribute

block_time_unix_utc: int = Field(alias='block_time')

activity_type instance-attribute

activity_type: str

from_address instance-attribute

from_address: str

to_address instance-attribute

to_address: str

token_address instance-attribute

token_address: str

token_decimals instance-attribute

token_decimals: int

amount instance-attribute

amount: int

time instance-attribute

time: datetime

SolscanDefiActivitiesParam

Bases: BaseModel

Model used to identify the parameters of the Solscan defi activities (Account/Token).

activity_type class-attribute instance-attribute

activity_type: str | list[str] | None = Field(
    default=None, serialization_alias="activity_type[]"
)

Activity type of the account defi activities. The supported types are available on SolscanActivityDefiType.

from_address class-attribute instance-attribute

from_address: str | None = Field(
    default=None, serialization_alias="from"
)

From address to filter.

platform_address class-attribute instance-attribute

platform_address: str | list[str] | None = Field(
    default=None, serialization_alias="platform[]"
)

Platform addresses to filter.

source_address class-attribute instance-attribute

source_address: str | list[str] | None = Field(
    default=None, serialization_alias="source[]"
)

Source addresses to filter.

time_range class-attribute instance-attribute

time_range: tuple[datetime, datetime] | None = Field(
    default=None, serialization_alias="block_time[]"
)

Block times to filter by (from, to).

page class-attribute instance-attribute

page: int = Field(default=1, ge=1)

Page number to get the account transfers.

page_size class-attribute instance-attribute

page_size: int = Field(
    default=SolscanPageSizeType.SIZE_10.value
)

Number of account defi activities per page. The supported types are available on SolscanPageSizeType.

validate_activity_type classmethod

validate_activity_type(
    value: list[str] | str | None,
) -> str | list[str] | None
Source code in src/cyhole/solscan/v2/schema.py
168
169
170
171
172
173
174
175
176
@field_validator("activity_type")
@classmethod
def validate_activity_type(cls, value: list[str] | str | None) -> str | list[str] | None:
    if isinstance(value, str):
        SolscanActivityDefiType.check(value)
    elif isinstance(value, list):
        for item in value:
            SolscanActivityDefiType.check(item)
    return value

validate_page_size classmethod

validate_page_size(value: int) -> int
Source code in src/cyhole/solscan/v2/schema.py
178
179
180
181
182
@field_validator("page_size")
@classmethod
def validate_page_size(cls, value: int) -> int:
    SolscanPageSizeType.check(value)
    return value

validate_time_range classmethod

validate_time_range(
    value: tuple[datetime, datetime] | None,
) -> tuple[datetime, datetime] | None
Source code in src/cyhole/solscan/v2/schema.py
184
185
186
187
188
189
@field_validator("time_range")
@classmethod
def validate_time_range(cls, value: tuple[datetime, datetime] | None) -> tuple[datetime, datetime] | None:
    if value and value[0] > value[1]:
        raise SolscanInvalidTimeRange(f"Invalid time range: {value}")
    return value

serialize_time_range classmethod

serialize_time_range(
    value: tuple[datetime, datetime] | None,
) -> tuple[int, int] | None
Source code in src/cyhole/solscan/v2/schema.py
191
192
193
194
195
196
@field_serializer("time_range")
@classmethod
def serialize_time_range(cls, value: tuple[datetime, datetime] | None) -> tuple[int, int] | None:
    if value:
        return (int(value[0].timestamp()), int(value[1].timestamp()))
    return

SolscanDefiActivitiesChildRoute

Bases: BaseModel

token_1 class-attribute instance-attribute

token_1: str = Field(alias='token1')

token_1_decimals class-attribute instance-attribute

token_1_decimals: int = Field(alias='token1_decimals')

amount_1 class-attribute instance-attribute

amount_1: int = Field(alias='amount1')

token_2 class-attribute instance-attribute

token_2: str | None = Field(default=None, alias='token2')

token_2_decimals class-attribute instance-attribute

token_2_decimals: int | None = Field(
    default=None, alias="token2_decimals"
)

amount_2 class-attribute instance-attribute

amount_2: int | None = Field(default=None, alias='amount2')

SolscanDefiActivitiesRoute

Bases: SolscanDefiActivitiesChildRoute

child_routes class-attribute instance-attribute

child_routes: (
    list[SolscanDefiActivitiesChildRoute] | None
) = None

SolscanDefiActivitiesData

Bases: BaseModel

Model used to parse the data of the Solscan defi activities (Account/Token).

block_id instance-attribute

block_id: int

transaction_id class-attribute instance-attribute

transaction_id: str = Field(alias='trans_id')

block_time_unix_utc class-attribute instance-attribute

block_time_unix_utc: int = Field(alias='block_time')

activity_type instance-attribute

activity_type: str

from_address instance-attribute

from_address: str

source_addresses class-attribute instance-attribute

source_addresses: list[str] = Field(alias='sources')

platform_address class-attribute instance-attribute

platform_address: str = Field(alias='platform')

routes class-attribute instance-attribute

routes: list[SolscanDefiActivitiesRoute] | None = None

time instance-attribute

time: datetime

GetAccountTransferParam

Bases: SolscanTransferParam

Model used to identify the parameters of the GET Account Transfer of V2 API endpoint.

token_account class-attribute instance-attribute

token_account: str | None = None

Token account address to filter.

token_address class-attribute instance-attribute

token_address: str | None = Field(
    default=None, serialization_alias="token"
)

Token address to filter.

flow_direction class-attribute instance-attribute

flow_direction: str | None = Field(
    default=None, serialization_alias="flow"
)

Flow direction to filter. The supported types are available on SolscanFlowType.

validate_flow_direction classmethod

validate_flow_direction(value: str | None) -> str | None
Source code in src/cyhole/solscan/v2/schema.py
244
245
246
247
248
249
@field_validator("flow_direction")
@classmethod
def validate_flow_direction(cls, value: str | None) -> str | None:
    if value:
        SolscanFlowType.check(value)
    return value

GetAccountTransferData

Bases: SolscanTransferData

Model used to parse the data of the GET Account Transfer of V2 API endpoint.

flow_type class-attribute instance-attribute

flow_type: str = Field(alias='flow')

GetAccountTransferResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Account Transfer of V2 API endpoint.

data instance-attribute

data: list[GetAccountTransferData]

GetAccountTokenNFTAccountData

Bases: BaseModel

Model used to parse the data of the GET Account Token/NFT Account of V2 API endpoint.

token_account instance-attribute

token_account: str

token_address instance-attribute

token_address: str

amount instance-attribute

amount: int

token_decimals instance-attribute

token_decimals: int

owner instance-attribute

owner: str

GetAccountTokenNFTAccountResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Account Token/NFT Account of V2 API endpoint.

data instance-attribute

data: list[GetAccountTokenNFTAccountData]

GetAccountDefiActivitiesParam

Bases: SolscanDefiActivitiesParam

Model used to identify the parameters of the GET Account Defi Activities of V2 API endpoint.

GetAccountDefiActivitiesData

Bases: SolscanDefiActivitiesData

Model used to parse the data of the GET Account Defi Activities of V2 API endpoint.

GetAccountDefiActivitiesResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Account Defi Activities of V2 API endpoint.

data instance-attribute

data: list[GetAccountDefiActivitiesData]

GetAccountBalanceChangeActivitiesParam

Bases: BaseModel

Model used to identify the parameters of the GET Account Balance Change Activities of V2 API endpoint.

token_address class-attribute instance-attribute

token_address: str | None = Field(
    default=None, serialization_alias="token"
)

Token address to filter.

time_range class-attribute instance-attribute

time_range: tuple[datetime, datetime] | None = Field(
    default=None, serialization_alias="block_time[]"
)

Block times to filter by (from, to).

remove_spam class-attribute instance-attribute

remove_spam: bool | None = None

The query parameter to determine if spam activities have been removed or not.

amount_range class-attribute instance-attribute

amount_range: tuple[int, int] | None = Field(
    default=None, serialization_alias="amount[]"
)

Amount range to filter for the account transfers (from, to).

flow_direction class-attribute instance-attribute

flow_direction: str | None = Field(
    default=None, serialization_alias="flow"
)

Flow direction to filter. The supported types are available on SolscanFlowType.

page class-attribute instance-attribute

page: int = Field(default=1, ge=1)

Page number to get the account transfers.

page_size class-attribute instance-attribute

page_size: int = Field(
    default=SolscanPageSizeType.SIZE_10.value
)

Number of account balance change activities per page. The supported types are available on SolscanPageSizeType.

validate_flow_direction classmethod

validate_flow_direction(value: str | None) -> str | None
Source code in src/cyhole/solscan/v2/schema.py
337
338
339
340
341
342
@field_validator("flow_direction")
@classmethod
def validate_flow_direction(cls, value: str | None) -> str | None:
    if value:
        SolscanFlowType.check(value)
    return value

validate_amount_range classmethod

validate_amount_range(
    value: tuple[int, int] | None,
) -> tuple[int, int] | None
Source code in src/cyhole/solscan/v2/schema.py
344
345
346
347
348
349
@field_validator("amount_range")
@classmethod
def validate_amount_range(cls, value: tuple[int, int] | None) -> tuple[int, int] | None:
    if value and value[0] > value[1]:
        raise SolscanInvalidAmountRange(f"Invalid amount range: {value}")
    return value

validate_page_size classmethod

validate_page_size(value: int) -> int
Source code in src/cyhole/solscan/v2/schema.py
351
352
353
354
355
@field_validator("page_size")
@classmethod
def validate_page_size(cls, value: int) -> int:
    SolscanPageSizeType.check(value)
    return value

validate_time_range classmethod

validate_time_range(
    value: tuple[datetime, datetime] | None,
) -> tuple[datetime, datetime] | None
Source code in src/cyhole/solscan/v2/schema.py
357
358
359
360
361
362
@field_validator("time_range")
@classmethod
def validate_time_range(cls, value: tuple[datetime, datetime] | None) -> tuple[datetime, datetime] | None:
    if value and value[0] > value[1]:
        raise SolscanInvalidTimeRange(f"Invalid time range: {value}")
    return value

serialize_time_range classmethod

serialize_time_range(
    value: tuple[datetime, datetime] | None,
) -> tuple[int, int] | None
Source code in src/cyhole/solscan/v2/schema.py
365
366
367
368
369
370
@field_serializer("time_range")
@classmethod
def serialize_time_range(cls, value: tuple[datetime, datetime] | None) -> tuple[int, int] | None:
    if value:
        return (int(value[0].timestamp()), int(value[1].timestamp()))
    return

serialize_remove_spam classmethod

serialize_remove_spam(value: bool | None) -> str | None
Source code in src/cyhole/solscan/v2/schema.py
372
373
374
375
376
377
@field_serializer("remove_spam")
@classmethod
def serialize_remove_spam(cls, value: bool | None) -> str | None:
    if value is not None:
        return "true" if value else "false"
    return

GetAccountBalanceChangeActivitiesData

Bases: BaseModel

Model used to parse the data of the GET Account Balance Change Activities of V2 API endpoint.

block_id instance-attribute

block_id: int

block_time_unix_utc class-attribute instance-attribute

block_time_unix_utc: int = Field(alias='block_time')

transaction_id class-attribute instance-attribute

transaction_id: str = Field(alias='trans_id')

address instance-attribute

address: str

token_address instance-attribute

token_address: str

token_account instance-attribute

token_account: str

token_decimals instance-attribute

token_decimals: int

amount instance-attribute

amount: int

pre_balance instance-attribute

pre_balance: int

post_balance instance-attribute

post_balance: int

change_type instance-attribute

change_type: str

fee instance-attribute

fee: int

time instance-attribute

time: datetime

GetAccountBalanceChangeActivitiesResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Account Balance Change Activities of V2 API endpoint.

data instance-attribute

data: list[GetAccountBalanceChangeActivitiesData]

GetAccountTransactionsInstruction

Bases: BaseModel

Model used to parse the instructions of the GET Account Transactions of V2 API endpoint.

type instance-attribute

type: str

program instance-attribute

program: str

program_id instance-attribute

program_id: str

GetAccountTransactionsData

Bases: BaseModel

Model used to parse the data of the GET Account Transactions of V2 API endpoint.

slot instance-attribute

slot: int

fee instance-attribute

fee: int

status instance-attribute

status: str

signer instance-attribute

signer: list[str]

block_time_unix_utc class-attribute instance-attribute

block_time_unix_utc: int = Field(alias='block_time')

transaction_id class-attribute instance-attribute

transaction_id: str = Field(alias='tx_hash')

parsed_instructions instance-attribute

parsed_instructions: list[GetAccountTransactionsInstruction]

program_ids instance-attribute

program_ids: list[str]

time instance-attribute

time: datetime

GetAccountTransactionsResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Account Transactions of V2 API endpoint.

data instance-attribute

data: list[GetAccountTransactionsData]

GetAccountStakeData

Bases: BaseModel

Model used to parse the data of the GET Account Stake of V2 API endpoint.

amount instance-attribute

amount: int

role instance-attribute

role: list[str]

status instance-attribute

status: str

type instance-attribute

type: str

voter instance-attribute

voter: str

active_stake_amount instance-attribute

active_stake_amount: int

delegated_stake_amount instance-attribute

delegated_stake_amount: int

sol_balance instance-attribute

sol_balance: int

total_reward instance-attribute

total_reward: str

stake_account instance-attribute

stake_account: str

activation_epoch instance-attribute

activation_epoch: int

stake_type instance-attribute

stake_type: int

GetAccountStakeResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Account Stake of V2 API endpoint.

data instance-attribute

data: list[GetAccountStakeData]

GetAccountDetailData

Bases: BaseModel

Model used to parse the data of the GET Account Detail of V2 API endpoint.

account instance-attribute

account: str

lamports instance-attribute

lamports: int

type instance-attribute

type: str

executable instance-attribute

executable: bool

owner_program instance-attribute

owner_program: str

rent_epoch instance-attribute

rent_epoch: int

is_oncurve instance-attribute

is_oncurve: bool

GetAccountDetailResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Account Detail of V2 API endpoint.

data instance-attribute

data: GetAccountDetailData

GetAccountRewardsExportResponse

Bases: BaseModel

This class refers to the response model of GET Account ExportRewards of V2 API endpoint.

csv instance-attribute

csv: str

GetTokenTransferParam

Bases: SolscanTransferParam

Model used to identify the parameters of the GET Token Transfer of V2 API endpoint.

GetTokenTransferData

Bases: SolscanTransferData

Model used to parse the data of the GET Token Transfer of V2 API endpoint.

GetTokenTransferResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Token Transfer of V2 API endpoint.

data instance-attribute

data: list[GetTokenTransferData]

GetTokenDefiActivitiesParam

Bases: SolscanDefiActivitiesParam

Model used to identify the parameters of the GET Token Defi Activities of V2 API endpoint.

token_address class-attribute instance-attribute

token_address: str | None = Field(
    default=None, serialization_alias="token"
)

Token address to filter.

GetTokenDefiActivitiesData

Bases: SolscanDefiActivitiesData

Model used to parse the data of the GET Token Defi Activities of V2 API endpoint.

GetTokenDefiActivitiesResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Token Defi Activities of V2 API endpoint.

data instance-attribute

data: list[GetTokenDefiActivitiesData]

GetTokenMarketsData

Bases: BaseModel

Model used to parse the data of the GET Token Markets of V2 API endpoint.

pool_id instance-attribute

pool_id: str

program_id instance-attribute

program_id: str

token_1 instance-attribute

token_1: str

token_2 instance-attribute

token_2: str

token_account_1 instance-attribute

token_account_1: str

token_account_2 instance-attribute

token_account_2: str

total_trades_24h instance-attribute

total_trades_24h: int

total_trades_prev_24h instance-attribute

total_trades_prev_24h: int

total_volume_24h instance-attribute

total_volume_24h: int

total_volume_prev_24h instance-attribute

total_volume_prev_24h: int

GetTokenMarketsResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Token Markets of V2 API endpoint.

data instance-attribute

data: list[GetTokenMarketsData]

GetTokenListData

Bases: BaseModel

Model used to parse the data of the GET Token List of V2 API endpoint.

address instance-attribute

address: str

decimals instance-attribute

decimals: int

name class-attribute instance-attribute

name: str | None = None

symbol class-attribute instance-attribute

symbol: str | None = None

market_cap class-attribute instance-attribute

market_cap: int | None = None

price class-attribute instance-attribute

price: float | None = None

price_24h_change class-attribute instance-attribute

price_24h_change: float | None = None

holder class-attribute instance-attribute

holder: int | None = None

created_time_unix_utc class-attribute instance-attribute

created_time_unix_utc: int | None = Field(
    default=None, alias="created_time"
)

GetTokenListResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Token List of V2 API endpoint.

data instance-attribute

data: list[GetTokenListData]

GetTokenTrendingData

Bases: BaseModel

Model used to parse the data of the GET Token Trending of V2 API endpoint.

address instance-attribute

address: str

decimals instance-attribute

decimals: int

name class-attribute instance-attribute

name: str | None = None

symbol class-attribute instance-attribute

symbol: str | None = None

GetTokenTrendingResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Token Trending of V2 API endpoint.

data instance-attribute

data: list[GetTokenTrendingData]

GetTokenPriceData

Bases: BaseModel

Model used to parse the data of the GET Token Price of V2 API endpoint.

date class-attribute instance-attribute

date: datetime = Field(strict=True)

price instance-attribute

price: float

validate_date classmethod

validate_date(value: int) -> datetime
Source code in src/cyhole/solscan/v2/schema.py
602
603
604
605
@field_validator("date", mode = "before")
@classmethod
def validate_date(cls, value: int) -> datetime:
    return datetime.strptime(str(value), "%Y%m%d")

serialize_date classmethod

serialize_date(value: datetime) -> int
Source code in src/cyhole/solscan/v2/schema.py
608
609
610
611
@field_serializer("date")
@classmethod
def serialize_date(cls, value: datetime) -> int:
    return int(value.strftime("%Y%m%d"))

GetTokenPriceResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Token Price of V2 API endpoint.

data instance-attribute

data: list[GetTokenPriceData]

GetTokenHoldersHolder

Bases: BaseModel

Model used to parse the holder data of the GET Token Holders of V2 API endpoint.

address instance-attribute

address: str

amount instance-attribute

amount: int

decimals instance-attribute

decimals: int

owner instance-attribute

owner: str

rank instance-attribute

rank: int

GetTokenHoldersData

Bases: BaseModel

Model used to parse the data of the GET Token Holders of V2 API endpoint.

total_holders class-attribute instance-attribute

total_holders: int = Field(alias='total')

holders class-attribute instance-attribute

holders: list[GetTokenHoldersHolder] = Field(alias='items')

GetTokenHoldersResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Token Holders of V2 API endpoint.

data instance-attribute

data: GetTokenHoldersData

GetTokenMetaData

Bases: BaseModel

Model used to parse the meta data of the GET Token Meta of V2 API endpoint.

address instance-attribute

address: str

name class-attribute instance-attribute

name: str | None = None

symbol class-attribute instance-attribute

symbol: str | None = None

icon class-attribute instance-attribute

icon: str | None = None

decimals instance-attribute

decimals: int

price instance-attribute

price: float

volume_24h instance-attribute

volume_24h: int

market_cap instance-attribute

market_cap: int

market_cap_rank instance-attribute

market_cap_rank: int

price_change_24h instance-attribute

price_change_24h: float

supply instance-attribute

supply: int

holder instance-attribute

holder: int

GetTokenMetaResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Token Meta of V2 API endpoint.

data instance-attribute

data: GetTokenMetaData

GetNFTNewsNftInfoMetaAttribute

Bases: BaseModel

trait_type instance-attribute

trait_type: str

value instance-attribute

value: str | int

GetNFTNewsNftInfoMetaCollection

Bases: BaseModel

name instance-attribute

name: str

family instance-attribute

family: str

GetNFTNewsNftInfoMetaFile

Bases: BaseModel

uri instance-attribute

uri: str

type instance-attribute

type: str

GetNFTNewsNftInfoMetaCreator

Bases: BaseModel

address instance-attribute

address: str

share instance-attribute

share: int

GetNFTNewsNftInfoMetaProperty

Bases: BaseModel

files instance-attribute

files: list[GetNFTNewsNftInfoMetaFile]

category class-attribute instance-attribute

category: str | None = None

creators class-attribute instance-attribute

creators: list[GetNFTNewsNftInfoMetaCreator] | None = None

GetNFTNewsNftInfoMeta

Bases: BaseModel

name instance-attribute

name: str

symbol class-attribute instance-attribute

symbol: str | None = None

description instance-attribute

description: str

seller_fee_basis_points class-attribute instance-attribute

seller_fee_basis_points: int | None = None

image instance-attribute

image: str

animation_url class-attribute instance-attribute

animation_url: str | None = None

external_url class-attribute instance-attribute

external_url: str | None = None

attributes class-attribute instance-attribute

attributes: list[GetNFTNewsNftInfoMetaAttribute] | None = (
    None
)

tags class-attribute instance-attribute

tags: list[str] | None = None

collection class-attribute instance-attribute

collection: GetNFTNewsNftInfoMetaCollection | None = None

properties class-attribute instance-attribute

properties: GetNFTNewsNftInfoMetaProperty | None = None

edition class-attribute instance-attribute

edition: int | None = None

creators class-attribute instance-attribute

creators: list[GetNFTNewsNftInfoMetaCreator] | None = None

compiler class-attribute instance-attribute

compiler: str | None = None

dna class-attribute instance-attribute

dna: str | None = None

date class-attribute instance-attribute

date: int | None = None

process_video class-attribute instance-attribute

process_video: str | None = Field(
    default=None, alias="processVideo"
)

GetNFTNewsNftInfoDataCreator

Bases: BaseModel

address instance-attribute

address: str

verified instance-attribute

verified: int

share instance-attribute

share: int

GetNFTNewsNftInfoData

Bases: BaseModel

name instance-attribute

name: str

symbol instance-attribute

symbol: str

uri instance-attribute

uri: str

seller_fee_basis_points class-attribute instance-attribute

seller_fee_basis_points: int = Field(
    alias="sellerFeeBasisPoints"
)

creators instance-attribute

creators: list[GetNFTNewsNftInfoDataCreator]

id instance-attribute

id: int

GetNFTNewsNftInfo

Bases: BaseModel

address instance-attribute

address: str

created_time_unix_utc class-attribute instance-attribute

created_time_unix_utc: int = Field(alias='createdTime')

mint_transaction class-attribute instance-attribute

mint_transaction: str = Field(alias='mintTx')

collection instance-attribute

collection: str

collection_id class-attribute instance-attribute

collection_id: str = Field(alias='collectionId')

collection_key class-attribute instance-attribute

collection_key: str | None = Field(
    default=None, alias="collectionKey"
)

data instance-attribute

data: GetNFTNewsNftInfoData

meta instance-attribute

meta: GetNFTNewsNftInfoMeta

GetNFTNewsNft

Bases: BaseModel

info instance-attribute

info: GetNFTNewsNftInfo

GetNFTNewsData

Bases: BaseModel

Model used to parse the data of the GET NFT News of V2 API endpoint.

nfts class-attribute instance-attribute

nfts: list[GetNFTNewsNft] = Field(alias='data')

total instance-attribute

total: int

GetNFTNewsResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET NFT News of V2 API endpoint.

data instance-attribute

data: GetNFTNewsData

GetNFTActivitiesParam

Bases: BaseModel

Model used to identify the parameters of the GET NFT Activities of V2 API endpoint.

from_address class-attribute instance-attribute

from_address: str | None = Field(
    default=None, serialization_alias="from"
)

From address to filter.

to_address class-attribute instance-attribute

to_address: str | None = Field(
    default=None, serialization_alias="to"
)

To address to filter.

source_address class-attribute instance-attribute

source_address: str | list[str] | None = Field(
    default=None, serialization_alias="source[]"
)

Source addresses to filter.

activity_type class-attribute instance-attribute

activity_type: str | list[str] | None = Field(
    default=None, serialization_alias="activity_type[]"
)

Activity type of the NFT activities. The supported types are available on SolscanActivityNFTType.

token_address class-attribute instance-attribute

token_address: str | None = Field(
    default=None, serialization_alias="token"
)

Token address to filter.

collection_address class-attribute instance-attribute

collection_address: str | None = Field(
    default=None, serialization_alias="collection"
)

Collection address to filter.

currency_token_address class-attribute instance-attribute

currency_token_address: str | None = Field(
    default=None, serialization_alias="currency_token"
)

Currency token address to filter.

amount_range class-attribute instance-attribute

amount_range: tuple[int, int] | None = Field(
    default=None, serialization_alias="price[]"
)

Amount range to filter for the NFT activities (from, to).

time_range class-attribute instance-attribute

time_range: tuple[datetime, datetime] | None = Field(
    default=None, serialization_alias="block_time[]"
)

Block times to filter by (from, to).

page class-attribute instance-attribute

page: int = Field(default=1, ge=1)

Page number to get the NFT activities.

page_size class-attribute instance-attribute

page_size: int = Field(
    default=SolscanPageSizeType.SIZE_10.value
)

Number of NFT activities per page. The supported types are available on SolscanPageSizeType.

validate_activity_type classmethod

validate_activity_type(
    value: list[str] | str | None,
) -> str | list[str] | None
Source code in src/cyhole/solscan/v2/schema.py
797
798
799
800
801
802
803
804
805
@field_validator("activity_type")
@classmethod
def validate_activity_type(cls, value: list[str] | str | None) -> str | list[str] | None:
    if isinstance(value, str):
        SolscanActivityNFTType.check(value)
    elif isinstance(value, list):
        for item in value:
            SolscanActivityNFTType.check(item)
    return value

validate_amount_range classmethod

validate_amount_range(
    value: tuple[int, int] | None,
) -> tuple[int, int] | None
Source code in src/cyhole/solscan/v2/schema.py
807
808
809
810
811
812
@field_validator("amount_range")
@classmethod
def validate_amount_range(cls, value: tuple[int, int] | None) -> tuple[int, int] | None:
    if value and value[0] > value[1]:
        raise SolscanInvalidAmountRange(f"Invalid amount range: {value}")
    return value

validate_page_size classmethod

validate_page_size(value: int) -> int
Source code in src/cyhole/solscan/v2/schema.py
814
815
816
817
818
@field_validator("page_size")
@classmethod
def validate_page_size(cls, value: int) -> int:
    SolscanPageSizeType.check(value)
    return value

validate_time_range classmethod

validate_time_range(
    value: tuple[datetime, datetime] | None,
) -> tuple[datetime, datetime] | None
Source code in src/cyhole/solscan/v2/schema.py
820
821
822
823
824
825
@field_validator("time_range")
@classmethod
def validate_time_range(cls, value: tuple[datetime, datetime] | None) -> tuple[datetime, datetime] | None:
    if value and value[0] > value[1]:
        raise SolscanInvalidTimeRange(f"Invalid time range: {value}")
    return value

serialize_time_range classmethod

serialize_time_range(
    value: tuple[datetime, datetime] | None,
) -> tuple[int, int] | None
Source code in src/cyhole/solscan/v2/schema.py
828
829
830
831
832
833
@field_serializer("time_range")
@classmethod
def serialize_time_range(cls, value: tuple[datetime, datetime] | None) -> tuple[int, int] | None:
    if value:
        return (int(value[0].timestamp()), int(value[1].timestamp()))
    return

GetNFTActivitiesData

Bases: BaseModel

Model used to parse the data of the GET NFT Activities of V2 API endpoint.

block_id instance-attribute

block_id: int

transaction_id class-attribute instance-attribute

transaction_id: str = Field(alias='trans_id')

block_time_unix_utc class-attribute instance-attribute

block_time_unix_utc: int = Field(alias='block_time')

activity_type instance-attribute

activity_type: str

from_address instance-attribute

from_address: str

to_address instance-attribute

to_address: str

token_address instance-attribute

token_address: str

marketplace_address instance-attribute

marketplace_address: str

collection_address instance-attribute

collection_address: str

amount instance-attribute

amount: int

price instance-attribute

price: int

currency_token instance-attribute

currency_token: str

currency_decimals instance-attribute

currency_decimals: int

time instance-attribute

time: datetime

GetNFTActivitiesResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET NFT Activities of V2 API endpoint.

data instance-attribute

data: list[GetNFTActivitiesData]

GetNFTCollectionListsParam

Bases: BaseModel

Model used to identify the parameters of the GET NFT Collection Lists of V2 API endpoint.

days_range class-attribute instance-attribute

days_range: int | None = Field(
    default=None, serialization_alias="range"
)

Number of days to filter the NFT collection lists. The supported types are available on SolscanNFTDaysRangeType.

order_by class-attribute instance-attribute

order_by: str | None = Field(
    default=None, serialization_alias="sort_order"
)

Order by to filter the NFT collection lists. The supported types are available on SolscanOrderType.

sort_by class-attribute instance-attribute

sort_by: str | None = Field(
    default=None, serialization_alias="sort_by"
)

Sort by to filter the NFT collection lists. The supported types are available on SolscanNFTSortType.

page class-attribute instance-attribute

page: int = Field(default=1, ge=1)

Page number to get the NFT collection lists.

page_size class-attribute instance-attribute

page_size: int = Field(
    default=SolscanPageSizeType.SIZE_10.value
)

Number of NFT activities per page. The supported types are available on SolscanNFTCollectionPageSizeType.

collection_address class-attribute instance-attribute

collection_address: str | None = Field(
    default=None, serialization_alias="collection"
)

Collection address to filter.

validate_days_range classmethod

validate_days_range(value: int | None) -> int | None
Source code in src/cyhole/solscan/v2/schema.py
899
900
901
902
903
904
@field_validator("days_range")
@classmethod
def validate_days_range(cls, value: int | None) -> int | None:
    if value:
        SolscanNFTDaysRangeType.check(value)
    return value

validate_order_by classmethod

validate_order_by(value: str | None) -> str | None
Source code in src/cyhole/solscan/v2/schema.py
906
907
908
909
910
911
@field_validator("order_by")
@classmethod
def validate_order_by(cls, value: str | None) -> str | None:
    if value:
        SolscanOrderType.check(value)
    return value

validate_sort_by classmethod

validate_sort_by(value: str | None) -> str | None
Source code in src/cyhole/solscan/v2/schema.py
913
914
915
916
917
918
@field_validator("sort_by")
@classmethod
def validate_sort_by(cls, value: str | None) -> str | None:
    if value:
        SolscanNFTSortType.check(value)
    return value

validate_page_size classmethod

validate_page_size(value: int) -> int
Source code in src/cyhole/solscan/v2/schema.py
920
921
922
923
924
@field_validator("page_size")
@classmethod
def validate_page_size(cls, value: int) -> int:
    SolscanNFTCollectionPageSizeType.check(value)
    return value

GetNFTCollectionListsData

Bases: BaseModel

Model used to parse the data of the GET NFT Collection Lists of V2 API endpoint.

collection_address class-attribute instance-attribute

collection_address: str = Field(alias='collection_id')

floor_price instance-attribute

floor_price: float

items instance-attribute

items: int

marketplaces instance-attribute

marketplaces: list[str]

volumes instance-attribute

volumes: float

volumes_change_24h class-attribute instance-attribute

volumes_change_24h: str | None = None

GetNFTCollectionListsResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET NFT Collection Lists of V2 API endpoint.

data instance-attribute

data: list[GetNFTCollectionListsData]

GetNFTCollectionItemData

GetNFTCollectionItemMeta

GetNFTCollectionItemInfo

Bases: BaseModel

address instance-attribute

address: str

token_name instance-attribute

token_name: str

token_symbol instance-attribute

token_symbol: str

collection_id instance-attribute

collection_id: str

data instance-attribute

data: GetNFTCollectionItemData

meta instance-attribute

meta: GetNFTCollectionItemMeta

GetNFTCollectionItemStats

Bases: BaseModel

trade_time_unix_utc class-attribute instance-attribute

trade_time_unix_utc: int = Field(alias='trade_time')

signature instance-attribute

signature: str

market_id instance-attribute

market_id: str

type instance-attribute

type: str

price instance-attribute

price: int

currency_token instance-attribute

currency_token: str

currency_decimals instance-attribute

currency_decimals: int

seller instance-attribute

seller: str

buyer instance-attribute

buyer: str

GetNFTCollectionItemsData

Bases: BaseModel

Model used to parse the data of the GET NFT Collection Items of V2 API endpoint.

info instance-attribute

info: GetNFTCollectionItemInfo

stats instance-attribute

stats: GetNFTCollectionItemStats

GetNFTCollectionItemsResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET NFT Collection Items of V2 API endpoint.

data instance-attribute

data: list[GetNFTCollectionItemsData]

GetTransactionLastInstruction

GetTransactionLastData

Bases: BaseModel

Model used to parse the data of the GET Transaction Last of V2 API endpoint.

slot instance-attribute

slot: int

fee instance-attribute

fee: int

status instance-attribute

status: str

signer instance-attribute

signer: list[str]

block_time_unix_utc class-attribute instance-attribute

block_time_unix_utc: int = Field(alias='block_time')

transaction_id class-attribute instance-attribute

transaction_id: str = Field(alias='tx_hash')

parsed_instructions instance-attribute

parsed_instructions: list[GetTransactionLastInstruction]

program_ids instance-attribute

program_ids: list[str]

time instance-attribute

time: datetime

GetTransactionLastResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Transaction Last of V2 API endpoint.

data instance-attribute

data: list[GetTransactionLastData]

GetTransactionActionsTransfer

Bases: BaseModel

source_owner class-attribute instance-attribute

source_owner: str | None = None

source class-attribute instance-attribute

source: str | None = None

destination_owner class-attribute instance-attribute

destination_owner: str | None = None

destination class-attribute instance-attribute

destination: str | None = None

transfer_type instance-attribute

transfer_type: str

token_address instance-attribute

token_address: str

decimals instance-attribute

decimals: int

amount_str instance-attribute

amount_str: str

amount instance-attribute

amount: int

program_id instance-attribute

program_id: str

outer_program_id class-attribute instance-attribute

outer_program_id: str | None = None

ins_index instance-attribute

ins_index: int

outer_ins_index instance-attribute

outer_ins_index: int

GetTransactionActionsActivityDataRouter

Bases: BaseModel

amm_program_id instance-attribute

amm_program_id: str

token_1 instance-attribute

token_1: str

token_decimal_1 instance-attribute

token_decimal_1: int

amount_1 instance-attribute

amount_1: int

amount_1_str instance-attribute

amount_1_str: str

token_2 instance-attribute

token_2: str

token_decimal_2 instance-attribute

token_decimal_2: int

amount_2 instance-attribute

amount_2: int

amount_2_str instance-attribute

amount_2_str: str

GetTransactionActionsActivityDataUnitLimit

Bases: BaseModel

compute_unit_limit instance-attribute

compute_unit_limit: str

GetTransactionActionsActivityDataUnitPrice

Bases: BaseModel

compute_unit_price_by_microlamport instance-attribute

compute_unit_price_by_microlamport: str

GetTransactionActionsActivityDataSplCommon

Bases: BaseModel

amount class-attribute instance-attribute

amount: int | None = None

amount_str class-attribute instance-attribute

amount_str: str | None = None

token_address instance-attribute

token_address: str

token_decimals class-attribute instance-attribute

token_decimals: int | None = None

closed_account class-attribute instance-attribute

closed_account: str | None = None

authority class-attribute instance-attribute

authority: str | None = None

destination class-attribute instance-attribute

destination: str | None = None

sync_account class-attribute instance-attribute

sync_account: str | None = None

init_account class-attribute instance-attribute

init_account: str | None = None

owner class-attribute instance-attribute

owner: str | None = None

GetTransactionActionsActivityDataSplMintBurn

Bases: BaseModel

account instance-attribute

account: str

authority instance-attribute

authority: str

token_address instance-attribute

token_address: str

token_decimals instance-attribute

token_decimals: int

amount instance-attribute

amount: int

amount_str instance-attribute

amount_str: str

GetTransactionActionsActivityDataTokenSwap

Bases: BaseModel

amm_id instance-attribute

amm_id: str

amm_authoriy class-attribute instance-attribute

amm_authoriy: str | None = None

account instance-attribute

account: str

token_1 instance-attribute

token_1: str

token_2 instance-attribute

token_2: str

amount_1 instance-attribute

amount_1: int

amount_1_str instance-attribute

amount_1_str: str

amount_2 instance-attribute

amount_2: int

amount_2_str instance-attribute

amount_2_str: str

token_decimal_1 instance-attribute

token_decimal_1: int

token_decimal_2 instance-attribute

token_decimal_2: int

token_account_1_1 class-attribute instance-attribute

token_account_1_1: str | None = None

token_account_1_2 class-attribute instance-attribute

token_account_1_2: str | None = None

token_account_2_1 class-attribute instance-attribute

token_account_2_1: str | None = None

token_account_2_2 class-attribute instance-attribute

token_account_2_2: str | None = None

owner_1 class-attribute instance-attribute

owner_1: str | None = None

owner_2 class-attribute instance-attribute

owner_2: str | None = None

rounters class-attribute instance-attribute

rounters: (
    list[GetTransactionActionsActivityDataRouter] | None
) = None

exact_amount_2 class-attribute instance-attribute

exact_amount_2: int | None = None

exact_amount_2_str class-attribute instance-attribute

exact_amount_2_str: str | None = None

platform_fee class-attribute instance-attribute

platform_fee: int | None = None

slippage class-attribute instance-attribute

slippage: int | None = None

GetTransactionActionsActivityDataCreateAccount

Bases: BaseModel

new_account instance-attribute

new_account: str

source instance-attribute

source: str

transfer_amount instance-attribute

transfer_amount: int

transfer_amount_str instance-attribute

transfer_amount_str: str

program_owner instance-attribute

program_owner: str

space instance-attribute

space: int

common_type instance-attribute

common_type: str

GetTransactionActionsActivity

Bases: BaseModel

name instance-attribute

name: str

activity_type instance-attribute

activity_type: str

program_id instance-attribute

program_id: str

data instance-attribute

data: GetTransactionActionsActivityData

ins_index instance-attribute

ins_index: int

outer_ins_index instance-attribute

outer_ins_index: int

outer_program_id class-attribute instance-attribute

outer_program_id: str | None = None

GetTransactionActionsData

Bases: BaseModel

Model used to parse the data of the GET Transaction Actions of V2 API endpoint.

transaction_id class-attribute instance-attribute

transaction_id: str = Field(alias='tx_hash')

block_id instance-attribute

block_id: int

block_time_unix_utc class-attribute instance-attribute

block_time_unix_utc: int = Field(alias='block_time')

time instance-attribute

time: datetime

fee instance-attribute

fee: int

transfers class-attribute instance-attribute

transfers: list[GetTransactionActionsTransfer] | None = None

activities class-attribute instance-attribute

activities: list[GetTransactionActionsActivity] | None = (
    None
)

GetTransactionActionsResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Transaction Actions of V2 API endpoint.

data instance-attribute

data: GetTransactionActionsData

GetBlockLastData

Bases: BaseModel

Model used to parse the data of the GET Block Last of V2 API endpoint.

block_id class-attribute instance-attribute

block_id: str = Field(alias='blockhash')

fee_rewards instance-attribute

fee_rewards: int

transactions_count instance-attribute

transactions_count: int

current_slot instance-attribute

current_slot: int

block_height instance-attribute

block_height: int

block_time_unix_utc class-attribute instance-attribute

block_time_unix_utc: int = Field(alias='block_time')

time instance-attribute

time: datetime

parent_slot instance-attribute

parent_slot: int

previous_block_id class-attribute instance-attribute

previous_block_id: str = Field(alias='previous_block_hash')

GetBlockLastResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Block Last of V2 API endpoint.

data instance-attribute

data: list[GetBlockLastData]

GetBlockTransactionsInstruction

GetBlockTransactionsDataTransaction

Bases: BaseModel

slot instance-attribute

slot: int

fee instance-attribute

fee: int

status instance-attribute

status: str

signer instance-attribute

signer: list[str]

block_time_unix_utc class-attribute instance-attribute

block_time_unix_utc: int = Field(alias='block_time')

transaction_id class-attribute instance-attribute

transaction_id: str = Field(alias='tx_hash')

parsed_instructions instance-attribute

parsed_instructions: list[GetBlockTransactionsInstruction]

program_ids instance-attribute

program_ids: list[str]

time instance-attribute

time: datetime

GetBlockTransactionsData

Bases: BaseModel

Model used to parse the data of the GET Block Transactions of V2 API endpoint.

total instance-attribute

total: int

transactions instance-attribute

transactions: list[GetBlockTransactionsDataTransaction]

GetBlockTransactionsResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Block Transactions of V2 API endpoint.

data instance-attribute

data: GetBlockTransactionsData

GetBlockDetailData

Bases: BaseModel

Model used to parse the data of the GET Block Detail of V2 API endpoint.

block_id class-attribute instance-attribute

block_id: str = Field(alias='blockhash')

fee_rewards instance-attribute

fee_rewards: int

transactions_count instance-attribute

transactions_count: int

block_height instance-attribute

block_height: int

block_time_unix_utc class-attribute instance-attribute

block_time_unix_utc: int = Field(alias='block_time')

time instance-attribute

time: datetime

parent_slot instance-attribute

parent_slot: int

previous_block_id class-attribute instance-attribute

previous_block_id: str = Field(alias='previous_block_hash')

GetBlockDetailResponse

Bases: SolscanBaseResponse

Model used to parse the response of the GET Block Detail of V2 API endpoint.

data instance-attribute

data: GetBlockDetailData