Limit order and DCA

Jupiter Limit Order v2 historical data as Parquet

Every Jupiter Limit Order v2 instruction and event in Solana history, decoded with an Anchor IDL that we checked against real transactions. Trawl gives you 4 event tables and 8 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
j1o2qRpjcyUwEvwtcfhEQefh773ZgjxcVRry7LDqg5X
Preset
jupiter-limit-order-v2
Tables
4 event tables and 8 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 program is newer than its IDL: the last 9 bytes of initialize_order and the last 8 bytes of CreateOrderEvent are not decoded.

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":"jupiter-limit-order-v2","start_epoch":1058,"end_epoch":1058}'

-- then, in DuckDB, on the files of the job
SELECT slot, signature, order_key, taker, remaining_making_amount
FROM 'ev-trade_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-cancel_dust_order_event
fields: order_key base58 string, one_usd_input_mint_amount u64
ev-cancel_order_event
fields: order_key base58 string
ev-create_order_event
fields: order_key base58 string, maker base58 string, input_mint base58 string, output_mint base58 string, input_token_program base58 string, output_token_program base58 string, making_amount u64, taking_amount u64, expired_at i64, fee_bps u16, fee_account base58 string, slippage_bps u16
ev-trade_event
fields: order_key base58 string, taker base58 string, remaining_making_amount u64, remaining_taking_amount u64, making_amount u64, taking_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-cancel_dust_order
accounts: signer, maker, order, input_mint_reserve, maker_input_mint_account, input_mint, input_token_program, system_program, associated_token_program, event_authority, program
args: params JSON string
ix-cancel_order
accounts: signer, maker, order, input_mint_reserve, maker_input_mint_account, input_mint, input_token_program, event_authority, program
ix-fill_order
accounts: taker, maker, order, taker_input_mint_account, taker_output_mint_account, maker_output_mint_account, fee_account, order_input_mint_account, input_mint, input_token_program, output_mint, output_token_program, jupiter_program, system_program, event_authority, program
args: params JSON string
ix-flash_fill_order
accounts: taker, maker, order, input_mint_reserve, maker_output_mint_account, taker_output_mint_account, fee_account, input_token_program, output_mint, output_token_program, system_program, event_authority, program
args: params JSON string
ix-initialize_order
accounts: payer, maker, order, input_mint_reserve, maker_input_mint_account, acct_fee, referral, input_mint, output_mint, input_token_program, output_token_program, system_program, associated_token_program, event_authority, program
args: params JSON string
ix-pre_flash_fill_order
accounts: taker, order, input_mint_reserve, taker_input_mint_account, input_mint, input_token_program, instruction
args: params JSON string
ix-update_fee
accounts: admin, fee_authority, system_program
args: params JSON string
ix-withdraw_fee
accounts: admin, fee_authority, program_fee_account, destination_token_account, token_program, mint

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

Get Jupiter Limit Order v2 data for your range.

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

Get a price