Orca Whirlpool historical data as Parquet
Every Orca Whirlpool instruction and event in Solana history, decoded with an Anchor IDL that we checked against real transactions. Trawl gives you 6 event tables and 66 instruction tables, with a column for each account, argument and field. Calls from other programs (CPI) are in the result too.
Updated
The preset
- Program
- whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc
- Preset
orca-whirlpool- Tables
- 6 event tables and 66 instruction tables, and
part-*with the raw bytes of each match - Price
- $4 for one recent epoch, $8.68 for one week of chain
The price is the same for every program: you pay for the archive the scan reads, not for the rows. Pricing.
# ask for a price: a 402 with the quote, no payment yet curl -X POST https://trawl.run/scan \ -H 'Content-Type: application/json' \ -d '{"preset":"orca-whirlpool","start_epoch":1058,"end_epoch":1058}' -- then, in DuckDB, on the files of the job SELECT slot, signature, whirlpool, a_to_b, pre_sqrt_price FROM 'ev-traded-*.parquet' ORDER BY slot LIMIT 10;
Add "filter": {"accounts": ["<wallet>"]} to keep only the transactions
that touch one wallet. How a filter changes a preset.
Event tables
One table for each event in the IDL. Each row also has log_index and the context columns. An event
that the program writes two ways gives one row.
ev-liquidity_decreasedwhirlpool base58 string, position base58 string, tick_lower_index i32, tick_upper_index i32, liquidity decimal string, token_a_amount u64, token_b_amount u64, token_a_transfer_fee u64, token_b_transfer_fee u64ev-liquidity_increasedwhirlpool base58 string, position base58 string, tick_lower_index i32, tick_upper_index i32, liquidity decimal string, token_a_amount u64, token_b_amount u64, token_a_transfer_fee u64, token_b_transfer_fee u64ev-liquidity_repositionedwhirlpool base58 string, position base58 string, existing_range_tick_lower_index i32, existing_range_tick_upper_index i32, new_range_tick_lower_index i32, new_range_tick_upper_index i32, existing_range_liquidity decimal string, new_range_liquidity decimal string, existing_range_token_a_amount u64, existing_range_token_b_amount u64, new_range_token_a_amount u64, new_range_token_b_amount u64, token_a_transfer_amount u64, token_a_transfer_fee u64, is_token_a_transfer_from_owner bool, token_b_transfer_amount u64, token_b_transfer_fee u64, is_token_b_transfer_from_owner boolev-pool_initializedwhirlpool base58 string, whirlpools_config base58 string, token_mint_a base58 string, token_mint_b base58 string, tick_spacing u16, token_program_a base58 string, token_program_b base58 string, decimals_a u8, decimals_b u8, initial_sqrt_price decimal stringev-position_openedwhirlpool base58 string, position base58 string, tick_lower_index i32, tick_upper_index i32ev-tradedwhirlpool base58 string, a_to_b bool, pre_sqrt_price decimal string, post_sqrt_price decimal string, input_amount u64, output_amount u64, input_transfer_fee u64, output_transfer_fee u64, lp_fee u64, protocol_fee u64Instruction tables
One table for each instruction in the IDL: the named accounts, then the arguments. Each row also has the context
columns: slot, tx_index, signature, success, fee, program_id, ix_index, is_inner, inner_index, stack_height, accounts. What each one
holds.
ix-close_bundled_positionbundled_position, position_bundle, position_bundle_token_account, position_bundle_authority, receiverargs:
bundle_index u16ix-close_positionposition_authority, receiver, position, position_mint, position_token_account, token_programix-close_position_with_token_extensionsposition_authority, receiver, position, position_mint, position_token_account, token_2022_programix-collect_feeswhirlpool, position_authority, position, position_token_account, token_owner_account_a, token_vault_a, token_owner_account_b, token_vault_b, token_programix-collect_fees_v2whirlpool, position_authority, position, position_token_account, token_mint_a, token_mint_b, token_owner_account_a, token_vault_a, token_owner_account_b, token_vault_b, token_program_a, token_program_b, memo_programargs:
remaining_accounts_info JSON stringix-collect_protocol_feeswhirlpools_config, whirlpool, collect_protocol_fees_authority, token_vault_a, token_vault_b, token_destination_a, token_destination_b, token_programix-collect_protocol_fees_v2whirlpools_config, whirlpool, collect_protocol_fees_authority, token_mint_a, token_mint_b, token_vault_a, token_vault_b, token_destination_a, token_destination_b, token_program_a, token_program_b, memo_programargs:
remaining_accounts_info JSON stringix-collect_rewardwhirlpool, position_authority, position, position_token_account, reward_owner_account, reward_vault, token_programargs:
reward_index u8ix-collect_reward_v2whirlpool, position_authority, position, position_token_account, reward_owner_account, reward_mint, reward_vault, reward_token_program, memo_programargs:
reward_index u8, remaining_accounts_info JSON stringix-decrease_liquiditywhirlpool, token_program, position_authority, position, position_token_account, token_owner_account_a, token_owner_account_b, token_vault_a, token_vault_b, tick_array_lower, tick_array_upperargs:
liquidity_amount decimal string, token_min_a u64, token_min_b u64ix-decrease_liquidity_v2whirlpool, token_program_a, token_program_b, memo_program, position_authority, position, position_token_account, token_mint_a, token_mint_b, token_owner_account_a, token_owner_account_b, token_vault_a, token_vault_b, tick_array_lower, tick_array_upperargs:
liquidity_amount decimal string, token_min_a u64, token_min_b u64, remaining_accounts_info JSON stringix-delete_position_bundleposition_bundle, position_bundle_mint, position_bundle_token_account, position_bundle_owner, receiver, token_programix-delete_token_badgewhirlpools_config, whirlpools_config_extension, token_badge_authority, token_mint, token_badge, receiverix-idl_includetick_array, system_programix-increase_liquiditywhirlpool, token_program, position_authority, position, position_token_account, token_owner_account_a, token_owner_account_b, token_vault_a, token_vault_b, tick_array_lower, tick_array_upperargs:
liquidity_amount decimal string, token_max_a u64, token_max_b u64ix-increase_liquidity_by_token_amounts_v2whirlpool, token_program_a, token_program_b, memo_program, position_authority, position, position_token_account, token_mint_a, token_mint_b, token_owner_account_a, token_owner_account_b, token_vault_a, token_vault_b, tick_array_lower, tick_array_upperargs:
method JSON string, remaining_accounts_info JSON stringix-increase_liquidity_v2whirlpool, token_program_a, token_program_b, memo_program, position_authority, position, position_token_account, token_mint_a, token_mint_b, token_owner_account_a, token_owner_account_b, token_vault_a, token_vault_b, tick_array_lower, tick_array_upperargs:
liquidity_amount decimal string, token_max_a u64, token_max_b u64, remaining_accounts_info JSON stringix-initialize_adaptive_fee_tierwhirlpools_config, adaptive_fee_tier, funder, fee_authority, system_programargs:
fee_tier_index u16, tick_spacing u16, initialize_pool_authority base58 string, delegated_fee_authority base58 string, default_base_fee_rate u16, filter_period u16, decay_period u16, reduction_factor u16, adaptive_fee_control_factor u32, max_volatility_accumulator u32, tick_group_size u16, major_swap_threshold_ticks u16ix-initialize_configconfig, funder, system_programargs:
fee_authority base58 string, collect_protocol_fees_authority base58 string, reward_emissions_super_authority base58 string, default_protocol_fee_rate u16ix-initialize_config_extensionconfig, config_extension, funder, fee_authority, system_programix-initialize_dynamic_tick_arraywhirlpool, funder, tick_array, system_programargs:
start_tick_index i32, idempotent boolix-initialize_fee_tierconfig, fee_tier, funder, fee_authority, system_programargs:
tick_spacing u16, default_fee_rate u16ix-initialize_poolwhirlpools_config, token_mint_a, token_mint_b, funder, whirlpool, token_vault_a, token_vault_b, fee_tier, token_program, system_program, rentargs:
bumps JSON string, tick_spacing u16, initial_sqrt_price decimal stringix-initialize_pool_v2whirlpools_config, token_mint_a, token_mint_b, token_badge_a, token_badge_b, funder, whirlpool, token_vault_a, token_vault_b, fee_tier, token_program_a, token_program_b, system_program, rentargs:
tick_spacing u16, initial_sqrt_price decimal stringix-initialize_pool_with_adaptive_feewhirlpools_config, token_mint_a, token_mint_b, token_badge_a, token_badge_b, funder, initialize_pool_authority, whirlpool, oracle, token_vault_a, token_vault_b, adaptive_fee_tier, token_program_a, token_program_b, system_program, rentargs:
initial_sqrt_price decimal string, trade_enable_timestamp u64ix-initialize_position_bundleposition_bundle, position_bundle_mint, position_bundle_token_account, position_bundle_owner, funder, token_program, system_program, rent, associated_token_programix-initialize_position_bundle_with_metadataposition_bundle, position_bundle_mint, position_bundle_metadata, position_bundle_token_account, position_bundle_owner, funder, metadata_update_auth, token_program, system_program, rent, associated_token_program, metadata_programix-initialize_rewardreward_authority, funder, whirlpool, reward_mint, reward_vault, token_program, system_program, rentargs:
reward_index u8ix-initialize_reward_v2reward_authority, funder, whirlpool, reward_mint, reward_token_badge, reward_vault, reward_token_program, system_program, rentargs:
reward_index u8ix-initialize_tick_arraywhirlpool, funder, tick_array, system_programargs:
start_tick_index i32ix-initialize_token_badgewhirlpools_config, whirlpools_config_extension, token_badge_authority, token_mint, token_badge, funder, system_programix-lock_positionfunder, position_authority, position, position_mint, position_token_account, lock_config, whirlpool, token_2022_program, system_programargs:
lock_type variant nameix-migrate_repurpose_reward_authority_spacewhirlpoolix-open_bundled_positionbundled_position, position_bundle, position_bundle_token_account, position_bundle_authority, whirlpool, funder, system_program, rentargs:
bundle_index u16, tick_lower_index i32, tick_upper_index i32ix-open_positionfunder, owner, position, position_mint, position_token_account, whirlpool, token_program, system_program, rent, associated_token_programargs:
bumps JSON string, tick_lower_index i32, tick_upper_index i32ix-open_position_with_metadatafunder, owner, position, position_mint, position_metadata_account, position_token_account, whirlpool, token_program, system_program, rent, associated_token_program, metadata_program, metadata_update_authargs:
bumps JSON string, tick_lower_index i32, tick_upper_index i32ix-open_position_with_token_extensionsfunder, owner, position, position_mint, position_token_account, whirlpool, token_2022_program, system_program, associated_token_program, metadata_update_authargs:
tick_lower_index i32, tick_upper_index i32, with_token_metadata_extension boolix-reposition_liquidity_v2whirlpool, token_program_a, token_program_b, memo_program, position_authority, funder, position, position_token_account, token_mint_a, token_mint_b, token_owner_account_a, token_owner_account_b, token_vault_a, token_vault_b, existing_tick_array_lower, existing_tick_array_upper, new_tick_array_lower, new_tick_array_upper, system_programargs:
new_tick_lower_index i32, new_tick_upper_index i32, method JSON string, remaining_accounts_info JSON stringix-reset_position_rangefunder, position_authority, whirlpool, position, position_token_account, system_programargs:
new_tick_lower_index i32, new_tick_upper_index i32ix-set_adaptive_fee_constantswhirlpool, whirlpools_config, oracle, fee_authorityargs:
filter_period u16, decay_period u16, reduction_factor u16, adaptive_fee_control_factor u32, max_volatility_accumulator u32, tick_group_size u16, major_swap_threshold_ticks u16ix-set_collect_protocol_fees_authoritywhirlpools_config, collect_protocol_fees_authority, new_collect_protocol_fees_authorityix-set_config_extension_authoritywhirlpools_config, whirlpools_config_extension, config_extension_authority, new_config_extension_authorityix-set_config_feature_flagwhirlpools_config, authorityargs:
feature_flag JSON stringix-set_default_base_fee_ratewhirlpools_config, adaptive_fee_tier, fee_authorityargs:
default_base_fee_rate u16ix-set_default_fee_ratewhirlpools_config, fee_tier, fee_authorityargs:
default_fee_rate u16ix-set_default_protocol_fee_ratewhirlpools_config, fee_authorityargs:
default_protocol_fee_rate u16ix-set_delegated_fee_authoritywhirlpools_config, adaptive_fee_tier, fee_authority, new_delegated_fee_authorityix-set_fee_authoritywhirlpools_config, fee_authority, new_fee_authorityix-set_fee_ratewhirlpools_config, whirlpool, fee_authorityargs:
fee_rate u16ix-set_fee_rate_by_delegated_fee_authoritywhirlpool, adaptive_fee_tier, delegated_fee_authorityargs:
fee_rate u16ix-set_initialize_pool_authoritywhirlpools_config, adaptive_fee_tier, fee_authority, new_initialize_pool_authorityix-set_preset_adaptive_fee_constantswhirlpools_config, adaptive_fee_tier, fee_authorityargs:
filter_period u16, decay_period u16, reduction_factor u16, adaptive_fee_control_factor u32, max_volatility_accumulator u32, tick_group_size u16, major_swap_threshold_ticks u16ix-set_protocol_fee_ratewhirlpools_config, whirlpool, fee_authorityargs:
protocol_fee_rate u16ix-set_reward_authoritywhirlpool, reward_authority, new_reward_authorityargs:
reward_index u8ix-set_reward_authority_by_super_authoritywhirlpools_config, whirlpool, reward_emissions_super_authority, new_reward_authorityargs:
reward_index u8ix-set_reward_emissionswhirlpool, reward_authority, reward_vaultargs:
reward_index u8, emissions_per_second_x64 decimal stringix-set_reward_emissions_super_authoritywhirlpools_config, reward_emissions_super_authority, new_reward_emissions_super_authorityix-set_reward_emissions_v2whirlpool, reward_authority, reward_vaultargs:
reward_index u8, emissions_per_second_x64 decimal stringix-set_token_badge_attributewhirlpools_config, whirlpools_config_extension, token_badge_authority, token_mint, token_badgeargs:
attribute JSON stringix-set_token_badge_authoritywhirlpools_config, whirlpools_config_extension, config_extension_authority, new_token_badge_authorityix-swaptoken_program, token_authority, whirlpool, token_owner_account_a, token_vault_a, token_owner_account_b, token_vault_b, tick_array_0, tick_array_1, tick_array_2, oracleargs:
amount u64, other_amount_threshold u64, sqrt_price_limit decimal string, amount_specified_is_input bool, a_to_b boolix-swap_v2token_program_a, token_program_b, memo_program, token_authority, whirlpool, token_mint_a, token_mint_b, token_owner_account_a, token_vault_a, token_owner_account_b, token_vault_b, tick_array_0, tick_array_1, tick_array_2, oracleargs:
amount u64, other_amount_threshold u64, sqrt_price_limit decimal string, amount_specified_is_input bool, a_to_b bool, remaining_accounts_info JSON stringix-transfer_locked_positionposition_authority, receiver, position, position_mint, position_token_account, destination_token_account, lock_config, token_2022_programix-two_hop_swaptoken_program, token_authority, whirlpool_one, whirlpool_two, token_owner_account_one_a, token_vault_one_a, token_owner_account_one_b, token_vault_one_b, token_owner_account_two_a, token_vault_two_a, token_owner_account_two_b, token_vault_two_b, tick_array_one_0, tick_array_one_1, tick_array_one_2, tick_array_two_0, tick_array_two_1, tick_array_two_2, oracle_one, oracle_twoargs:
amount u64, other_amount_threshold u64, amount_specified_is_input bool, a_to_b_one bool, a_to_b_two bool, sqrt_price_limit_one decimal string, sqrt_price_limit_two decimal stringix-two_hop_swap_v2whirlpool_one, whirlpool_two, token_mint_input, token_mint_intermediate, token_mint_output, token_program_input, token_program_intermediate, token_program_output, token_owner_account_input, token_vault_one_input, token_vault_one_intermediate, token_vault_two_intermediate, token_vault_two_output, token_owner_account_output, token_authority, tick_array_one_0, tick_array_one_1, tick_array_one_2, tick_array_two_0, tick_array_two_1, tick_array_two_2, oracle_one, oracle_two, memo_programargs:
amount u64, other_amount_threshold u64, amount_specified_is_input bool, a_to_b_one bool, a_to_b_two bool, sqrt_price_limit_one decimal string, sqrt_price_limit_two decimal string, remaining_accounts_info JSON stringix-update_fees_and_rewardswhirlpool, position, tick_array_lower, tick_array_upperFiles are split at 2 GB: ix-<name>-tNN-SSSS.parquet. Large integers stay
exact: u128 is a decimal string. All decoded types.
Get Orca Whirlpool data for your range.
Select an epoch range and get a firm price. You pay only when you send the job.