Raydium CPMM historical data as Parquet
Every Raydium CPMM instruction and event in Solana history, decoded with an Anchor IDL that we checked against real transactions. Trawl gives you 2 event tables and 14 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
- CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C
- Preset
raydium-cpmm- Tables
- 2 event tables and 14 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":"raydium-cpmm","start_epoch":1058,"end_epoch":1058}' -- then, in DuckDB, on the files of the job SELECT slot, signature, pool_id, input_vault_before, output_vault_before 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.
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-lp_change_eventpool_id base58 string, lp_amount_before u64, token_0_vault_before u64, token_1_vault_before u64, token_0_amount u64, token_1_amount u64, token_0_transfer_fee u64, token_1_transfer_fee u64, change_type u8ev-swap_eventpool_id base58 string, input_vault_before u64, output_vault_before u64, input_amount u64, output_amount u64, input_transfer_fee u64, output_transfer_fee u64, base_input bool, input_mint base58 string, output_mint base58 string, trade_fee u64, creator_fee u64, creator_fee_on_input boolInstruction 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_permission_pdaowner, permission_authority, permission, system_programix-collect_creator_feecreator, authority, pool_state, amm_config, token_0_vault, token_1_vault, vault_0_mint, vault_1_mint, creator_token_0, creator_token_1, token_0_program, token_1_program, associated_token_program, system_programix-collect_fund_feeowner, authority, pool_state, amm_config, token_0_vault, token_1_vault, vault_0_mint, vault_1_mint, recipient_token_0_account, recipient_token_1_account, token_program, token_program_2022args:
amount_0_requested u64, amount_1_requested u64ix-collect_protocol_feeowner, authority, pool_state, amm_config, token_0_vault, token_1_vault, vault_0_mint, vault_1_mint, recipient_token_0_account, recipient_token_1_account, token_program, token_program_2022args:
amount_0_requested u64, amount_1_requested u64ix-create_amm_configowner, amm_config, system_programargs:
index u16, trade_fee_rate u64, protocol_fee_rate u64, fund_fee_rate u64, create_pool_fee u64, creator_fee_rate u64ix-create_permission_pdaowner, permission_authority, permission, system_programix-depositowner, authority, pool_state, owner_lp_token, token_0_account, token_1_account, token_0_vault, token_1_vault, token_program, token_program_2022, vault_0_mint, vault_1_mint, lp_mintargs:
lp_token_amount u64, maximum_token_0_amount u64, maximum_token_1_amount u64ix-initializecreator, amm_config, authority, pool_state, token_0_mint, token_1_mint, lp_mint, creator_token_0, creator_token_1, creator_lp_token, token_0_vault, token_1_vault, create_pool_fee, observation_state, token_program, token_0_program, token_1_program, associated_token_program, system_program, rentargs:
init_amount_0 u64, init_amount_1 u64, open_time u64ix-initialize_with_permissionpayer, creator, amm_config, authority, pool_state, token_0_mint, token_1_mint, lp_mint, payer_token_0, payer_token_1, payer_lp_token, token_0_vault, token_1_vault, create_pool_fee, observation_state, permission, token_program, token_0_program, token_1_program, associated_token_program, system_programargs:
init_amount_0 u64, init_amount_1 u64, open_time u64, creator_fee_on variant nameix-swap_base_inputpayer, authority, amm_config, pool_state, input_token_account, output_token_account, input_vault, output_vault, input_token_program, output_token_program, input_token_mint, output_token_mint, observation_stateargs:
amount_in u64, minimum_amount_out u64ix-swap_base_outputpayer, authority, amm_config, pool_state, input_token_account, output_token_account, input_vault, output_vault, input_token_program, output_token_program, input_token_mint, output_token_mint, observation_stateargs:
max_amount_in u64, amount_out u64ix-update_amm_configowner, amm_configargs:
param u8, value u64ix-update_pool_statusauthority, pool_stateargs:
status u8ix-withdrawowner, authority, pool_state, owner_lp_token, token_0_account, token_1_account, token_0_vault, token_1_vault, token_program, token_program_2022, vault_0_mint, vault_1_mint, lp_mint, memo_programargs:
lp_token_amount u64, minimum_token_0_amount u64, minimum_token_1_amount u64Files are split at 2 GB: ix-<name>-tNN-SSSS.parquet. Large integers stay
exact: u128 is a decimal string. All decoded types.
Get Raydium CPMM data for your range.
Select an epoch range and get a firm price. You pay only when you send the job.