DEX

Byreal CLMM historical data as Parquet

Every Byreal CLMM instruction and event in Solana history, decoded with an Anchor IDL that we checked against real transactions. Trawl gives you 12 event tables and 35 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
REALQqNEomY6cQGZJUGwywTBD2UmDT32rZcNnfxQ5N2
Preset
byreal-clmm
Tables
12 event tables and 35 instruction tables, and part-* with the raw bytes of each match
Transactions
Successful only. Failed transactions changed nothing on the chain, and they are about 16% of the output. "include_failed": true keeps them.
Price
$4 for one recent epoch, $4.62 for one week of chain
Sample
Free, 315 KB

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":"byreal-clmm","start_epoch":1058,"end_epoch":1058}'

-- then, in DuckDB, on the files of the job
SELECT slot, signature, pool_state, sender, token_account_0
FROM 'ev-swap_event-*.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.

Free sample

1,000 slots of epoch 1079, 6 November 2026, 13:41 to 13:45 UTC: every row the preset gives for them. 590 decoded instructions, 590 events and 0 raw rows, in 4 Parquet files. The zip also holds the IDL that decoded them, the schema, the provenance and a SHA-256 list. The samples of all presets cover the same slots, so they join on signature.

Download the sample (315 KB)

# check the zip, then each file in it
echo 'a62af9e25c8256cbc4c599652b4578126adfa77e9847363058b9529eb305ef64  trawl-sample-byreal-clmm-e1079.zip' | sha256sum -c
unzip trawl-sample-byreal-clmm-e1079.zip && cd trawl-sample-byreal-clmm-e1079
sha256sum -c SHA256SUMS

Slots 466,130,000 to 466,130,999. PROVENANCE.txt names the scan build and the SHA-256 of the IDL, which is the same as in the provenance of a paid job with this 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-collect_personal_fee_event
fields: position_nft_mint base58 string, recipient_token_account_0 base58 string, recipient_token_account_1 base58 string, amount_0 u64, amount_1 u64
ev-collect_protocol_fee_event
fields: pool_state base58 string, recipient_token_account_0 base58 string, recipient_token_account_1 base58 string, amount_0 u64, amount_1 u64
ev-config_change_event
fields: index u16, owner base58 string, protocol_fee_rate u32, trade_fee_rate u32, tick_spacing u16, fund_fee_rate u32, fund_owner base58 string
ev-create_personal_position_event
fields: pool_state base58 string, minter base58 string, nft_owner base58 string, tick_lower_index i32, tick_upper_index i32, liquidity decimal string, deposit_amount_0 u64, deposit_amount_1 u64, deposit_amount_0_transfer_fee u64, deposit_amount_1_transfer_fee u64
ev-decrease_liquidity_event
fields: position_nft_mint base58 string, liquidity decimal string, decrease_amount_0 u64, decrease_amount_1 u64, fee_amount_0 u64, fee_amount_1 u64, reward_amounts JSON string, transfer_fee_0 u64, transfer_fee_1 u64
ev-increase_liquidity_event
fields: position_nft_mint base58 string, liquidity decimal string, amount_0 u64, amount_1 u64, amount_0_transfer_fee u64, amount_1_transfer_fee u64
ev-liquidity_calculate_event
fields: pool_liquidity decimal string, pool_sqrt_price_x64 decimal string, pool_tick i32, calc_amount_0 u64, calc_amount_1 u64, trade_fee_owed_0 u64, trade_fee_owed_1 u64, transfer_fee_0 u64, transfer_fee_1 u64
ev-liquidity_change_event
fields: pool_state base58 string, tick i32, tick_lower i32, tick_upper i32, liquidity_before decimal string, liquidity_after decimal string
ev-modify_amm_admin_group_event
fields: fee_keeper base58 string, reward_config_manager base58 string, reward_claim_manager base58 string, pool_manager base58 string, emergency_manager base58 string, normal_manager base58 string
ev-pool_created_event
fields: token_mint_0 base58 string, token_mint_1 base58 string, tick_spacing u16, pool_state base58 string, sqrt_price_x64 decimal string, tick i32, token_vault_0 base58 string, token_vault_1 base58 string
ev-swap_event
fields: pool_state base58 string, sender base58 string, token_account_0 base58 string, token_account_1 base58 string, amount_0 u64, transfer_fee_0 u64, amount_1 u64, transfer_fee_1 u64, zero_for_one bool, sqrt_price_x64 decimal string, liquidity decimal string, tick i32
ev-update_reward_infos_event
fields: reward_growth_global_x64 JSON string

Instruction 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-claim_offchain_reward
accounts: claimer, authority, admin_group, pool_id, token_mint, claimer_token_account, reward_vault_token_account, reward_config, token_program, associated_token_program
args: amount u64
ix-close_position
accounts: nft_owner, position_nft_mint, position_nft_account, personal_position, system_program, token_program
ix-close_protocol_position
accounts: admin_group, fee_keeper, protocol_position, system_program
ix-collect_fund_fee
accounts: admin_group, pool_state, token_vault_0, token_vault_1, vault_0_mint, vault_1_mint, recipient_token_account_0, recipient_token_account_1, token_program, token_program_2022, associated_token_program
args: amount_0_requested u64, amount_1_requested u64
ix-collect_protocol_fee
accounts: admin_group, pool_state, token_vault_0, token_vault_1, vault_0_mint, vault_1_mint, recipient_token_account_0, recipient_token_account_1, token_program, token_program_2022, associated_token_program
args: amount_0_requested u64, amount_1_requested u64
ix-collect_remaining_rewards
accounts: reward_funder, admin_group, funder_token_account, pool_state, reward_token_vault, reward_vault_mint, token_program, token_program_2022, memo_program
args: reward_index u8
ix-create_amm_config
accounts: owner, admin_group, amm_config, system_program
args: index u16, tick_spacing u16, trade_fee_rate u32, protocol_fee_rate u32, fund_fee_rate u32
ix-create_operation_account
accounts: owner, admin_group, operation_state, system_program
ix-create_pool
accounts: pool_creator, pool_manager, admin_group, amm_config, pool_state, offchain_reward_config, token_mint_0, token_mint_1, token_vault_0, token_vault_1, observation_state, tick_array_bitmap, token_program_0, token_program_1, system_program, rent
args: sqrt_price_x64 decimal string, open_time u64
ix-create_pool_decay_fee
accounts: pool_creator, pool_manager, admin_group, amm_config, pool_state, offchain_reward_config, token_mint_0, token_mint_1, token_vault_0, token_vault_1, observation_state, tick_array_bitmap, token_program_0, token_program_1, system_program, rent
args: params JSON string
ix-create_support_mint_associated
accounts: owner, admin_group, token_mint, support_mint_associated, system_program
ix-decrease_liquidity
accounts: nft_owner, nft_account, personal_position, pool_state, protocol_position, token_vault_0, token_vault_1, tick_array_lower, tick_array_upper, recipient_token_account_0, recipient_token_account_1, token_program
args: liquidity decimal string, amount_0_min u64, amount_1_min u64
ix-decrease_liquidity_v2
accounts: nft_owner, nft_account, personal_position, pool_state, protocol_position, token_vault_0, token_vault_1, tick_array_lower, tick_array_upper, recipient_token_account_0, recipient_token_account_1, token_program, token_program_2022, memo_program, vault_0_mint, vault_1_mint
args: liquidity decimal string, amount_0_min u64, amount_1_min u64
ix-deposit_offchain_reward
accounts: payer, authority, admin_group, pool_id, token_mint, payer_token_account, reward_vault_token_account, reward_config, token_program, associated_token_program, system_program
args: amount u64
ix-increase_liquidity
accounts: nft_owner, nft_account, pool_state, protocol_position, personal_position, tick_array_lower, tick_array_upper, token_account_0, token_account_1, token_vault_0, token_vault_1, token_program
args: liquidity decimal string, amount_0_max u64, amount_1_max u64
ix-increase_liquidity_v2
accounts: nft_owner, nft_account, pool_state, protocol_position, personal_position, tick_array_lower, tick_array_upper, token_account_0, token_account_1, token_vault_0, token_vault_1, token_program, token_program_2022, vault_0_mint, vault_1_mint
args: liquidity decimal string, amount_0_max u64, amount_1_max u64, base_flag bool
ix-init_amm_admin_group
accounts: payer, admin_group, system_program
args: params JSON string
ix-initialize_reward
accounts: reward_funder, admin_group, funder_token_account, amm_config, pool_state, operation_state, reward_token_mint, reward_token_vault, reward_token_program, system_program, rent
args: param JSON string
ix-open_position
accounts: payer, position_nft_owner, position_nft_mint, position_nft_account, metadata_account, pool_state, protocol_position, tick_array_lower, tick_array_upper, personal_position, token_account_0, token_account_1, token_vault_0, token_vault_1, rent, system_program, token_program, associated_token_program, metadata_program
args: tick_lower_index i32, tick_upper_index i32, tick_array_lower_start_index i32, tick_array_upper_start_index i32, liquidity decimal string, amount_0_max u64, amount_1_max u64
ix-open_position_v2
accounts: payer, position_nft_owner, position_nft_mint, position_nft_account, metadata_account, pool_state, protocol_position, tick_array_lower, tick_array_upper, personal_position, token_account_0, token_account_1, token_vault_0, token_vault_1, rent, system_program, token_program, associated_token_program, metadata_program, token_program_2022, vault_0_mint, vault_1_mint
args: tick_lower_index i32, tick_upper_index i32, tick_array_lower_start_index i32, tick_array_upper_start_index i32, liquidity decimal string, amount_0_max u64, amount_1_max u64, with_metadata bool, base_flag bool
ix-open_position_with_token22_nft
accounts: payer, position_nft_owner, position_nft_mint, position_nft_account, pool_state, protocol_position, tick_array_lower, tick_array_upper, personal_position, token_account_0, token_account_1, token_vault_0, token_vault_1, rent, system_program, token_program, associated_token_program, token_program_2022, vault_0_mint, vault_1_mint
args: tick_lower_index i32, tick_upper_index i32, tick_array_lower_start_index i32, tick_array_upper_start_index i32, liquidity decimal string, amount_0_max u64, amount_1_max u64, with_metadata bool, base_flag bool
ix-set_pool_quote_flag
accounts: authority, admin_group, pool_state
args: token1_as_quote bool
ix-set_pool_trade_fee_rate
accounts: authority, admin_group, pool_state
args: trade_fee_rate u32
ix-set_reward_params
accounts: authority, admin_group, amm_config, pool_state, operation_state, token_program, token_program_2022
args: reward_index u8, emissions_per_second_x64 decimal string, open_time u64, end_time u64
ix-set_swap_dynamic_fee_params
accounts: authority, admin_group, pool_state
args: params JSON string
ix-swap
accounts: payer, amm_config, pool_state, input_token_account, output_token_account, input_vault, output_vault, observation_state, token_program, tick_array
args: amount u64, other_amount_threshold u64, sqrt_price_limit_x64 decimal string, is_base_input bool
ix-swap_v2
accounts: payer, amm_config, pool_state, input_token_account, output_token_account, input_vault, output_vault, observation_state, token_program, token_program_2022, memo_program, input_vault_mint, output_vault_mint
args: amount u64, other_amount_threshold u64, sqrt_price_limit_x64 decimal string, is_base_input bool
ix-swap_v3_dyn
accounts: payer, amm_config, pool_state, input_token_account, output_token_account, input_vault, output_vault, observation_state, token_program, token_program_2022, memo_program, input_vault_mint, output_vault_mint
args: amount u64, other_amount_threshold u64, sqrt_price_limit_x64 decimal string, is_base_input bool
ix-transfer_reward_owner
accounts: authority, admin_group, pool_state
args: new_owner base58 string
ix-update_amm_admin_group
accounts: payer, admin_group
args: params JSON string
ix-update_amm_config
accounts: owner, admin_group, amm_config
args: param u8, value u32
ix-update_operation_account
accounts: owner, admin_group, operation_state, system_program
args: param u8, keys JSON string
ix-update_pool_status
accounts: authority, admin_group, pool_state
args: status u8
ix-update_reward_infos
accounts: pool_state
ix-withdraw_offchain_reward
accounts: authority, admin_group, pool_id, token_mint, receiver_token_account, reward_vault_token_account, reward_config, token_program, associated_token_program
args: amount u64

Files are split by epoch and at 2 GB: eEEEE-ix-<name>-tNN-SSSS.parquet. Large integers stay exact: u128 is a decimal string. All decoded types.

Get Byreal CLMM data for your range.

Select an epoch range and get a firm price. You pay only when you send the job.

Get a price