Aggregator

DFlow historical data as Parquet

Every DFlow instruction and event in Solana history, decoded with an Anchor IDL that we checked against real transactions. Trawl gives you 3 event tables and 18 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
DF1ow4tspfHX9JwWJsAb9epbkA8hmpSEAtxXy1V27QBH
Preset
dflow
Tables
3 event tables and 18 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 6% of the output. "include_failed": true keeps them.
Price
$4 for one recent epoch, $4.62 for one week of chain
Sample
Free, 1.1 MB

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

-- then, in DuckDB, on the files of the job
SELECT slot, signature, amm, input_mint, input_amount
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. 2,458 decoded instructions, 4,029 events and 0 raw rows, in 11 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 (1.1 MB)

# check the zip, then each file in it
echo '50330ec280da6e109f085ac0a4634a3cb8e6acf1380fc5ff7dc9b37021610173  trawl-sample-dflow-e1079.zip' | sha256sum -c
unzip trawl-sample-dflow-e1079.zip && cd trawl-sample-dflow-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-fee_event
fields: account base58 string, mint base58 string, amount u64
ev-fee_withdrawal_event
fields: fee_vault base58 string, destination base58 string, mint base58 string, amount u64
ev-swap_event
fields: amm base58 string, input_mint base58 string, input_amount u64, output_mint base58 string, output_amount u64

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-close_empty_token_account
accounts: token_account, authority, destination, token_program
ix-close_order
accounts: order, order_vault, return_input_token_account, return_rent_to, closer, token_program, system_program
ix-create_referral_token_account_idempotent
accounts: payer, project, referral_account, referral_token_account, mint, system_program, token_program, referral_program
ix-fill_order
accounts: order, order_vault, output_token_account, return_input_token_account, return_rent_to, filler_input_token_account, input_mint, filler_output_token_account, output_mint, filler, token_program, associated_token_program, system_program, event_authority, program
args: params JSON string
ix-init_market_ledger_idempotent
accounts: predictions_program, market_ledger, market_ledger_redemption_vault, market_ledger_order_vault, market_ledger_reduce_yes_vault, market_ledger_reduce_no_vault, settlement_escrow, escrow_mint, market_yes_outcome_mint, market_no_outcome_mint, payer, outcome_token_program, escrow_token_program, system_program
args: market_id binary
ix-open_order
accounts: order, order_vault, input_token_account, output_token_account, return_input_token_account, input_mint, user_token_authority, fee_payer, fee_receiver, rent_depositor, token_program, system_program, rent
args: params JSON string
ix-swap
accounts: token_program, associated_token_program, system_program, user_token_authority, event_authority, program
args: params JSON string
ix-swap2
accounts: token_program, associated_token_program, system_program, user_token_authority, event_authority, program
args: params JSON string
ix-swap2_with_destination
accounts: token_program, associated_token_program, system_program, user_token_authority, destination_token_account, destination_token_authority, destination_mint, event_authority, program
args: params JSON string
ix-swap2_with_destination_native
accounts: token_program, associated_token_program, system_program, user_token_authority, destination_account, event_authority, program
args: params JSON string
ix-swap_with_destination
accounts: token_program, associated_token_program, system_program, user_token_authority, destination_token_account, destination_token_authority, destination_mint, event_authority, program
args: params JSON string
ix-swap_with_destination_native
accounts: token_program, associated_token_program, system_program, user_token_authority, destination_account, event_authority, program
args: params JSON string
ix-transfer_fee
accounts: from, to, authority, token_program, event_authority, program
args: amount u64
ix-transfer_sol
accounts: from, to, system_program
args: lamports u64
ix-transfer_to_sponsor
accounts: user_token_authority, user_token_account, sponsor, sponsor_token_account, mint, token_program, associated_token_program, system_program
args: amount u64
ix-unwrap_sol
accounts: owner, wrapped_sol_associated_token_account, token_program
ix-withdraw_fees
accounts: withdrawer, fee_vault, destination, mint, program_authority, token_program, event_authority, program
args: amount u64
ix-wrap_sol
accounts: from, wrapped_sol_associated_token_account, native_mint, token_program, associated_token_program, system_program
args: lamports 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 DFlow data for your range.

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

Get a price