🗃

Solana

An explanation of the Solana dataset within Nansen Query.

Introduction & Background

  • Solana generates significant amount of data and it can be expensive to query
  • We've parsed the information into groups so it's easier to query
  • All raw Solana event data is included in the raw_solana dataset
Basic Blockchain Information
  • This is full information directly from the blockchain and the most expensive to query
    • blocks: data about each block produced
    • transactions: data about each transaction
Program Instructions
  • Each Solana transaction contains instructions for other programs and accounts. Parsing the instructions can be complicated when using the transaction data directly
    • instructions_unnested : The un-nested instructions portion of the transaction data. This can be used to quickly search for "program_id", which is the smart contract and "accounts", which are the accounts interacting with that smart contract
    • initialize_mint_instructions: The set of instructions only relating to minting of new tokens from the Solana Token program
Account Information
  • Solana accounts can be one of a wallet, program, token, or vote. This dataset outlines all the non-wallet accounts and when they were initialized (created)
    • non_wallet_accounts_daily : The list of accounts created on a daily basis and type

Account Information

Non-Wallet Account List
Table Name: non_wallet_accounts_daily
Field name
Type
Description
account_address
STRING
Address of account
type
STRING
Type, either program, token, or vote
day
DATE
Day which account was initialized

Program Instructions

Full Program Instructions

Table Name: instructions_unnested
Field name
Type
Description
transaction_id
STRING
ID of the transaction
slot
INTEGER
Slot of the transaction
block_timestamp
TIMESTAMP
Timestamp of the transaction
accounts
RECORD
The accounts involved in the transaction
signers
STRING
Who signed the transaction
program_id
STRING
The program ID of the transaction
instruction_type
STRING
The instruction type of the transaction
instruction_data
STRING
The data associated with the instruction
instruction_parsed
STRING
The parsed data from the instruction
instruction_accounts
STRING
The accounts involved in the instructions
instruction_index
NUMERIC
The index of the instruction

Mint Instructions

Table Name: initialize_mint_instructions
Field name
Type
Description
block_timestamp
TIMESTAMP
Timestamp of the block
slot
INTEGER
Slot of the transaction
transaction_id
STRING
ID of the transaction
instruction_type
STRING
Either initalizeMint, or initalizeMint2
instruction_index
NUMERIC
The index of the instruction
decimals
INTEGER
The number of decimals in the token
freeze_authority
STRING
The address with the authority to freeze the token
mint
STRING
Address of the token minted
mint_authority
STRING
Address authorized to mint the token
rent_sysvar
STRING
The rent associated with this transaction

Basic Blockchain Information

Blocks

Field name
Data Type
Description
block_timestamp
TIMESTAMP
The estimated production time as Unix timestamp
slot
INTEGER
The slot index of this block
parent_slot
INTEGER
The slot index of this block's parent
blockhash
STRING
The blockhash of this block
previous_blockhash
STRING
The blockhash of this block's parent
rewards
RECORD
Information regarding the block reward. Note this is a repeated field.
rewards.pubkey
STRING
--
rewards.lamports
INTEGER
--
rewards.post_balance
INTEGER
--
rewards.reward_type
STRING
Type of reward
block_height
INTEGER
Block height of the reward

Transactions

Field name
Data Type
Description
block_timestamp
TIMESTAMP
The estimated production time as Unix timestamp
slot
INTEGER
The slot index of this block
transaction_id
STRING
ID of the transaction
is_successful
BOOLEAN
True if is successful
error
STRING
Errors produced
fee
INTEGER
Fee consumed
accounts
RECORD
Accounts involved in the transactions (repeated field)
accounts.address
STRING
Addresses involved
accounts.pre_sol_balance
INTEGER
SOL balance prior to the transaction
post_sol_balance
INTEGER
SOL balance after the transaction
accounts.pre_token_balances
RECORD
Repeated field of token balance changes
accounts.pre_token_balances.amount
STRING
Token balance amount prior to the transaction
accounts.pre_token_balances.decimals
INTEGER
Decimals of the token
accounts.pre_token_balances.ui_amount_string
STRING
--
accounts.post_token_balances
RECORD
Repeated field of token balance changes
accounts.post_token_balances.amount
STRING
Token balance amount after the transaction
accounts.post_token_balances.decimals
INTEGER
Decimals of the token
accounts.post_token_balances.ui_amount_string
STRING
--
instructions
RECORD
Repeated field for instructions related to the transaction
instructions.program_id
STRING
Program ID
instructions.accounts
STRING
Related accounts
instructions.data
STRING
Data from the transaction
instructions.parsed
STRING
Data parsed from transaction
log_messages
STRING
Log messaged related to the tranaction
inner_instructions
RECORD
Repeated field for internal instructions related to the transaction
inner_instructions.index
INTEGER
Index of internal instructions
inner_instructions.instructions
RECORD
Repeated field for each inner instruction
inner_instructions.instructions.program_id
STRING
Program ID
inner_instructions.instructions.accounts
STRING
Related accounts
inner_instructions.instructions.data
STRING
Data from the transaction
inner_instructions.instructions.parsed
STRING
Data parsed from transaction