If you require tx-level detail for records in this table, see here for more info.

solana.dex.aggregator_trades currently includes the following aggregator programs:

Program
raydium-router
jupiter-aggregator-v2
jupiter-aggregator-v3
jupiter-aggregator-v4
jupiter-aggregator-v5
jupiter-aggregator-v5.1
jupiter-aggregator-v6
saber-router
photon

Most of the columns in this table have the same meaning as the ones in trades. Main differences:

  • The aggregators use a variety of fill sources to fill the trade order. These can be found in the column FILL_SOURCES.

  • This table has a USD_AMOUNTS column to gain visibility of the amounts traded at each of the hops.

Notes on referrers

  • There is a class of aggregators termed ‘referrers’ who do not using a custom program to call their fill sources. Instead, the referrers call existing aggregators/AMMs in a direct instruction, but attach a subsequent instruction to transfer a fee for usage. e.g. of a pumpfun initiated by photon

  • In our dataset, aggregator trades are represented with aggregator=<aggregator> and program_id=<aggregator's program_id>

  • In contrast, referrer initiated trades are represented with aggregator=<referrer> and program_id=<underlying aggregator/amm's program id>

Known gaps

  • Due to lack of the most updated IDL, okx aggregator decoding fails for instruction methods FillOrderByResolver PlatformFeeSplProxySwap PlatformFeeSolProxySwap CommissionFillOrder. Trades for these methods will be backfilled when IDL is available. Collectively, it is estimated that these methods take up 0.5-1% of okx aggregator swaps

  • Due to lack of the most updated IDL, jupiter v6 aggregator decoding fails for a small number of swaps involving fill sources Perena (NUMERUNsFCP3kuNmWZuXtm1AaQCPj9uw6Guv2Ekoi5P) and Guacswap (Guacswap). Trades for these fillsources will be backfilled when IDL is available. Collectively, it is estimated that these fill sources account for < 0.5% of jupiter v6 swap volume.

Table Columns

Column NameDescriptionTypeExample
aggregatorThe aggregator/referrer that executes the trade. See #notes-on-referrersvarcharjupiter-v4-aggregator
sender_addressThe address of the sender emitted on the swap event logs. This can be a router or pool address, which is different from the transaction initatior transaction_from_address that initiated the swap.varchar9doNJz52PMd8bi3FKRV9gfXa5nXLDjoW1SBVMbmAuuSh
to_addressAddress where the token is being transferred to.varchar9doNJz52PMd8bi3FKRV9gfXa5nXLDjoW1SBVMbmAuuSh
sender_token_accAddress of the account sending the token.varcharGaamrfkoR862pJDUBPzzrdZny4RSNFxUr8f7eRYRKqrq
to_token_accAddress of the account receiving the token.varcharDv7HRmd6MTPghRpLSr6aS6y9z638E6Apx3W7w5CabNrR
token_sold_mintMint address of the token sold.varchar7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj
token_sold_symbolSymbol of the token sold.varcharstSOL
token_sold_amount_rawRaw amount of tokens sold (unnormalized).float428,240,429
token_sold_amount_raw_strRaw amount of tokens sold (unnormalized) in string.varchar428240429
token_sold_amountAmount of tokens sold.float0.428240429
token_sold_amount_strAmount of tokens sold in string.varchar0.428240429
usd_sold_amountAmount of token sold in USD value.float10.01002788
usd_sold_exchange_rateUSD exchange rate of the token sold.float23.3748172
token_bought_mintMint address of the token bought.varcharSo11111111111111111111111111111111111111112
token_bought_symbolSymbol of the token bought.varcharSOL
token_bought_amount_rawRaw amount of tokens bought (unnormalized).float472,388,367
token_bought_amount_raw_strRaw amount of tokens bought (unnormalized) in string.varchar472388367
token_bought_amountAmount of tokens bought.float0.472388367
token_bought_amount_strAmount of tokens bought in string.varchar0.472388367
usd_bought_amountAmount of token bought in USD value.float9.995737846
usd_bought_exchange_rateUSD exchange rate of the token bought.float21.16
usd_amountUSD value of the token amount transferred.float9.995737846
fill_sourcesThe underlying fill sources that are used to fulfil the tradevariant[ “orca|orca-v2”, “raydium|raydium-clmm”, “raydium|raydium-v4”, “raydium|raydium-clmm” ]
usd_amountsThe USD amounts traded at each of the fill sources.variant[ “12.859238804”, “12.818011912”, “8.575348968”, “8.548017279” ]
tokens_sold_symbolsArray of tokens bought.variant[ “soBTC”, “mSOL”, “soBTC”, “stSOL” ]
tokens_bought_symbolsArray of tokens sold.variant[ “mSOL”, “SOL”, “stSOL”, “SOL” ]
token_pairsArray of token pairs traded.variant[ “soBTC-mSOL”, “mSOL-SOL”, “soBTC-stSOL”, “stSOL-SOL” ]
signerAddress of the transaction signer.varchar9doNJz52PMd8bi3FKRV9gfXa5nXLDjoW1SBVMbmAuuSh
block_slotBlock slot of the transfer.number192,826,770
block_heightBlock height of the transfernumber175,699,063
block_timestampBlock timestamp of the transfer.timestamp_ntz2023-05-08 16:47:45
block_hashBlock hash of the transfer.varcharxSiG9AgdNfgKRhXyrd92EgLuQ5N6NVURdHNFN5U3TPM
txn_idTransaction ID of the transfer.varchar2HtfMAqb1meoJHB1kmDvPzfZWpjDu3JYV5cmruftATE2VpgASSEUtjsYdc3CD86vyM9RJAGMZDHx6ZFM5VvgiJMX
txn_indexTransaction Index of the transfer.number747
instruction_indexTransfer instruction index.number0
inner_instruction_indexTransfer inner instruction index.number4
program_idProgram ID of the program that executed the trade. See #notes-on-referrersvarcharSSwpkEEcbUqx4vtoEByFjSkhKdCT862DNVb52nZg1UZ
accountsArray of pubkey addresses from the account_keys fieldvariant<too long to display>
dataData field.varchareDt4c2UN1PNdapr97JsGk7
selectorThe first bytes of the program datavarchare5
unique_idUnique id of the trade.varchartxn_id-2HtfMAqb1meoJHB1kmDvPzfZWpjDu3JYV5cmruftATE2VpgASSEUtjsYdc3CD86vyM9RJAGMZDHx6ZFM5VvgiJMX_i_index-0_ii_index-4