solana.assets.transfers table holds a record of spl-tokens (both legacy and token2022) and native SOL transfers.
If you require tx-level detail for records in this table, see here for more info.
Sample Query
Finding the volume of USDC transferred on Solana Network.Invisible SOL transfers
- There can be movement of native SOL without an explicit
transferinstruction. In those case, there is no definitive way to extract the point-to-point record of the transfer. - More details are explained here
- If you intend to sum up transfers within a transaction for reconciliation, balance changes would be more suitable.
Token2022 support
- Parsed token2022 instructions can be found in the raw tables
solana.raw.instructions/solana.raw.inner_instructions - We parse token2022 spl transfers and include them as part of
solana.assets.transfers - For other function-specific details of other token2022 functions, they can be parsed upon request
Transfer types
There are multiple ways to transfer assets in solana - the type of transfer can be identified from a combination of theprogram_name, type and transfer_type columns.
| program_name | type | transfer_type | description |
|---|---|---|---|
| spl-token | burn | spl_token_transfer | SPL token burn |
| spl-token | burnChecked | spl_token_transfer | SPL token burn |
| spl-token | closeAccount | account_closure_sol_balance_transfer | Native SOL from rent returned as a result of account closure |
| spl-token | mintTo | spl_token_transfer | SPL token mint |
| spl-token | mintToChecked | spl_token_transfer | SPL token mint |
| spl-token | setAuthority | token_account_transfer | SPL token transfer by changing ownership of account to receiving party |
| spl-token | transfer | spl_token_transfer | SPL token transfer, direct from 1 token account to another |
| spl-token | transferChecked | spl_token_transfer | SPL token transfer, direct from 1 token account to another |
| spl-token | transferCheckedWithFee | spl_token_transfer | SPL token transfer, direct from 1 token account to another |
| system | createAccount | sol_transfer | Native SOL transferred when funding a new account |
| system | createAccountWithSeed | sol_transfer | Native SOL transferred when funding a new account |
| system | transfer | sol_transfer | Native SOL transfer, direct from 1 party to another |
| system | transferWithSeed | sol_transfer | Native SOL transfer, direct from 1 party to another |
Table Columns
| Column | Description | Type | Example |
|---|---|---|---|
| from_address | Address where the token is being transferred from. | varchar | CyZuD7RPDcrqCGbNvLCyqk6Py9cEZTKmNKujfPi3ynDd |
| to_address | Address where the token is being transferred to. | varchar | CyZuD7RPDcrqCGbNvLCyqk6Py9cEZTKmNKujfPi3ynDd |
| token_acc_from | Token account sender address. | varchar | FjLVB8vNk2vPQXUWNJk7P8JYhco9jjVwpbsC7K8dwHDb |
| token_acc_to | Token account recipient address. | varchar | 56pzXb1q2t4ZwgHC77pTELid2NYw8upu57McFK5j8Mj3 |
| mint | Mint address of the token transferred. | varchar | So11111111111111111111111111111111111111112 |
| decimals | The number of decimal points the token amounts are represented in. This is used to calculate the normalized amount of a token by taking the raw amount divided by 10^decimal_points. | number | 9 |
| symbols | Symbol of the token transferred | varchar | SOL |
| raw_amount | Raw of amount of token (unnormalized) transferred. Note that any fee withheld is not deducted from this amount. | float | 12,500 |
| raw_amount_str | Raw of amount of token (unnormalized) transferred, in string format. | varchar | 12500 |
| amount | Amount of token transferred, normalized. | float | 0.0000125 |
| amount_str | Amount of token transferred, normalized in string format. | varchar | 0.0000125 |
| usd_amount | USD value of the token amount transferred. | float | 0.000261375 |
| usd_exchange_rate | Price of the token at the time of transfer. | varchar | 20.91 |
| block_slot | Block slot of the transfer. | varchar | 190,430,409 |
| block_height | Block height of the transfer | number | 173,371,181 |
| block_timestamp | Block timestamp of the transfer. | timestamp_ntz | 2023-04-25 15:55:07 |
| block_hash | Block hash of the transfer. | varchar | 8cAnWkjiy7VENBH3h1pN2rFQJLJsujB87bTcfYJNnvtD |
| txn_id | Transaction ID of the transfer. | varchar | 4iMB9gP6nf5atgDpofK9hUkBiqiLBxqtocMc64vHBwZvR8iJiuyBdcvaHBwCxk5W1szK9jFFo3XwsSZ2APdPo6Um |
| txn_index | Transaction Index of the transfer. | number | 1,011 |
| instruction_index | Transfer instruction index. | number | 2 |
| inner_instruction_index | Transfer inner instruction index. | number | 0 |
| program_name | Program name of the transfer transaction. Includes system and spl-token | varchar | spl-token |
| type | Includes transfer, transferChecked, setAuthority, transferWithSeed | varchar | transfer |
| transfer_type | Token transfer type. Includes sol_transfer, spl_token_transfer, token_account_transfer | varchar | spl_token_transfer |
| unique_id | Unique id of the transfer. | varchar | txn_id-4iMB9gP6nf5atgDpofK9hUkBiqiLBxqtocMc64vHBwZvR8iJiuyBdcvaHBwCxk5W1szK9jFFo3XwsSZ2APdPo6Um_i_index-2_ii_index-0 |