From 0e6407486d6012e6f2d81f4cb935fe4fd613cc49 Mon Sep 17 00:00:00 2001 From: tarikceric <46071768+tarikceric@users.noreply.github.com> Date: Thu, 17 Jul 2025 15:29:52 -0700 Subject: [PATCH] An 6390/llm context descriptions 2 (#859) * update defi table desc * complete defi table update * move col desc to folder; add nft docs * cleanup --- models/descriptions/bridge/bridge_activity.md | 27 +++++++- models/descriptions/burn_amount.md | 5 -- .../{ => columns}/_inserted_timestamp.md | 0 .../{ => columns}/_invocation_id.md | 0 .../{ => columns}/account_address.md | 0 .../{ => columns}/account_keys.md | 0 models/descriptions/{ => columns}/action.md | 0 models/descriptions/{ => columns}/address.md | 0 .../{ => columns}/address_name.md | 0 .../columns/aggregator_program_id.md | 10 +++ models/descriptions/{ => columns}/amount.md | 0 .../descriptions/{ => columns}/amount_usd.md | 0 models/descriptions/columns/authority.md | 10 +++ .../{ => columns}/backfill_status.md | 0 .../descriptions/{ => columns}/block_hash.md | 0 .../{ => columns}/block_height.md | 0 models/descriptions/{ => columns}/block_id.md | 0 .../{ => columns}/block_timestamp.md | 0 .../descriptions/{ => columns}/blockchain.md | 0 .../columns/bridge_user_address.md | 10 +++ models/descriptions/columns/burn_amount.md | 10 +++ models/descriptions/columns/burn_authority.md | 10 +++ models/descriptions/{ => columns}/chain_id.md | 0 models/descriptions/columns/collection_id.md | 10 +++ .../{ => columns}/contract_address.md | 0 .../{ => columns}/contract_name.md | 0 .../{ => columns}/created_at_timestamp.md | 0 models/descriptions/{ => columns}/creator.md | 0 .../{ => columns}/creator_address.md | 0 .../{ => columns}/creator_name.md | 0 models/descriptions/columns/creators.md | 10 +++ .../descriptions/columns/currency_address.md | 10 +++ .../descriptions/columns/currency_symbol.md | 10 +++ .../{ => columns}/date_submitted.md | 0 models/descriptions/columns/dca_requester.md | 10 +++ models/descriptions/{ => columns}/decimal.md | 0 .../{ => columns}/decoded_accounts.md | 0 .../{ => columns}/decoded_args.md | 0 .../{ => columns}/decoded_instruction.md | 0 .../{ => columns}/decoding_error.md | 0 .../{ => columns}/earliest_decoded_block.md | 0 .../descriptions/{ => columns}/end_block.md | 0 .../{ => columns}/end_block_id.md | 0 models/descriptions/{ => columns}/epoch.md | 0 .../{ => columns}/epoch_earned.md | 0 .../descriptions/{ => columns}/event_index.md | 0 .../descriptions/{ => columns}/event_type.md | 0 .../{ => columns}/ez_core_metrics.md | 0 models/descriptions/{ => columns}/fee.md | 0 .../{ => columns}/first_block_id.md | 0 .../{ => columns}/first_program_id.md | 0 .../{ => columns}/first_tx_date.md | 0 .../{ => columns}/gov_action_action.md | 0 .../{ => columns}/gov_action_amount.md | 0 .../gov_action_escrow_account.md | 0 .../gov_action_locker_account.md | 0 .../{ => columns}/gov_action_locker_nft.md | 0 .../{ => columns}/gov_action_mint.md | 0 .../{ => columns}/gov_action_signer.md | 0 models/descriptions/{ => columns}/id.md | 0 models/descriptions/{ => columns}/idl.md | 0 models/descriptions/{ => columns}/idl_hash.md | 0 .../descriptions/{ => columns}/image_url.md | 0 models/descriptions/{ => columns}/index.md | 0 .../descriptions/{ => columns}/ingested_at.md | 0 .../descriptions/{ => columns}/inner_index.md | 0 .../{ => columns}/inner_instruction.md | 0 .../{ => columns}/inner_instructions.md | 0 .../{ => columns}/inserted_timestamp.md | 0 .../descriptions/{ => columns}/instruction.md | 0 .../{ => columns}/instruction_program_id.md | 0 .../{ => columns}/instructions.md | 0 .../descriptions/{ => columns}/is_active.md | 0 .../{ => columns}/is_compressed.md | 0 .../descriptions/columns/is_compressed_nft.md | 10 +++ models/descriptions/columns/is_dca_swap.md | 10 +++ models/descriptions/columns/is_limit_swap.md | 10 +++ models/descriptions/{ => columns}/is_valid.md | 0 models/descriptions/{ => columns}/label.md | 0 .../{ => columns}/label_subtype.md | 0 .../descriptions/{ => columns}/label_type.md | 0 .../{ => columns}/last_activity_timestamp.md | 0 .../{ => columns}/last_program_id.md | 0 .../{ => columns}/last_tx_date.md | 0 .../descriptions/{ => columns}/leaf_index.md | 0 .../descriptions/columns/limit_requester.md | 10 +++ .../columns/liquidity_pool_address.md | 10 +++ .../columns/liquidity_pool_name.md | 10 +++ .../columns/liquidity_pool_platform.md | 10 +++ .../liquidity_pool_token_mint.md | 0 .../columns/liquidity_provider.md | 10 +++ models/descriptions/columns/log_id.md | 10 +++ .../descriptions/{ => columns}/log_index.md | 0 .../{ => columns}/log_messages.md | 0 .../descriptions/{ => columns}/marketplace.md | 0 .../columns/marketplace_version.md | 10 +++ .../descriptions/{ => columns}/merkle_tree.md | 0 models/descriptions/{ => columns}/mint.md | 0 models/descriptions/columns/mint_amount.md | 10 +++ models/descriptions/columns/mint_authority.md | 10 +++ models/descriptions/columns/mint_currency.md | 10 +++ .../descriptions/{ => columns}/mint_payer.md | 0 models/descriptions/columns/mint_price.md | 10 +++ .../{ => columns}/mint_standard_type.md | 0 .../{ => columns}/modified_timestamp.md | 0 models/descriptions/{ => columns}/network.md | 0 .../columns/nft_collection_name.md | 10 +++ models/descriptions/columns/nft_name.md | 10 +++ .../{ => columns}/num_days_active.md | 0 models/descriptions/{ => columns}/num_txs.md | 0 models/descriptions/{ => columns}/owner.md | 0 models/descriptions/{ => columns}/pk.md | 0 .../{ => columns}/post_balance.md | 0 .../{ => columns}/post_balances.md | 0 .../{ => columns}/post_token_balances.md | 0 .../{ => columns}/pre_balances.md | 0 .../{ => columns}/pre_token_balances.md | 0 .../{ => columns}/previous_block_hash.md | 0 .../{ => columns}/previous_block_id.md | 0 models/descriptions/columns/price_usd.md | 10 +++ .../descriptions/{ => columns}/program_id.md | 0 .../{ => columns}/programs_used.md | 0 .../{ => columns}/project_name.md | 0 .../descriptions/{ => columns}/purchaser.md | 0 .../{ => columns}/recent_block_hash.md | 0 .../{ => columns}/sales_amount.md | 0 models/descriptions/{ => columns}/seller.md | 0 models/descriptions/{ => columns}/signer.md | 0 models/descriptions/{ => columns}/signers.md | 0 .../{ => columns}/stake_account.md | 0 .../{ => columns}/stake_authority.md | 0 models/descriptions/columns/stake_pool.md | 10 +++ .../descriptions/columns/stake_pool_action.md | 10 +++ .../columns/stake_pool_address.md | 10 +++ .../descriptions/columns/stake_pool_amount.md | 10 +++ .../stake_pool_deposit_authority.md | 0 .../descriptions/columns/stake_pool_name.md | 10 +++ .../stake_pool_reserve_stake_address.md | 0 .../descriptions/columns/stake_pool_token.md | 10 +++ .../stake_pool_withdraw_authority.md | 0 .../descriptions/{ => columns}/start_block.md | 0 .../{ => columns}/start_block_id.md | 0 .../{ => columns}/submitted_by.md | 0 .../columns/swap_from_amount_usd.md | 10 +++ .../descriptions/columns/swap_from_symbol.md | 10 +++ models/descriptions/columns/swap_program.md | 10 +++ .../descriptions/columns/swap_program_id.md | 10 +++ .../columns/swap_to_amount_usd.md | 10 +++ models/descriptions/columns/swap_to_symbol.md | 10 +++ models/descriptions/columns/swaps_from_amt.md | 10 +++ .../descriptions/columns/swaps_from_mint.md | 10 +++ .../descriptions/columns/swaps_swap_index.md | 10 +++ models/descriptions/columns/swaps_swapper.md | 10 +++ models/descriptions/columns/swaps_to_amt.md | 10 +++ models/descriptions/columns/swaps_to_mint.md | 10 +++ models/descriptions/{ => columns}/symbol.md | 2 +- .../{ => columns}/table_dim_labels.md | 0 .../{ => columns}/token_a_account.md | 0 .../{ => columns}/token_a_amount.md | 0 .../columns/token_a_amount_usd.md | 10 +++ .../{ => columns}/token_a_mint.md | 0 models/descriptions/columns/token_account.md | 10 +++ .../{ => columns}/token_b_account.md | 0 .../{ => columns}/token_b_amount.md | 0 .../columns/token_b_amount_usd.md | 10 +++ .../{ => columns}/token_b_mint.md | 0 models/descriptions/columns/token_c_amount.md | 10 +++ .../columns/token_c_amount_usd.md | 10 +++ models/descriptions/columns/token_c_mint.md | 10 +++ models/descriptions/columns/token_d_amount.md | 10 +++ .../columns/token_d_amount_usd.md | 10 +++ models/descriptions/columns/token_d_mint.md | 10 +++ models/descriptions/{ => columns}/token_id.md | 0 .../{ => columns}/token_metadata.md | 0 .../{ => columns}/token_metadata_uri.md | 0 .../descriptions/{ => columns}/token_name.md | 0 .../descriptions/{ => columns}/total_fees.md | 0 .../{ => columns}/tree_authority.md | 0 .../{ => columns}/tribeca_gauge.md | 0 .../tribeca_gauge_delegated_shares.md | 0 .../{ => columns}/tribeca_gauge_power.md | 0 .../tribeca_gauge_validator_account.md | 0 .../{ => columns}/tribeca_gauge_voter.md | 0 .../{ => columns}/tribeca_gaugemeister.md | 0 models/descriptions/{ => columns}/tx_from.md | 0 models/descriptions/{ => columns}/tx_id.md | 0 models/descriptions/{ => columns}/tx_index.md | 0 models/descriptions/{ => columns}/tx_size.md | 0 .../{ => columns}/tx_succeeded.md | 0 models/descriptions/{ => columns}/tx_to.md | 0 .../{ => columns}/units_consumed.md | 0 .../descriptions/{ => columns}/units_limit.md | 0 .../descriptions/{ => columns}/vote_pubkey.md | 0 .../{ => columns}/withdraw_authority.md | 0 models/descriptions/liquidity_pool_address.md | 5 -- models/descriptions/liquidity_provider.md | 5 -- models/descriptions/mint_amount.md | 5 -- models/descriptions/mint_currency.md | 5 -- models/descriptions/mint_price.md | 5 -- models/descriptions/stake_pool.md | 5 -- models/descriptions/stake_pool_action.md | 5 -- models/descriptions/stake_pool_address.md | 5 -- models/descriptions/stake_pool_amount.md | 5 -- models/descriptions/swaps_from_amt.md | 5 -- models/descriptions/swaps_from_mint.md | 5 -- models/descriptions/swaps_swap_index.md | 5 -- models/descriptions/swaps_swapper.md | 5 -- models/descriptions/swaps_to_amt.md | 5 -- models/descriptions/swaps_to_mint.md | 5 -- .../descriptions/tables/dim_nft_metadata.md | 30 +++++++++ models/descriptions/tables/ez_dex_swaps.md | 20 ++++++ .../tables/ez_liquidity_pool_actions.md | 26 ++++++++ models/descriptions/tables/ez_nft_sales.md | 35 ++++++++++ .../tables/fact_bridge_activity.md | 27 ++++++++ .../tables/fact_nft_burn_actions.md | 29 +++++++++ .../tables/fact_nft_mint_actions.md | 28 ++++++++ models/descriptions/tables/fact_nft_mints.md | 30 +++++++++ .../tables/fact_stake_pool_actions.md | 27 ++++++++ models/descriptions/tables/fact_swaps.md | 22 +++++++ .../tables/fact_swaps_jupiter_inner.md | 19 ++++++ .../tables/fact_swaps_jupiter_summary.md | 19 ++++++ .../tables/fact_token_burn_actions.md | 27 ++++++++ .../tables/fact_token_mint_actions.md | 27 ++++++++ models/descriptions/token_account.md | 5 -- models/gold/defi/defi__ez_dex_swaps.yml | 34 +++++----- .../defi/defi__ez_liquidity_pool_actions.yml | 64 ++++++++----------- .../gold/defi/defi__fact_bridge_activity.yml | 14 ++-- .../defi/defi__fact_stake_pool_actions.yml | 16 ++--- models/gold/defi/defi__fact_swaps.yml | 22 +++---- .../defi/defi__fact_swaps_jupiter_inner.yml | 22 ++++--- .../defi/defi__fact_swaps_jupiter_summary.yml | 28 ++++---- .../defi/defi__fact_token_burn_actions.yml | 16 ++--- .../defi/defi__fact_token_mint_actions.yml | 16 ++--- models/gold/nft/nft__dim_nft_metadata.yml | 12 ++-- models/gold/nft/nft__ez_nft_sales.yml | 20 +++--- .../gold/nft/nft__fact_nft_burn_actions.yml | 8 +-- .../gold/nft/nft__fact_nft_mint_actions.yml | 8 +-- models/gold/nft/nft__fact_nft_mints.yml | 4 +- 238 files changed, 1072 insertions(+), 232 deletions(-) delete mode 100644 models/descriptions/burn_amount.md rename models/descriptions/{ => columns}/_inserted_timestamp.md (100%) rename models/descriptions/{ => columns}/_invocation_id.md (100%) rename models/descriptions/{ => columns}/account_address.md (100%) rename models/descriptions/{ => columns}/account_keys.md (100%) rename models/descriptions/{ => columns}/action.md (100%) rename models/descriptions/{ => columns}/address.md (100%) rename models/descriptions/{ => columns}/address_name.md (100%) create mode 100644 models/descriptions/columns/aggregator_program_id.md rename models/descriptions/{ => columns}/amount.md (100%) rename models/descriptions/{ => columns}/amount_usd.md (100%) create mode 100644 models/descriptions/columns/authority.md rename models/descriptions/{ => columns}/backfill_status.md (100%) rename models/descriptions/{ => columns}/block_hash.md (100%) rename models/descriptions/{ => columns}/block_height.md (100%) rename models/descriptions/{ => columns}/block_id.md (100%) rename models/descriptions/{ => columns}/block_timestamp.md (100%) rename models/descriptions/{ => columns}/blockchain.md (100%) create mode 100644 models/descriptions/columns/bridge_user_address.md create mode 100644 models/descriptions/columns/burn_amount.md create mode 100644 models/descriptions/columns/burn_authority.md rename models/descriptions/{ => columns}/chain_id.md (100%) create mode 100644 models/descriptions/columns/collection_id.md rename models/descriptions/{ => columns}/contract_address.md (100%) rename models/descriptions/{ => columns}/contract_name.md (100%) rename models/descriptions/{ => columns}/created_at_timestamp.md (100%) rename models/descriptions/{ => columns}/creator.md (100%) rename models/descriptions/{ => columns}/creator_address.md (100%) rename models/descriptions/{ => columns}/creator_name.md (100%) create mode 100644 models/descriptions/columns/creators.md create mode 100644 models/descriptions/columns/currency_address.md create mode 100644 models/descriptions/columns/currency_symbol.md rename models/descriptions/{ => columns}/date_submitted.md (100%) create mode 100644 models/descriptions/columns/dca_requester.md rename models/descriptions/{ => columns}/decimal.md (100%) rename models/descriptions/{ => columns}/decoded_accounts.md (100%) rename models/descriptions/{ => columns}/decoded_args.md (100%) rename models/descriptions/{ => columns}/decoded_instruction.md (100%) rename models/descriptions/{ => columns}/decoding_error.md (100%) rename models/descriptions/{ => columns}/earliest_decoded_block.md (100%) rename models/descriptions/{ => columns}/end_block.md (100%) rename models/descriptions/{ => columns}/end_block_id.md (100%) rename models/descriptions/{ => columns}/epoch.md (100%) rename models/descriptions/{ => columns}/epoch_earned.md (100%) rename models/descriptions/{ => columns}/event_index.md (100%) rename models/descriptions/{ => columns}/event_type.md (100%) rename models/descriptions/{ => columns}/ez_core_metrics.md (100%) rename models/descriptions/{ => columns}/fee.md (100%) rename models/descriptions/{ => columns}/first_block_id.md (100%) rename models/descriptions/{ => columns}/first_program_id.md (100%) rename models/descriptions/{ => columns}/first_tx_date.md (100%) rename models/descriptions/{ => columns}/gov_action_action.md (100%) rename models/descriptions/{ => columns}/gov_action_amount.md (100%) rename models/descriptions/{ => columns}/gov_action_escrow_account.md (100%) rename models/descriptions/{ => columns}/gov_action_locker_account.md (100%) rename models/descriptions/{ => columns}/gov_action_locker_nft.md (100%) rename models/descriptions/{ => columns}/gov_action_mint.md (100%) rename models/descriptions/{ => columns}/gov_action_signer.md (100%) rename models/descriptions/{ => columns}/id.md (100%) rename models/descriptions/{ => columns}/idl.md (100%) rename models/descriptions/{ => columns}/idl_hash.md (100%) rename models/descriptions/{ => columns}/image_url.md (100%) rename models/descriptions/{ => columns}/index.md (100%) rename models/descriptions/{ => columns}/ingested_at.md (100%) rename models/descriptions/{ => columns}/inner_index.md (100%) rename models/descriptions/{ => columns}/inner_instruction.md (100%) rename models/descriptions/{ => columns}/inner_instructions.md (100%) rename models/descriptions/{ => columns}/inserted_timestamp.md (100%) rename models/descriptions/{ => columns}/instruction.md (100%) rename models/descriptions/{ => columns}/instruction_program_id.md (100%) rename models/descriptions/{ => columns}/instructions.md (100%) rename models/descriptions/{ => columns}/is_active.md (100%) rename models/descriptions/{ => columns}/is_compressed.md (100%) create mode 100644 models/descriptions/columns/is_compressed_nft.md create mode 100644 models/descriptions/columns/is_dca_swap.md create mode 100644 models/descriptions/columns/is_limit_swap.md rename models/descriptions/{ => columns}/is_valid.md (100%) rename models/descriptions/{ => columns}/label.md (100%) rename models/descriptions/{ => columns}/label_subtype.md (100%) rename models/descriptions/{ => columns}/label_type.md (100%) rename models/descriptions/{ => columns}/last_activity_timestamp.md (100%) rename models/descriptions/{ => columns}/last_program_id.md (100%) rename models/descriptions/{ => columns}/last_tx_date.md (100%) rename models/descriptions/{ => columns}/leaf_index.md (100%) create mode 100644 models/descriptions/columns/limit_requester.md create mode 100644 models/descriptions/columns/liquidity_pool_address.md create mode 100644 models/descriptions/columns/liquidity_pool_name.md create mode 100644 models/descriptions/columns/liquidity_pool_platform.md rename models/descriptions/{ => columns}/liquidity_pool_token_mint.md (100%) create mode 100644 models/descriptions/columns/liquidity_provider.md create mode 100644 models/descriptions/columns/log_id.md rename models/descriptions/{ => columns}/log_index.md (100%) rename models/descriptions/{ => columns}/log_messages.md (100%) rename models/descriptions/{ => columns}/marketplace.md (100%) create mode 100644 models/descriptions/columns/marketplace_version.md rename models/descriptions/{ => columns}/merkle_tree.md (100%) rename models/descriptions/{ => columns}/mint.md (100%) create mode 100644 models/descriptions/columns/mint_amount.md create mode 100644 models/descriptions/columns/mint_authority.md create mode 100644 models/descriptions/columns/mint_currency.md rename models/descriptions/{ => columns}/mint_payer.md (100%) create mode 100644 models/descriptions/columns/mint_price.md rename models/descriptions/{ => columns}/mint_standard_type.md (100%) rename models/descriptions/{ => columns}/modified_timestamp.md (100%) rename models/descriptions/{ => columns}/network.md (100%) create mode 100644 models/descriptions/columns/nft_collection_name.md create mode 100644 models/descriptions/columns/nft_name.md rename models/descriptions/{ => columns}/num_days_active.md (100%) rename models/descriptions/{ => columns}/num_txs.md (100%) rename models/descriptions/{ => columns}/owner.md (100%) rename models/descriptions/{ => columns}/pk.md (100%) rename models/descriptions/{ => columns}/post_balance.md (100%) rename models/descriptions/{ => columns}/post_balances.md (100%) rename models/descriptions/{ => columns}/post_token_balances.md (100%) rename models/descriptions/{ => columns}/pre_balances.md (100%) rename models/descriptions/{ => columns}/pre_token_balances.md (100%) rename models/descriptions/{ => columns}/previous_block_hash.md (100%) rename models/descriptions/{ => columns}/previous_block_id.md (100%) create mode 100644 models/descriptions/columns/price_usd.md rename models/descriptions/{ => columns}/program_id.md (100%) rename models/descriptions/{ => columns}/programs_used.md (100%) rename models/descriptions/{ => columns}/project_name.md (100%) rename models/descriptions/{ => columns}/purchaser.md (100%) rename models/descriptions/{ => columns}/recent_block_hash.md (100%) rename models/descriptions/{ => columns}/sales_amount.md (100%) rename models/descriptions/{ => columns}/seller.md (100%) rename models/descriptions/{ => columns}/signer.md (100%) rename models/descriptions/{ => columns}/signers.md (100%) rename models/descriptions/{ => columns}/stake_account.md (100%) rename models/descriptions/{ => columns}/stake_authority.md (100%) create mode 100644 models/descriptions/columns/stake_pool.md create mode 100644 models/descriptions/columns/stake_pool_action.md create mode 100644 models/descriptions/columns/stake_pool_address.md create mode 100644 models/descriptions/columns/stake_pool_amount.md rename models/descriptions/{ => columns}/stake_pool_deposit_authority.md (100%) create mode 100644 models/descriptions/columns/stake_pool_name.md rename models/descriptions/{ => columns}/stake_pool_reserve_stake_address.md (100%) create mode 100644 models/descriptions/columns/stake_pool_token.md rename models/descriptions/{ => columns}/stake_pool_withdraw_authority.md (100%) rename models/descriptions/{ => columns}/start_block.md (100%) rename models/descriptions/{ => columns}/start_block_id.md (100%) rename models/descriptions/{ => columns}/submitted_by.md (100%) create mode 100644 models/descriptions/columns/swap_from_amount_usd.md create mode 100644 models/descriptions/columns/swap_from_symbol.md create mode 100644 models/descriptions/columns/swap_program.md create mode 100644 models/descriptions/columns/swap_program_id.md create mode 100644 models/descriptions/columns/swap_to_amount_usd.md create mode 100644 models/descriptions/columns/swap_to_symbol.md create mode 100644 models/descriptions/columns/swaps_from_amt.md create mode 100644 models/descriptions/columns/swaps_from_mint.md create mode 100644 models/descriptions/columns/swaps_swap_index.md create mode 100644 models/descriptions/columns/swaps_swapper.md create mode 100644 models/descriptions/columns/swaps_to_amt.md create mode 100644 models/descriptions/columns/swaps_to_mint.md rename models/descriptions/{ => columns}/symbol.md (60%) rename models/descriptions/{ => columns}/table_dim_labels.md (100%) rename models/descriptions/{ => columns}/token_a_account.md (100%) rename models/descriptions/{ => columns}/token_a_amount.md (100%) create mode 100644 models/descriptions/columns/token_a_amount_usd.md rename models/descriptions/{ => columns}/token_a_mint.md (100%) create mode 100644 models/descriptions/columns/token_account.md rename models/descriptions/{ => columns}/token_b_account.md (100%) rename models/descriptions/{ => columns}/token_b_amount.md (100%) create mode 100644 models/descriptions/columns/token_b_amount_usd.md rename models/descriptions/{ => columns}/token_b_mint.md (100%) create mode 100644 models/descriptions/columns/token_c_amount.md create mode 100644 models/descriptions/columns/token_c_amount_usd.md create mode 100644 models/descriptions/columns/token_c_mint.md create mode 100644 models/descriptions/columns/token_d_amount.md create mode 100644 models/descriptions/columns/token_d_amount_usd.md create mode 100644 models/descriptions/columns/token_d_mint.md rename models/descriptions/{ => columns}/token_id.md (100%) rename models/descriptions/{ => columns}/token_metadata.md (100%) rename models/descriptions/{ => columns}/token_metadata_uri.md (100%) rename models/descriptions/{ => columns}/token_name.md (100%) rename models/descriptions/{ => columns}/total_fees.md (100%) rename models/descriptions/{ => columns}/tree_authority.md (100%) rename models/descriptions/{ => columns}/tribeca_gauge.md (100%) rename models/descriptions/{ => columns}/tribeca_gauge_delegated_shares.md (100%) rename models/descriptions/{ => columns}/tribeca_gauge_power.md (100%) rename models/descriptions/{ => columns}/tribeca_gauge_validator_account.md (100%) rename models/descriptions/{ => columns}/tribeca_gauge_voter.md (100%) rename models/descriptions/{ => columns}/tribeca_gaugemeister.md (100%) rename models/descriptions/{ => columns}/tx_from.md (100%) rename models/descriptions/{ => columns}/tx_id.md (100%) rename models/descriptions/{ => columns}/tx_index.md (100%) rename models/descriptions/{ => columns}/tx_size.md (100%) rename models/descriptions/{ => columns}/tx_succeeded.md (100%) rename models/descriptions/{ => columns}/tx_to.md (100%) rename models/descriptions/{ => columns}/units_consumed.md (100%) rename models/descriptions/{ => columns}/units_limit.md (100%) rename models/descriptions/{ => columns}/vote_pubkey.md (100%) rename models/descriptions/{ => columns}/withdraw_authority.md (100%) delete mode 100644 models/descriptions/liquidity_pool_address.md delete mode 100644 models/descriptions/liquidity_provider.md delete mode 100644 models/descriptions/mint_amount.md delete mode 100644 models/descriptions/mint_currency.md delete mode 100644 models/descriptions/mint_price.md delete mode 100644 models/descriptions/stake_pool.md delete mode 100644 models/descriptions/stake_pool_action.md delete mode 100644 models/descriptions/stake_pool_address.md delete mode 100644 models/descriptions/stake_pool_amount.md delete mode 100644 models/descriptions/swaps_from_amt.md delete mode 100644 models/descriptions/swaps_from_mint.md delete mode 100644 models/descriptions/swaps_swap_index.md delete mode 100644 models/descriptions/swaps_swapper.md delete mode 100644 models/descriptions/swaps_to_amt.md delete mode 100644 models/descriptions/swaps_to_mint.md create mode 100644 models/descriptions/tables/dim_nft_metadata.md create mode 100644 models/descriptions/tables/ez_dex_swaps.md create mode 100644 models/descriptions/tables/ez_liquidity_pool_actions.md create mode 100644 models/descriptions/tables/ez_nft_sales.md create mode 100644 models/descriptions/tables/fact_bridge_activity.md create mode 100644 models/descriptions/tables/fact_nft_burn_actions.md create mode 100644 models/descriptions/tables/fact_nft_mint_actions.md create mode 100644 models/descriptions/tables/fact_nft_mints.md create mode 100644 models/descriptions/tables/fact_stake_pool_actions.md create mode 100644 models/descriptions/tables/fact_swaps.md create mode 100644 models/descriptions/tables/fact_swaps_jupiter_inner.md create mode 100644 models/descriptions/tables/fact_swaps_jupiter_summary.md create mode 100644 models/descriptions/tables/fact_token_burn_actions.md create mode 100644 models/descriptions/tables/fact_token_mint_actions.md delete mode 100644 models/descriptions/token_account.md diff --git a/models/descriptions/bridge/bridge_activity.md b/models/descriptions/bridge/bridge_activity.md index 9d8980f0..50dc230b 100644 --- a/models/descriptions/bridge/bridge_activity.md +++ b/models/descriptions/bridge/bridge_activity.md @@ -1,6 +1,31 @@ {% docs bridge_ez_table_doc %} -A comprehensive convenience table holding blockchain and platform specific bridge activity on Wormhole, DeBridge and Mayan Finance. This table also includes prices and token symbols, where available. +## Description +This table provides a comprehensive view of cross-chain bridge activity on Solana, capturing token transfers via major protocols including Wormhole, DeBridge, and Mayan Finance. It standardizes inbound and outbound bridge transactions, includes protocol/platform identification, and enriches each event with USD pricing and token metadata where available. Each row represents a single bridge transaction, supporting analytics on cross-chain liquidity flows, protocol usage, and multi-chain DeFi activity. + +## Key Use Cases +- Analyze cross-chain liquidity flows and bridge protocol adoption +- Track token movements between Solana and other blockchains +- Study user behavior and protocol usage patterns for bridging +- Monitor USD-denominated bridge flows and capital movement +- Support analytics on multi-chain DeFi ecosystem growth and integration + +## Important Relationships +- Closely related to `defi.fact_bridge_activity` (raw bridge events), `defi.ez_liquidity_pool_actions` (for liquidity flows after bridging), and `defi.ez_dex_swaps` (for DEX activity of bridged tokens) +- Use `defi.fact_bridge_activity` for protocol-level bridge event details +- Use `defi.ez_liquidity_pool_actions` to analyze liquidity provision/removal after bridging +- Use `defi.ez_dex_swaps` to track trading activity of tokens post-bridge +- `core.fact_transactions` for transaction context + +## Commonly-used Fields +- `block_timestamp`: For time-series and bridge flow analysis +- `platform`: For protocol identification (Wormhole, DeBridge, Mayan, etc.) +- `direction`: For filtering inbound vs outbound transfers +- `source_chain`, `destination_chain`: For cross-chain analytics +- `source_address`, `destination_address`: For user and address-level analysis +- `amount`, `amount_usd`: For value and USD-denominated analytics +- `mint`, `symbol`, `token_is_verified`: For token and asset analytics +- `succeeded`: For transaction success analysis {% enddocs %} diff --git a/models/descriptions/burn_amount.md b/models/descriptions/burn_amount.md deleted file mode 100644 index 3ef54e88..00000000 --- a/models/descriptions/burn_amount.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs burn_amount %} - -The number of tokens burned during an event - -{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/_inserted_timestamp.md b/models/descriptions/columns/_inserted_timestamp.md similarity index 100% rename from models/descriptions/_inserted_timestamp.md rename to models/descriptions/columns/_inserted_timestamp.md diff --git a/models/descriptions/_invocation_id.md b/models/descriptions/columns/_invocation_id.md similarity index 100% rename from models/descriptions/_invocation_id.md rename to models/descriptions/columns/_invocation_id.md diff --git a/models/descriptions/account_address.md b/models/descriptions/columns/account_address.md similarity index 100% rename from models/descriptions/account_address.md rename to models/descriptions/columns/account_address.md diff --git a/models/descriptions/account_keys.md b/models/descriptions/columns/account_keys.md similarity index 100% rename from models/descriptions/account_keys.md rename to models/descriptions/columns/account_keys.md diff --git a/models/descriptions/action.md b/models/descriptions/columns/action.md similarity index 100% rename from models/descriptions/action.md rename to models/descriptions/columns/action.md diff --git a/models/descriptions/address.md b/models/descriptions/columns/address.md similarity index 100% rename from models/descriptions/address.md rename to models/descriptions/columns/address.md diff --git a/models/descriptions/address_name.md b/models/descriptions/columns/address_name.md similarity index 100% rename from models/descriptions/address_name.md rename to models/descriptions/columns/address_name.md diff --git a/models/descriptions/columns/aggregator_program_id.md b/models/descriptions/columns/aggregator_program_id.md new file mode 100644 index 00000000..fab21895 --- /dev/null +++ b/models/descriptions/columns/aggregator_program_id.md @@ -0,0 +1,10 @@ +{% docs aggregator_program_id %} + +The program ID of the aggregator (e.g., Jupiter) that orchestrated the multi-hop swap route. This field identifies the aggregator responsible for routing the swap across multiple DEXes. + +- **Data type:** STRING (base58 Solana program address) +- **Business context:** Used to identify the aggregator protocol that coordinated the swap route. +- **Analytics use cases:** Aggregator usage analysis, route optimization studies, and protocol adoption tracking. +- **Example:** 'JUP4Fb2cqiRUcaTHdrPC8h2gNsA2ETXiPDD33WcGuJB' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/amount.md b/models/descriptions/columns/amount.md similarity index 100% rename from models/descriptions/amount.md rename to models/descriptions/columns/amount.md diff --git a/models/descriptions/amount_usd.md b/models/descriptions/columns/amount_usd.md similarity index 100% rename from models/descriptions/amount_usd.md rename to models/descriptions/columns/amount_usd.md diff --git a/models/descriptions/columns/authority.md b/models/descriptions/columns/authority.md new file mode 100644 index 00000000..3370febd --- /dev/null +++ b/models/descriptions/columns/authority.md @@ -0,0 +1,10 @@ +{% docs authority %} + +The address of the account that has authority over the NFT mint. This field identifies who can perform administrative actions on the NFT, such as minting additional editions or updating metadata. + +- **Data type:** STRING (Solana address, e.g., '9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM') +- **Business context:** Used to track NFT governance, edition minting, and authority changes. +- **Analytics use cases:** Authority change tracking, edition minting analysis, and NFT governance studies. +- **Example:** '9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/backfill_status.md b/models/descriptions/columns/backfill_status.md similarity index 100% rename from models/descriptions/backfill_status.md rename to models/descriptions/columns/backfill_status.md diff --git a/models/descriptions/block_hash.md b/models/descriptions/columns/block_hash.md similarity index 100% rename from models/descriptions/block_hash.md rename to models/descriptions/columns/block_hash.md diff --git a/models/descriptions/block_height.md b/models/descriptions/columns/block_height.md similarity index 100% rename from models/descriptions/block_height.md rename to models/descriptions/columns/block_height.md diff --git a/models/descriptions/block_id.md b/models/descriptions/columns/block_id.md similarity index 100% rename from models/descriptions/block_id.md rename to models/descriptions/columns/block_id.md diff --git a/models/descriptions/block_timestamp.md b/models/descriptions/columns/block_timestamp.md similarity index 100% rename from models/descriptions/block_timestamp.md rename to models/descriptions/columns/block_timestamp.md diff --git a/models/descriptions/blockchain.md b/models/descriptions/columns/blockchain.md similarity index 100% rename from models/descriptions/blockchain.md rename to models/descriptions/columns/blockchain.md diff --git a/models/descriptions/columns/bridge_user_address.md b/models/descriptions/columns/bridge_user_address.md new file mode 100644 index 00000000..b38a077a --- /dev/null +++ b/models/descriptions/columns/bridge_user_address.md @@ -0,0 +1,10 @@ +{% docs bridge_user_address %} + +The Solana address that is receiving or sending bridged tokens. This field identifies the user involved in the cross-chain transfer. + +- **Data type:** STRING (base58 Solana address) +- **Business context:** Used to track user bridge activity, analyze bridge user behavior, and identify bridge power users. +- **Analytics use cases:** User bridge activity analysis, whale tracking, and bridge adoption studies. +- **Example:** '4Nd1mYw4r...' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/burn_amount.md b/models/descriptions/columns/burn_amount.md new file mode 100644 index 00000000..febdd4a0 --- /dev/null +++ b/models/descriptions/columns/burn_amount.md @@ -0,0 +1,10 @@ +{% docs burn_amount %} + +The amount of tokens being burned in the transaction, denominated in the token's smallest unit (e.g., lamports for SOL, or the base unit for SPL tokens). This field enables token supply analysis and burn tracking. + +- **Data type:** NUMBER (integer, token's smallest unit) +- **Business context:** Used to track token burns, analyze token supply changes, and measure deflationary pressure. +- **Analytics use cases:** Token supply analysis, burn rate tracking, and deflationary token studies. +- **Example:** For SOL, 1 SOL = 1,000,000,000 lamports; a value of `1000000000` means 1 SOL burned. + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/burn_authority.md b/models/descriptions/columns/burn_authority.md new file mode 100644 index 00000000..1047097e --- /dev/null +++ b/models/descriptions/columns/burn_authority.md @@ -0,0 +1,10 @@ +{% docs burn_authority %} + +The account address that has authority to confirm the burn event. This field identifies the entity responsible for authorizing the token burn. + +- **Data type:** STRING (base58 Solana address) +- **Business context:** Used to track burn authorities, analyze burn patterns, and identify centralized burn controls. +- **Analytics use cases:** Burn authority analysis, centralized vs decentralized burn studies, and token governance tracking. +- **Example:** '4Nd1mYw4r...' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/chain_id.md b/models/descriptions/columns/chain_id.md similarity index 100% rename from models/descriptions/chain_id.md rename to models/descriptions/columns/chain_id.md diff --git a/models/descriptions/columns/collection_id.md b/models/descriptions/columns/collection_id.md new file mode 100644 index 00000000..f2541d69 --- /dev/null +++ b/models/descriptions/columns/collection_id.md @@ -0,0 +1,10 @@ +{% docs collection_id %} + +The unique address identifier for the NFT collection. This field provides a blockchain-level identifier for grouping NFTs into collections and enables collection-level analytics and tracking. + +- **Data type:** STRING (Solana address, e.g., 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v') +- **Business context:** Used for precise collection grouping, analytics, and to join with other collection-level data. +- **Analytics use cases:** Collection-level aggregation, cross-collection comparisons, and collection membership queries. +- **Example:** 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v' + +{% enddocs %} diff --git a/models/descriptions/contract_address.md b/models/descriptions/columns/contract_address.md similarity index 100% rename from models/descriptions/contract_address.md rename to models/descriptions/columns/contract_address.md diff --git a/models/descriptions/contract_name.md b/models/descriptions/columns/contract_name.md similarity index 100% rename from models/descriptions/contract_name.md rename to models/descriptions/columns/contract_name.md diff --git a/models/descriptions/created_at_timestamp.md b/models/descriptions/columns/created_at_timestamp.md similarity index 100% rename from models/descriptions/created_at_timestamp.md rename to models/descriptions/columns/created_at_timestamp.md diff --git a/models/descriptions/creator.md b/models/descriptions/columns/creator.md similarity index 100% rename from models/descriptions/creator.md rename to models/descriptions/columns/creator.md diff --git a/models/descriptions/creator_address.md b/models/descriptions/columns/creator_address.md similarity index 100% rename from models/descriptions/creator_address.md rename to models/descriptions/columns/creator_address.md diff --git a/models/descriptions/creator_name.md b/models/descriptions/columns/creator_name.md similarity index 100% rename from models/descriptions/creator_name.md rename to models/descriptions/columns/creator_name.md diff --git a/models/descriptions/columns/creators.md b/models/descriptions/columns/creators.md new file mode 100644 index 00000000..ac374fcc --- /dev/null +++ b/models/descriptions/columns/creators.md @@ -0,0 +1,10 @@ +{% docs creators %} + +A JSON array containing the creator addresses and their associated royalty percentages for the NFT. This field tracks who created the NFT and what percentage of sales they receive as royalties. + +- **Data type:** ARRAY of STRUCTS (e.g., [{"address": "...", "share": 50}]) +- **Business context:** Used for royalty attribution, creator analytics, and revenue distribution. +- **Analytics use cases:** Creator earnings analysis, royalty flow tracking, and multi-creator attribution studies. +- **Example:** [{"address": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM", "share": 50}] + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/currency_address.md b/models/descriptions/columns/currency_address.md new file mode 100644 index 00000000..bd8e999d --- /dev/null +++ b/models/descriptions/columns/currency_address.md @@ -0,0 +1,10 @@ +{% docs currency_address %} + +The address of the token used to pay for the NFT transaction. This field identifies which cryptocurrency or token was used as payment, enabling analysis of payment preferences and market dynamics. + +- **Data type:** STRING (Solana address, e.g., 'So11111111111111111111111111111111111111112' for SOL, 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v' for USDC) +- **Business context:** Used to identify the payment asset for NFT sales and mints, analyze payment trends, and support cross-token analytics. +- **Analytics use cases:** Payment token flow analysis, market share by token, cross-currency price comparisons, and filtering NFT sales by payment asset. +- **Example:** 'So11111111111111111111111111111111111111112' (SOL) + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/currency_symbol.md b/models/descriptions/columns/currency_symbol.md new file mode 100644 index 00000000..a113b8b0 --- /dev/null +++ b/models/descriptions/columns/currency_symbol.md @@ -0,0 +1,10 @@ +{% docs currency_symbol %} + +The symbol of the token used to pay for the NFT transaction. This field provides a human-readable identifier for the payment currency, making it easier to understand and analyze payment patterns. + +- **Data type:** STRING (e.g., 'SOL', 'USDC', 'USDT') +- **Business context:** Used for user-friendly display, filtering, and grouping of NFT sales and mints by payment token. +- **Analytics use cases:** Market share by token symbol, user preference analysis, and reporting on payment trends. +- **Example:** 'SOL' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/date_submitted.md b/models/descriptions/columns/date_submitted.md similarity index 100% rename from models/descriptions/date_submitted.md rename to models/descriptions/columns/date_submitted.md diff --git a/models/descriptions/columns/dca_requester.md b/models/descriptions/columns/dca_requester.md new file mode 100644 index 00000000..4fb5a7b2 --- /dev/null +++ b/models/descriptions/columns/dca_requester.md @@ -0,0 +1,10 @@ +{% docs dca_requester %} + +The original address that requested the DCA (Dollar Cost Averaging) swap. This field identifies the user who initiated the DCA order, enabling user-level DCA analytics. + +- **Data type:** STRING (base58 Solana address, NULL if not a DCA swap) +- **Business context:** Used to track DCA users, analyze DCA user behavior, and measure DCA feature adoption at the user level. +- **Analytics use cases:** DCA user segmentation, user behavior analysis, and Jupiter product adoption studies. +- **Example:** '4Nd1mYw4r...' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/decimal.md b/models/descriptions/columns/decimal.md similarity index 100% rename from models/descriptions/decimal.md rename to models/descriptions/columns/decimal.md diff --git a/models/descriptions/decoded_accounts.md b/models/descriptions/columns/decoded_accounts.md similarity index 100% rename from models/descriptions/decoded_accounts.md rename to models/descriptions/columns/decoded_accounts.md diff --git a/models/descriptions/decoded_args.md b/models/descriptions/columns/decoded_args.md similarity index 100% rename from models/descriptions/decoded_args.md rename to models/descriptions/columns/decoded_args.md diff --git a/models/descriptions/decoded_instruction.md b/models/descriptions/columns/decoded_instruction.md similarity index 100% rename from models/descriptions/decoded_instruction.md rename to models/descriptions/columns/decoded_instruction.md diff --git a/models/descriptions/decoding_error.md b/models/descriptions/columns/decoding_error.md similarity index 100% rename from models/descriptions/decoding_error.md rename to models/descriptions/columns/decoding_error.md diff --git a/models/descriptions/earliest_decoded_block.md b/models/descriptions/columns/earliest_decoded_block.md similarity index 100% rename from models/descriptions/earliest_decoded_block.md rename to models/descriptions/columns/earliest_decoded_block.md diff --git a/models/descriptions/end_block.md b/models/descriptions/columns/end_block.md similarity index 100% rename from models/descriptions/end_block.md rename to models/descriptions/columns/end_block.md diff --git a/models/descriptions/end_block_id.md b/models/descriptions/columns/end_block_id.md similarity index 100% rename from models/descriptions/end_block_id.md rename to models/descriptions/columns/end_block_id.md diff --git a/models/descriptions/epoch.md b/models/descriptions/columns/epoch.md similarity index 100% rename from models/descriptions/epoch.md rename to models/descriptions/columns/epoch.md diff --git a/models/descriptions/epoch_earned.md b/models/descriptions/columns/epoch_earned.md similarity index 100% rename from models/descriptions/epoch_earned.md rename to models/descriptions/columns/epoch_earned.md diff --git a/models/descriptions/event_index.md b/models/descriptions/columns/event_index.md similarity index 100% rename from models/descriptions/event_index.md rename to models/descriptions/columns/event_index.md diff --git a/models/descriptions/event_type.md b/models/descriptions/columns/event_type.md similarity index 100% rename from models/descriptions/event_type.md rename to models/descriptions/columns/event_type.md diff --git a/models/descriptions/ez_core_metrics.md b/models/descriptions/columns/ez_core_metrics.md similarity index 100% rename from models/descriptions/ez_core_metrics.md rename to models/descriptions/columns/ez_core_metrics.md diff --git a/models/descriptions/fee.md b/models/descriptions/columns/fee.md similarity index 100% rename from models/descriptions/fee.md rename to models/descriptions/columns/fee.md diff --git a/models/descriptions/first_block_id.md b/models/descriptions/columns/first_block_id.md similarity index 100% rename from models/descriptions/first_block_id.md rename to models/descriptions/columns/first_block_id.md diff --git a/models/descriptions/first_program_id.md b/models/descriptions/columns/first_program_id.md similarity index 100% rename from models/descriptions/first_program_id.md rename to models/descriptions/columns/first_program_id.md diff --git a/models/descriptions/first_tx_date.md b/models/descriptions/columns/first_tx_date.md similarity index 100% rename from models/descriptions/first_tx_date.md rename to models/descriptions/columns/first_tx_date.md diff --git a/models/descriptions/gov_action_action.md b/models/descriptions/columns/gov_action_action.md similarity index 100% rename from models/descriptions/gov_action_action.md rename to models/descriptions/columns/gov_action_action.md diff --git a/models/descriptions/gov_action_amount.md b/models/descriptions/columns/gov_action_amount.md similarity index 100% rename from models/descriptions/gov_action_amount.md rename to models/descriptions/columns/gov_action_amount.md diff --git a/models/descriptions/gov_action_escrow_account.md b/models/descriptions/columns/gov_action_escrow_account.md similarity index 100% rename from models/descriptions/gov_action_escrow_account.md rename to models/descriptions/columns/gov_action_escrow_account.md diff --git a/models/descriptions/gov_action_locker_account.md b/models/descriptions/columns/gov_action_locker_account.md similarity index 100% rename from models/descriptions/gov_action_locker_account.md rename to models/descriptions/columns/gov_action_locker_account.md diff --git a/models/descriptions/gov_action_locker_nft.md b/models/descriptions/columns/gov_action_locker_nft.md similarity index 100% rename from models/descriptions/gov_action_locker_nft.md rename to models/descriptions/columns/gov_action_locker_nft.md diff --git a/models/descriptions/gov_action_mint.md b/models/descriptions/columns/gov_action_mint.md similarity index 100% rename from models/descriptions/gov_action_mint.md rename to models/descriptions/columns/gov_action_mint.md diff --git a/models/descriptions/gov_action_signer.md b/models/descriptions/columns/gov_action_signer.md similarity index 100% rename from models/descriptions/gov_action_signer.md rename to models/descriptions/columns/gov_action_signer.md diff --git a/models/descriptions/id.md b/models/descriptions/columns/id.md similarity index 100% rename from models/descriptions/id.md rename to models/descriptions/columns/id.md diff --git a/models/descriptions/idl.md b/models/descriptions/columns/idl.md similarity index 100% rename from models/descriptions/idl.md rename to models/descriptions/columns/idl.md diff --git a/models/descriptions/idl_hash.md b/models/descriptions/columns/idl_hash.md similarity index 100% rename from models/descriptions/idl_hash.md rename to models/descriptions/columns/idl_hash.md diff --git a/models/descriptions/image_url.md b/models/descriptions/columns/image_url.md similarity index 100% rename from models/descriptions/image_url.md rename to models/descriptions/columns/image_url.md diff --git a/models/descriptions/index.md b/models/descriptions/columns/index.md similarity index 100% rename from models/descriptions/index.md rename to models/descriptions/columns/index.md diff --git a/models/descriptions/ingested_at.md b/models/descriptions/columns/ingested_at.md similarity index 100% rename from models/descriptions/ingested_at.md rename to models/descriptions/columns/ingested_at.md diff --git a/models/descriptions/inner_index.md b/models/descriptions/columns/inner_index.md similarity index 100% rename from models/descriptions/inner_index.md rename to models/descriptions/columns/inner_index.md diff --git a/models/descriptions/inner_instruction.md b/models/descriptions/columns/inner_instruction.md similarity index 100% rename from models/descriptions/inner_instruction.md rename to models/descriptions/columns/inner_instruction.md diff --git a/models/descriptions/inner_instructions.md b/models/descriptions/columns/inner_instructions.md similarity index 100% rename from models/descriptions/inner_instructions.md rename to models/descriptions/columns/inner_instructions.md diff --git a/models/descriptions/inserted_timestamp.md b/models/descriptions/columns/inserted_timestamp.md similarity index 100% rename from models/descriptions/inserted_timestamp.md rename to models/descriptions/columns/inserted_timestamp.md diff --git a/models/descriptions/instruction.md b/models/descriptions/columns/instruction.md similarity index 100% rename from models/descriptions/instruction.md rename to models/descriptions/columns/instruction.md diff --git a/models/descriptions/instruction_program_id.md b/models/descriptions/columns/instruction_program_id.md similarity index 100% rename from models/descriptions/instruction_program_id.md rename to models/descriptions/columns/instruction_program_id.md diff --git a/models/descriptions/instructions.md b/models/descriptions/columns/instructions.md similarity index 100% rename from models/descriptions/instructions.md rename to models/descriptions/columns/instructions.md diff --git a/models/descriptions/is_active.md b/models/descriptions/columns/is_active.md similarity index 100% rename from models/descriptions/is_active.md rename to models/descriptions/columns/is_active.md diff --git a/models/descriptions/is_compressed.md b/models/descriptions/columns/is_compressed.md similarity index 100% rename from models/descriptions/is_compressed.md rename to models/descriptions/columns/is_compressed.md diff --git a/models/descriptions/columns/is_compressed_nft.md b/models/descriptions/columns/is_compressed_nft.md new file mode 100644 index 00000000..44e6f7b9 --- /dev/null +++ b/models/descriptions/columns/is_compressed_nft.md @@ -0,0 +1,10 @@ +{% docs is_compressed_nft %} + +A boolean flag indicating whether the NFT is a compressed NFT (cNFT). Compressed NFTs use Merkle trees to reduce storage costs and enable more efficient NFT creation and management. + +- **Data type:** BOOLEAN (TRUE for compressed NFTs, FALSE for standard NFTs) +- **Business context:** Used to distinguish between standard and compressed NFTs for analytics, cost analysis, and protocol adoption tracking. +- **Analytics use cases:** cNFT adoption analysis, storage cost studies, and segmentation of NFT activity by type. +- **Example:** TRUE + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/is_dca_swap.md b/models/descriptions/columns/is_dca_swap.md new file mode 100644 index 00000000..ba42fe41 --- /dev/null +++ b/models/descriptions/columns/is_dca_swap.md @@ -0,0 +1,10 @@ +{% docs is_dca_swap %} + +A boolean flag indicating whether the swap was initiated by a Jupiter DCA (Dollar Cost Averaging) order. This field enables analysis of DCA feature usage and user behavior patterns. + +- **Data type:** BOOLEAN (TRUE/FALSE, NULL if not a DCA swap) +- **Business context:** Used to identify DCA swaps and analyze Jupiter's DCA feature adoption and usage patterns. +- **Analytics use cases:** DCA feature adoption analysis, user behavior studies, and Jupiter product analytics. +- **Example:** TRUE + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/is_limit_swap.md b/models/descriptions/columns/is_limit_swap.md new file mode 100644 index 00000000..2b8d7dea --- /dev/null +++ b/models/descriptions/columns/is_limit_swap.md @@ -0,0 +1,10 @@ +{% docs is_limit_swap %} + +A boolean flag indicating whether the swap was initiated by a Jupiter limit order. This field enables analysis of limit order feature usage and user behavior patterns. + +- **Data type:** BOOLEAN (TRUE/FALSE, NULL if not a limit order swap) +- **Business context:** Used to identify limit order swaps and analyze Jupiter's limit order feature adoption and usage patterns. +- **Analytics use cases:** Limit order feature adoption analysis, user behavior studies, and Jupiter product analytics. +- **Example:** TRUE + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/is_valid.md b/models/descriptions/columns/is_valid.md similarity index 100% rename from models/descriptions/is_valid.md rename to models/descriptions/columns/is_valid.md diff --git a/models/descriptions/label.md b/models/descriptions/columns/label.md similarity index 100% rename from models/descriptions/label.md rename to models/descriptions/columns/label.md diff --git a/models/descriptions/label_subtype.md b/models/descriptions/columns/label_subtype.md similarity index 100% rename from models/descriptions/label_subtype.md rename to models/descriptions/columns/label_subtype.md diff --git a/models/descriptions/label_type.md b/models/descriptions/columns/label_type.md similarity index 100% rename from models/descriptions/label_type.md rename to models/descriptions/columns/label_type.md diff --git a/models/descriptions/last_activity_timestamp.md b/models/descriptions/columns/last_activity_timestamp.md similarity index 100% rename from models/descriptions/last_activity_timestamp.md rename to models/descriptions/columns/last_activity_timestamp.md diff --git a/models/descriptions/last_program_id.md b/models/descriptions/columns/last_program_id.md similarity index 100% rename from models/descriptions/last_program_id.md rename to models/descriptions/columns/last_program_id.md diff --git a/models/descriptions/last_tx_date.md b/models/descriptions/columns/last_tx_date.md similarity index 100% rename from models/descriptions/last_tx_date.md rename to models/descriptions/columns/last_tx_date.md diff --git a/models/descriptions/leaf_index.md b/models/descriptions/columns/leaf_index.md similarity index 100% rename from models/descriptions/leaf_index.md rename to models/descriptions/columns/leaf_index.md diff --git a/models/descriptions/columns/limit_requester.md b/models/descriptions/columns/limit_requester.md new file mode 100644 index 00000000..817d44c9 --- /dev/null +++ b/models/descriptions/columns/limit_requester.md @@ -0,0 +1,10 @@ +{% docs limit_requester %} + +The original address that requested the limit order swap. This field identifies the user who initiated the limit order, enabling user-level limit order analytics. + +- **Data type:** STRING (base58 Solana address, NULL if not a limit order swap) +- **Business context:** Used to track limit order users, analyze limit order user behavior, and measure limit order feature adoption at the user level. +- **Analytics use cases:** Limit order user segmentation, user behavior analysis, and Jupiter product adoption studies. +- **Example:** '4Nd1mYw4r...' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/liquidity_pool_address.md b/models/descriptions/columns/liquidity_pool_address.md new file mode 100644 index 00000000..54e36a48 --- /dev/null +++ b/models/descriptions/columns/liquidity_pool_address.md @@ -0,0 +1,10 @@ +{% docs liquidity_pool_address %} + +The address of the liquidity pool where the action is being performed. This field identifies the specific pool involved in the liquidity action. + +- **Data type:** STRING (base58 Solana address) +- **Business context:** Used to identify specific liquidity pools, analyze pool activity, and track pool-specific liquidity flows. +- **Analytics use cases:** Pool-level analysis, liquidity flow tracking, and pool performance studies. +- **Example:** '4Nd1mYw4r...' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/liquidity_pool_name.md b/models/descriptions/columns/liquidity_pool_name.md new file mode 100644 index 00000000..da29b30a --- /dev/null +++ b/models/descriptions/columns/liquidity_pool_name.md @@ -0,0 +1,10 @@ +{% docs liquidity_pool_name %} + +The name of the liquidity pool where the action is being performed. This field provides a human-readable identifier for the specific pool. + +- **Data type:** STRING (pool name or identifier) +- **Business context:** Used to identify specific liquidity pools, analyze pool activity, and track pool-specific liquidity flows. +- **Analytics use cases:** Pool-level analysis, liquidity flow tracking, and pool performance studies. +- **Example:** 'SOL-USDC Pool' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/liquidity_pool_platform.md b/models/descriptions/columns/liquidity_pool_platform.md new file mode 100644 index 00000000..c1a95d18 --- /dev/null +++ b/models/descriptions/columns/liquidity_pool_platform.md @@ -0,0 +1,10 @@ +{% docs liquidity_pool_platform %} + +The name of the liquidity pool protocol or platform (e.g., Raydium, Orca, Meteora) that manages the pool. This field enables protocol-level analytics. + +- **Data type:** STRING (e.g., 'Raydium', 'Orca', 'Meteora') +- **Business context:** Used to identify the liquidity pool protocol, analyze protocol adoption, and compare protocol performance. +- **Analytics use cases:** Protocol market share analysis, protocol adoption tracking, and cross-protocol liquidity studies. +- **Example:** 'Raydium' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/liquidity_pool_token_mint.md b/models/descriptions/columns/liquidity_pool_token_mint.md similarity index 100% rename from models/descriptions/liquidity_pool_token_mint.md rename to models/descriptions/columns/liquidity_pool_token_mint.md diff --git a/models/descriptions/columns/liquidity_provider.md b/models/descriptions/columns/liquidity_provider.md new file mode 100644 index 00000000..da45c613 --- /dev/null +++ b/models/descriptions/columns/liquidity_provider.md @@ -0,0 +1,10 @@ +{% docs liquidity_provider %} + +The address of the liquidity provider who is performing the deposit or withdrawal action. This field identifies the user providing or removing liquidity from the pool. + +- **Data type:** STRING (base58 Solana address) +- **Business context:** Used to track liquidity providers, analyze provider behavior, and identify active liquidity participants. +- **Analytics use cases:** Liquidity provider analysis, provider behavior studies, and liquidity provision tracking. +- **Example:** '4Nd1mYw4r...' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/log_id.md b/models/descriptions/columns/log_id.md new file mode 100644 index 00000000..ca41363f --- /dev/null +++ b/models/descriptions/columns/log_id.md @@ -0,0 +1,10 @@ +{% docs log_id %} + +A unique identifier for the swap event, typically a combination of the transaction ID (TX_ID) and the event index within the transaction. This field enables precise event-level analytics and deduplication. + +- **Data type:** STRING (composite key, e.g., '5G7...:3') +- **Business context:** Used to uniquely identify swap events, prevent double-counting, and join with event-level logs. +- **Analytics use cases:** Event-level deduplication, log/event joins, and transaction traceability. +- **Example:** '5G7...:3' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/log_index.md b/models/descriptions/columns/log_index.md similarity index 100% rename from models/descriptions/log_index.md rename to models/descriptions/columns/log_index.md diff --git a/models/descriptions/log_messages.md b/models/descriptions/columns/log_messages.md similarity index 100% rename from models/descriptions/log_messages.md rename to models/descriptions/columns/log_messages.md diff --git a/models/descriptions/marketplace.md b/models/descriptions/columns/marketplace.md similarity index 100% rename from models/descriptions/marketplace.md rename to models/descriptions/columns/marketplace.md diff --git a/models/descriptions/columns/marketplace_version.md b/models/descriptions/columns/marketplace_version.md new file mode 100644 index 00000000..64fc9961 --- /dev/null +++ b/models/descriptions/columns/marketplace_version.md @@ -0,0 +1,10 @@ +{% docs marketplace_version %} + +The version of the NFT marketplace protocol used for the transaction. This field identifies the specific version of the marketplace program that facilitated the NFT sale. + +- **Data type:** STRING (e.g., 'v1', 'v2', 'v3') +- **Business context:** Used to track protocol evolution, feature adoption, and user migration between marketplace versions. +- **Analytics use cases:** Marketplace upgrade impact analysis, version adoption trends, and protocol migration studies. +- **Example:** 'v2' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/merkle_tree.md b/models/descriptions/columns/merkle_tree.md similarity index 100% rename from models/descriptions/merkle_tree.md rename to models/descriptions/columns/merkle_tree.md diff --git a/models/descriptions/mint.md b/models/descriptions/columns/mint.md similarity index 100% rename from models/descriptions/mint.md rename to models/descriptions/columns/mint.md diff --git a/models/descriptions/columns/mint_amount.md b/models/descriptions/columns/mint_amount.md new file mode 100644 index 00000000..1285e6b6 --- /dev/null +++ b/models/descriptions/columns/mint_amount.md @@ -0,0 +1,10 @@ +{% docs mint_amount %} + +The amount of tokens being minted in the transaction, denominated in the token's smallest unit (e.g., lamports for SOL, or the base unit for SPL tokens). This field enables token supply analysis and mint tracking. + +- **Data type:** NUMBER (integer, token's smallest unit) +- **Business context:** Used to track token mints, analyze token supply changes, and measure inflationary pressure. +- **Analytics use cases:** Token supply analysis, mint rate tracking, and inflationary token studies. +- **Example:** For SOL, 1 SOL = 1,000,000,000 lamports; a value of `1000000000` means 1 SOL minted. + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/mint_authority.md b/models/descriptions/columns/mint_authority.md new file mode 100644 index 00000000..edfdaaa7 --- /dev/null +++ b/models/descriptions/columns/mint_authority.md @@ -0,0 +1,10 @@ +{% docs mint_authority %} + +The address of the account that has authority to authorize the mint operation. This field identifies the entity responsible for authorizing the token mint. + +- **Data type:** STRING (base58 Solana address) +- **Business context:** Used to track mint authorities, analyze mint patterns, and identify centralized mint controls. +- **Analytics use cases:** Mint authority analysis, centralized vs decentralized mint studies, and token governance tracking. +- **Example:** '4Nd1mYw4r...' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/mint_currency.md b/models/descriptions/columns/mint_currency.md new file mode 100644 index 00000000..7daa71b8 --- /dev/null +++ b/models/descriptions/columns/mint_currency.md @@ -0,0 +1,10 @@ +{% docs mint_currency %} + +The address of the token used to pay for the NFT mint. This field identifies which cryptocurrency or token was used as payment during the initial NFT creation process. + +- **Data type:** STRING (Solana address, e.g., 'So11111111111111111111111111111111111111112' for SOL) +- **Business context:** Used to analyze mint payment trends, creator revenue, and token adoption for NFT launches. +- **Analytics use cases:** Mint payment token analysis, creator revenue breakdown, and minting trend studies. +- **Example:** 'So11111111111111111111111111111111111111112' + +{% enddocs %} diff --git a/models/descriptions/mint_payer.md b/models/descriptions/columns/mint_payer.md similarity index 100% rename from models/descriptions/mint_payer.md rename to models/descriptions/columns/mint_payer.md diff --git a/models/descriptions/columns/mint_price.md b/models/descriptions/columns/mint_price.md new file mode 100644 index 00000000..63a7752e --- /dev/null +++ b/models/descriptions/columns/mint_price.md @@ -0,0 +1,10 @@ +{% docs mint_price %} + +The price paid to mint the NFT in the specified currency. This field captures the initial cost of creating the NFT and is essential for understanding creator revenue and NFT valuation from creation. + +- **Data type:** FLOAT (raw token amount, not decimal adjusted) +- **Business context:** Used to analyze mint pricing strategies, creator earnings, and market entry costs for NFTs. +- **Analytics use cases:** Mint price trend analysis, revenue forecasting, and price-to-market performance studies. +- **Example:** 1.5 + +{% enddocs %} diff --git a/models/descriptions/mint_standard_type.md b/models/descriptions/columns/mint_standard_type.md similarity index 100% rename from models/descriptions/mint_standard_type.md rename to models/descriptions/columns/mint_standard_type.md diff --git a/models/descriptions/modified_timestamp.md b/models/descriptions/columns/modified_timestamp.md similarity index 100% rename from models/descriptions/modified_timestamp.md rename to models/descriptions/columns/modified_timestamp.md diff --git a/models/descriptions/network.md b/models/descriptions/columns/network.md similarity index 100% rename from models/descriptions/network.md rename to models/descriptions/columns/network.md diff --git a/models/descriptions/columns/nft_collection_name.md b/models/descriptions/columns/nft_collection_name.md new file mode 100644 index 00000000..6dfa1dbc --- /dev/null +++ b/models/descriptions/columns/nft_collection_name.md @@ -0,0 +1,10 @@ +{% docs nft_collection_name %} + +The name of the NFT collection that the NFT belongs to, as provided by Solscan. This field groups NFTs into logical collections and enables collection-level analytics and tracking. + +- **Data type:** STRING (e.g., 'Bored Ape Yacht Club', 'Okay Bears') +- **Business context:** Used to organize NFTs, analyze collection performance, and support collection-level analytics. +- **Analytics use cases:** Collection trend analysis, rarity studies, and collection-based filtering. +- **Example:** 'Okay Bears' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/nft_name.md b/models/descriptions/columns/nft_name.md new file mode 100644 index 00000000..329feb8e --- /dev/null +++ b/models/descriptions/columns/nft_name.md @@ -0,0 +1,10 @@ +{% docs nft_name %} + +The human-readable name of the NFT as specified in its metadata. This field provides a user-friendly identifier for the NFT that can be used for display, search, and analytics purposes. + +- **Data type:** STRING (e.g., 'Bored Ape #1234', 'CryptoPunk #5678') +- **Business context:** Used for user experience, search, and discovery of NFTs within collections and across marketplaces. +- **Analytics use cases:** Collection curation, search optimization, and user-facing NFT listings. +- **Example:** 'Bored Ape #1234' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/num_days_active.md b/models/descriptions/columns/num_days_active.md similarity index 100% rename from models/descriptions/num_days_active.md rename to models/descriptions/columns/num_days_active.md diff --git a/models/descriptions/num_txs.md b/models/descriptions/columns/num_txs.md similarity index 100% rename from models/descriptions/num_txs.md rename to models/descriptions/columns/num_txs.md diff --git a/models/descriptions/owner.md b/models/descriptions/columns/owner.md similarity index 100% rename from models/descriptions/owner.md rename to models/descriptions/columns/owner.md diff --git a/models/descriptions/pk.md b/models/descriptions/columns/pk.md similarity index 100% rename from models/descriptions/pk.md rename to models/descriptions/columns/pk.md diff --git a/models/descriptions/post_balance.md b/models/descriptions/columns/post_balance.md similarity index 100% rename from models/descriptions/post_balance.md rename to models/descriptions/columns/post_balance.md diff --git a/models/descriptions/post_balances.md b/models/descriptions/columns/post_balances.md similarity index 100% rename from models/descriptions/post_balances.md rename to models/descriptions/columns/post_balances.md diff --git a/models/descriptions/post_token_balances.md b/models/descriptions/columns/post_token_balances.md similarity index 100% rename from models/descriptions/post_token_balances.md rename to models/descriptions/columns/post_token_balances.md diff --git a/models/descriptions/pre_balances.md b/models/descriptions/columns/pre_balances.md similarity index 100% rename from models/descriptions/pre_balances.md rename to models/descriptions/columns/pre_balances.md diff --git a/models/descriptions/pre_token_balances.md b/models/descriptions/columns/pre_token_balances.md similarity index 100% rename from models/descriptions/pre_token_balances.md rename to models/descriptions/columns/pre_token_balances.md diff --git a/models/descriptions/previous_block_hash.md b/models/descriptions/columns/previous_block_hash.md similarity index 100% rename from models/descriptions/previous_block_hash.md rename to models/descriptions/columns/previous_block_hash.md diff --git a/models/descriptions/previous_block_id.md b/models/descriptions/columns/previous_block_id.md similarity index 100% rename from models/descriptions/previous_block_id.md rename to models/descriptions/columns/previous_block_id.md diff --git a/models/descriptions/columns/price_usd.md b/models/descriptions/columns/price_usd.md new file mode 100644 index 00000000..6cf0ba58 --- /dev/null +++ b/models/descriptions/columns/price_usd.md @@ -0,0 +1,10 @@ +{% docs price_usd %} + +The amount paid for the NFT converted to USD. This field provides a standardized value for cross-marketplace comparison and enables analysis of NFT valuations and market trends. + +- **Data type:** FLOAT (e.g., 1000.50) +- **Business context:** Used to compare NFT prices across different tokens and marketplaces, and to analyze market value in a common currency. +- **Analytics use cases:** Price trend analysis, cross-marketplace comparisons, and USD-denominated sales reporting. +- **Example:** 1000.50 + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/program_id.md b/models/descriptions/columns/program_id.md similarity index 100% rename from models/descriptions/program_id.md rename to models/descriptions/columns/program_id.md diff --git a/models/descriptions/programs_used.md b/models/descriptions/columns/programs_used.md similarity index 100% rename from models/descriptions/programs_used.md rename to models/descriptions/columns/programs_used.md diff --git a/models/descriptions/project_name.md b/models/descriptions/columns/project_name.md similarity index 100% rename from models/descriptions/project_name.md rename to models/descriptions/columns/project_name.md diff --git a/models/descriptions/purchaser.md b/models/descriptions/columns/purchaser.md similarity index 100% rename from models/descriptions/purchaser.md rename to models/descriptions/columns/purchaser.md diff --git a/models/descriptions/recent_block_hash.md b/models/descriptions/columns/recent_block_hash.md similarity index 100% rename from models/descriptions/recent_block_hash.md rename to models/descriptions/columns/recent_block_hash.md diff --git a/models/descriptions/sales_amount.md b/models/descriptions/columns/sales_amount.md similarity index 100% rename from models/descriptions/sales_amount.md rename to models/descriptions/columns/sales_amount.md diff --git a/models/descriptions/seller.md b/models/descriptions/columns/seller.md similarity index 100% rename from models/descriptions/seller.md rename to models/descriptions/columns/seller.md diff --git a/models/descriptions/signer.md b/models/descriptions/columns/signer.md similarity index 100% rename from models/descriptions/signer.md rename to models/descriptions/columns/signer.md diff --git a/models/descriptions/signers.md b/models/descriptions/columns/signers.md similarity index 100% rename from models/descriptions/signers.md rename to models/descriptions/columns/signers.md diff --git a/models/descriptions/stake_account.md b/models/descriptions/columns/stake_account.md similarity index 100% rename from models/descriptions/stake_account.md rename to models/descriptions/columns/stake_account.md diff --git a/models/descriptions/stake_authority.md b/models/descriptions/columns/stake_authority.md similarity index 100% rename from models/descriptions/stake_authority.md rename to models/descriptions/columns/stake_authority.md diff --git a/models/descriptions/columns/stake_pool.md b/models/descriptions/columns/stake_pool.md new file mode 100644 index 00000000..45bfce65 --- /dev/null +++ b/models/descriptions/columns/stake_pool.md @@ -0,0 +1,10 @@ +{% docs stake_pool %} + +The stake pool address or identifier that represents the specific staking pool within a protocol. This field enables pool-level analytics and tracking. + +- **Data type:** STRING (base58 Solana address or pool identifier) +- **Business context:** Used to identify specific staking pools, analyze pool performance, and track pool-specific activity. +- **Analytics use cases:** Pool-level analysis, performance comparison, and pool-specific activity tracking. +- **Example:** '4Nd1mYw4r...' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/stake_pool_action.md b/models/descriptions/columns/stake_pool_action.md new file mode 100644 index 00000000..a40f17fb --- /dev/null +++ b/models/descriptions/columns/stake_pool_action.md @@ -0,0 +1,10 @@ +{% docs stake_pool_action %} + +The type of action performed on the stake pool, such as deposit, withdraw, or other staking-related operations. + +- **Data type:** STRING (e.g., 'deposit', 'withdraw', 'stake', 'unstake') +- **Business context:** Used to categorize staking actions, analyze user behavior, and track staking patterns. +- **Analytics use cases:** Staking action analysis, user behavior studies, and staking pattern tracking. +- **Example:** 'deposit' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/stake_pool_address.md b/models/descriptions/columns/stake_pool_address.md new file mode 100644 index 00000000..e9a5fcc8 --- /dev/null +++ b/models/descriptions/columns/stake_pool_address.md @@ -0,0 +1,10 @@ +{% docs stake_pool_address %} + +The address of the stake pool or the user address involved in the staking action. This field identifies the specific address related to the staking operation. + +- **Data type:** STRING (base58 Solana address) +- **Business context:** Used to track stake pool addresses, analyze staking activity, and identify staking participants. +- **Analytics use cases:** Staking address analysis, participant tracking, and staking activity studies. +- **Example:** '4Nd1mYw4r...' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/stake_pool_amount.md b/models/descriptions/columns/stake_pool_amount.md new file mode 100644 index 00000000..b94aab52 --- /dev/null +++ b/models/descriptions/columns/stake_pool_amount.md @@ -0,0 +1,10 @@ +{% docs stake_pool_amount %} + +The amount involved in the stake pool action, denominated in lamports (the smallest unit of SOL). This field enables staking amount analysis and tracking. + +- **Data type:** NUMBER (integer, lamports) +- **Business context:** Used to track staking amounts, analyze staking patterns, and measure staking activity. +- **Analytics use cases:** Staking amount analysis, staking pattern studies, and staking activity measurement. +- **Example:** 1000000000 (1 SOL in lamports) + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/stake_pool_deposit_authority.md b/models/descriptions/columns/stake_pool_deposit_authority.md similarity index 100% rename from models/descriptions/stake_pool_deposit_authority.md rename to models/descriptions/columns/stake_pool_deposit_authority.md diff --git a/models/descriptions/columns/stake_pool_name.md b/models/descriptions/columns/stake_pool_name.md new file mode 100644 index 00000000..1c58ede0 --- /dev/null +++ b/models/descriptions/columns/stake_pool_name.md @@ -0,0 +1,10 @@ +{% docs stake_pool_name %} + +The name of the stake pool against which the action is performed. This field identifies the specific staking protocol or pool involved in the action. + +- **Data type:** STRING (e.g., 'Lido', 'Marinade', 'Jito') +- **Business context:** Used to identify the staking protocol, analyze protocol adoption, and compare staking performance. +- **Analytics use cases:** Staking protocol market share analysis, protocol adoption tracking, and staking performance comparison. +- **Example:** 'Lido' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/stake_pool_reserve_stake_address.md b/models/descriptions/columns/stake_pool_reserve_stake_address.md similarity index 100% rename from models/descriptions/stake_pool_reserve_stake_address.md rename to models/descriptions/columns/stake_pool_reserve_stake_address.md diff --git a/models/descriptions/columns/stake_pool_token.md b/models/descriptions/columns/stake_pool_token.md new file mode 100644 index 00000000..0ce6147c --- /dev/null +++ b/models/descriptions/columns/stake_pool_token.md @@ -0,0 +1,10 @@ +{% docs stake_pool_token %} + +The token utilized in the stake pool action, typically representing the staking token or reward token involved in the operation. + +- **Data type:** STRING (token symbol or mint address) +- **Business context:** Used to identify the token involved in staking, analyze token-specific staking activity, and track staking token usage. +- **Analytics use cases:** Token-specific staking analysis, staking token tracking, and cross-token staking studies. +- **Example:** 'SOL' or 'mSOL' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/stake_pool_withdraw_authority.md b/models/descriptions/columns/stake_pool_withdraw_authority.md similarity index 100% rename from models/descriptions/stake_pool_withdraw_authority.md rename to models/descriptions/columns/stake_pool_withdraw_authority.md diff --git a/models/descriptions/start_block.md b/models/descriptions/columns/start_block.md similarity index 100% rename from models/descriptions/start_block.md rename to models/descriptions/columns/start_block.md diff --git a/models/descriptions/start_block_id.md b/models/descriptions/columns/start_block_id.md similarity index 100% rename from models/descriptions/start_block_id.md rename to models/descriptions/columns/start_block_id.md diff --git a/models/descriptions/submitted_by.md b/models/descriptions/columns/submitted_by.md similarity index 100% rename from models/descriptions/submitted_by.md rename to models/descriptions/columns/submitted_by.md diff --git a/models/descriptions/columns/swap_from_amount_usd.md b/models/descriptions/columns/swap_from_amount_usd.md new file mode 100644 index 00000000..c8e9b0ba --- /dev/null +++ b/models/descriptions/columns/swap_from_amount_usd.md @@ -0,0 +1,10 @@ +{% docs swap_from_amount_usd %} + +The USD value of the tokens being sent into the swap, calculated using the token's price at the time of the swap. This field enables USD-denominated volume analysis and value flow tracking. + +- **Data type:** NUMBER (float, USD value) +- **Business context:** Used to calculate USD swap volume, analyze value flows, and measure economic impact of swaps. +- **Analytics use cases:** USD volume analysis, value flow tracking, and economic impact measurement. +- **Example:** 150.25 + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/swap_from_symbol.md b/models/descriptions/columns/swap_from_symbol.md new file mode 100644 index 00000000..69c58daf --- /dev/null +++ b/models/descriptions/columns/swap_from_symbol.md @@ -0,0 +1,10 @@ +{% docs swap_from_symbol %} + +The symbol of the token being sent or swapped from in the transaction. This field provides a human-readable identifier for the source asset, enabling token-specific analytics and filtering. + +- **Data type:** STRING (e.g., 'SOL', 'USDC', 'RAY') +- **Business context:** Used to identify the source asset in the swap, filter by token, and analyze token-specific activity. +- **Analytics use cases:** Token flow analysis, asset popularity studies, and cross-token comparisons. +- **Example:** 'SOL' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/swap_program.md b/models/descriptions/columns/swap_program.md new file mode 100644 index 00000000..c14e1ed3 --- /dev/null +++ b/models/descriptions/columns/swap_program.md @@ -0,0 +1,10 @@ +{% docs swap_program %} + +The name of the decentralized exchange (DEX) or protocol used to perform the swap. This field enables protocol-level analytics, DEX market share analysis, and routing studies. + +- **Data type:** STRING (e.g., 'Raydium', 'Orca', 'Meteora', 'Phoenix') +- **Business context:** Used to group swaps by protocol, analyze DEX usage trends, and compare protocol performance. +- **Analytics use cases:** DEX market share analysis, protocol adoption tracking, and swap routing optimization. +- **Example:** 'Raydium' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/swap_program_id.md b/models/descriptions/columns/swap_program_id.md new file mode 100644 index 00000000..7ebf4509 --- /dev/null +++ b/models/descriptions/columns/swap_program_id.md @@ -0,0 +1,10 @@ +{% docs swap_program_id %} + +The program ID of the AMM (Automated Market Maker) performing the swap within a Jupiter route. This field identifies the specific DEX protocol executing the swap step. + +- **Data type:** STRING (base58 Solana program address) +- **Business context:** Used to identify the DEX protocol for each swap step in a routed transaction. +- **Analytics use cases:** DEX usage analysis within routes, protocol performance comparison, and route optimization studies. +- **Example:** '675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/swap_to_amount_usd.md b/models/descriptions/columns/swap_to_amount_usd.md new file mode 100644 index 00000000..d704e4b5 --- /dev/null +++ b/models/descriptions/columns/swap_to_amount_usd.md @@ -0,0 +1,10 @@ +{% docs swap_to_amount_usd %} + +The USD value of the tokens being received from the swap, calculated using the token's price at the time of the swap. This field enables USD-denominated output analysis and value flow tracking. + +- **Data type:** NUMBER (float, USD value) +- **Business context:** Used to calculate USD output volume, analyze value flows, and measure economic impact of swaps. +- **Analytics use cases:** USD output analysis, value flow tracking, and economic impact measurement. +- **Example:** 148.75 + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/swap_to_symbol.md b/models/descriptions/columns/swap_to_symbol.md new file mode 100644 index 00000000..247ef7cb --- /dev/null +++ b/models/descriptions/columns/swap_to_symbol.md @@ -0,0 +1,10 @@ +{% docs swap_to_symbol %} + +The symbol of the token being received or swapped to in the transaction. This field provides a human-readable identifier for the destination asset, enabling token-specific analytics and filtering. + +- **Data type:** STRING (e.g., 'USDC', 'SOL', 'RAY') +- **Business context:** Used to identify the destination asset in the swap, filter by token, and analyze token-specific inflows. +- **Analytics use cases:** Token inflow analysis, asset demand studies, and DEX routing analytics. +- **Example:** 'USDC' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/swaps_from_amt.md b/models/descriptions/columns/swaps_from_amt.md new file mode 100644 index 00000000..37dd5a31 --- /dev/null +++ b/models/descriptions/columns/swaps_from_amt.md @@ -0,0 +1,10 @@ +{% docs swaps_from_amt %} + +The total amount of the token sent in to initiate the swap, as recorded on-chain. This value is already decimal adjusted according to the token's standard decimals, and represents the human-readable amount. + +- **Data type:** NUMBER (float or integer, depending on token) +- **Business context:** Used to calculate swap volume, analyze liquidity flows, and measure user activity. +- **Analytics use cases:** Volume analysis, liquidity tracking, slippage calculations, and DEX protocol comparisons. +- **Example:** For SOL, a value of `2.5` means 2.5 SOL. For USDC, a value of `100.5` means 100.5 USDC. + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/swaps_from_mint.md b/models/descriptions/columns/swaps_from_mint.md new file mode 100644 index 00000000..80dc4277 --- /dev/null +++ b/models/descriptions/columns/swaps_from_mint.md @@ -0,0 +1,10 @@ +{% docs swaps_from_mint %} + +The mint address of the token being sent or swapped from in the transaction. This is a unique identifier for the SPL token or SOL. + +- **Data type:** STRING (base58 Solana mint address) +- **Business context:** Used to identify the source asset in the swap, filter by token, and analyze token-specific activity. +- **Analytics use cases:** Token flow analysis, asset popularity studies, and cross-token comparisons. +- **Example:** SOL: `So11111111111111111111111111111111111111112`, USDC: `Es9vMFrzaCER...` + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/swaps_swap_index.md b/models/descriptions/columns/swaps_swap_index.md new file mode 100644 index 00000000..74981c52 --- /dev/null +++ b/models/descriptions/columns/swaps_swap_index.md @@ -0,0 +1,10 @@ +{% docs swaps_swap_index %} + +The order in which the intermediate swap was executed within a routed transaction (e.g., Jupiter aggregator route). Used to reconstruct the full path of multi-hop swaps. + +- **Data type:** INTEGER (0-based index) +- **Business context:** Enables step-by-step analysis of routed swaps, DEX path optimization, and route efficiency studies. +- **Analytics use cases:** Route reconstruction, DEX path analysis, and aggregator performance benchmarking. +- **Example:** In a 3-hop Jupiter route, swaps will have indices 0, 1, and 2. + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/swaps_swapper.md b/models/descriptions/columns/swaps_swapper.md new file mode 100644 index 00000000..82228f48 --- /dev/null +++ b/models/descriptions/columns/swaps_swapper.md @@ -0,0 +1,10 @@ +{% docs swaps_swapper %} + +The Solana address (base58-encoded string) that initiated the swap transaction. This field identifies the user or contract responsible for the swap, enabling wallet-level analytics, behavioral segmentation, and user journey analysis. + +- **Data type:** STRING (base58 Solana address, e.g., `4Nd1mYw4r...`) +- **Business context:** Used to group swaps by user, analyze trading patterns, and track protocol adoption. +- **Analytics use cases:** User segmentation, whale tracking, protocol adoption analysis, and cross-table joins with other user-activity models. +- **Example:** `4Nd1mYw4r...` + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/swaps_to_amt.md b/models/descriptions/columns/swaps_to_amt.md new file mode 100644 index 00000000..51e06975 --- /dev/null +++ b/models/descriptions/columns/swaps_to_amt.md @@ -0,0 +1,10 @@ +{% docs swaps_to_amt %} + +The total amount of the token received from the swap, as recorded on-chain. This value is already decimal adjusted according to the token's standard decimals, and represents the human-readable amount. + +- **Data type:** NUMBER (float or integer, depending on token) +- **Business context:** Used to measure swap output, analyze price impact, and track liquidity received. +- **Analytics use cases:** Output volume analysis, slippage and price impact studies, and DEX performance comparisons. +- **Example:** For USDC, a value of `1.0` means 1 USDC. For SOL, a value of `0.25` means 0.25 SOL. + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/swaps_to_mint.md b/models/descriptions/columns/swaps_to_mint.md new file mode 100644 index 00000000..506e637c --- /dev/null +++ b/models/descriptions/columns/swaps_to_mint.md @@ -0,0 +1,10 @@ +{% docs swaps_to_mint %} + +The mint address of the token being received or swapped to in the transaction. This is a unique identifier for the SPL token or SOL. + +- **Data type:** STRING (base58 Solana mint address) +- **Business context:** Used to identify the destination asset in the swap, filter by token, and analyze token-specific inflows. +- **Analytics use cases:** Token inflow analysis, asset demand studies, and DEX routing analytics. +- **Example:** SOL: `So11111111111111111111111111111111111111112`, USDT: `BQvQ8...` + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/symbol.md b/models/descriptions/columns/symbol.md similarity index 60% rename from models/descriptions/symbol.md rename to models/descriptions/columns/symbol.md index ea12b058..a669406e 100644 --- a/models/descriptions/symbol.md +++ b/models/descriptions/columns/symbol.md @@ -1,6 +1,6 @@ {% docs symbol %} -The symbol of the token involved in the transfer (e.g., SOL, USDC, RAY). Used to identify the asset type in analytics and reporting. +The symbol of the token involved in the action (e.g., SOL, USDC, RAY). Used to identify the asset type in analytics and reporting. **Data type:** String **Example:** diff --git a/models/descriptions/table_dim_labels.md b/models/descriptions/columns/table_dim_labels.md similarity index 100% rename from models/descriptions/table_dim_labels.md rename to models/descriptions/columns/table_dim_labels.md diff --git a/models/descriptions/token_a_account.md b/models/descriptions/columns/token_a_account.md similarity index 100% rename from models/descriptions/token_a_account.md rename to models/descriptions/columns/token_a_account.md diff --git a/models/descriptions/token_a_amount.md b/models/descriptions/columns/token_a_amount.md similarity index 100% rename from models/descriptions/token_a_amount.md rename to models/descriptions/columns/token_a_amount.md diff --git a/models/descriptions/columns/token_a_amount_usd.md b/models/descriptions/columns/token_a_amount_usd.md new file mode 100644 index 00000000..79578964 --- /dev/null +++ b/models/descriptions/columns/token_a_amount_usd.md @@ -0,0 +1,10 @@ +{% docs token_a_amount_usd %} + +The USD value of token A involved in the liquidity pool action, calculated using the token's price at the time of the action. + +- **Data type:** NUMBER (float, USD value) +- **Business context:** Used to calculate USD-denominated liquidity flows and measure the economic impact of liquidity actions. +- **Analytics use cases:** USD liquidity flow analysis, economic impact measurement, and value-based liquidity studies. +- **Example:** 150.25 + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/token_a_mint.md b/models/descriptions/columns/token_a_mint.md similarity index 100% rename from models/descriptions/token_a_mint.md rename to models/descriptions/columns/token_a_mint.md diff --git a/models/descriptions/columns/token_account.md b/models/descriptions/columns/token_account.md new file mode 100644 index 00000000..e2fed89b --- /dev/null +++ b/models/descriptions/columns/token_account.md @@ -0,0 +1,10 @@ +{% docs token_account %} + +The account address where tokens are stored and from which they are burned or to which they are minted. This field identifies the specific token account involved in the action. + +- **Data type:** STRING (base58 Solana address) +- **Business context:** Used to track token account activity, analyze token flows, and identify token holders. +- **Analytics use cases:** Token account analysis, holder tracking, and token flow studies. +- **Example:** '4Nd1mYw4r...' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/token_b_account.md b/models/descriptions/columns/token_b_account.md similarity index 100% rename from models/descriptions/token_b_account.md rename to models/descriptions/columns/token_b_account.md diff --git a/models/descriptions/token_b_amount.md b/models/descriptions/columns/token_b_amount.md similarity index 100% rename from models/descriptions/token_b_amount.md rename to models/descriptions/columns/token_b_amount.md diff --git a/models/descriptions/columns/token_b_amount_usd.md b/models/descriptions/columns/token_b_amount_usd.md new file mode 100644 index 00000000..a9702b59 --- /dev/null +++ b/models/descriptions/columns/token_b_amount_usd.md @@ -0,0 +1,10 @@ +{% docs token_b_amount_usd %} + +The USD value of token B involved in the liquidity pool action, calculated using the token's price at the time of the action. + +- **Data type:** NUMBER (float, USD value) +- **Business context:** Used to calculate USD-denominated liquidity flows and measure the economic impact of liquidity actions. +- **Analytics use cases:** USD liquidity flow analysis, economic impact measurement, and value-based liquidity studies. +- **Example:** 75.50 + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/token_b_mint.md b/models/descriptions/columns/token_b_mint.md similarity index 100% rename from models/descriptions/token_b_mint.md rename to models/descriptions/columns/token_b_mint.md diff --git a/models/descriptions/columns/token_c_amount.md b/models/descriptions/columns/token_c_amount.md new file mode 100644 index 00000000..4cb62dab --- /dev/null +++ b/models/descriptions/columns/token_c_amount.md @@ -0,0 +1,10 @@ +{% docs token_c_amount %} + +The amount of the third token involved in the liquidity pool action, already decimal adjusted according to the token's standard decimals. + +- **Data type:** NUMBER (float or integer, depending on token) +- **Business context:** Used to track the third token's liquidity flows, analyze multi-token pool activity, and measure token-specific liquidity provision. +- **Analytics use cases:** Multi-token liquidity analysis, token-specific flow tracking, and cross-token liquidity studies. +- **Example:** For SOL, a value of `5.0` means 5 SOL. + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/token_c_amount_usd.md b/models/descriptions/columns/token_c_amount_usd.md new file mode 100644 index 00000000..1570238b --- /dev/null +++ b/models/descriptions/columns/token_c_amount_usd.md @@ -0,0 +1,10 @@ +{% docs token_c_amount_usd %} + +The USD value of token C involved in the liquidity pool action, calculated using the token's price at the time of the action. This field is used for pools with more than two tokens. + +- **Data type:** NUMBER (float, USD value) +- **Business context:** Used to calculate USD-denominated liquidity flows for multi-token pools and measure the economic impact of liquidity actions. +- **Analytics use cases:** USD liquidity flow analysis for multi-token pools, economic impact measurement, and value-based liquidity studies. +- **Example:** 25.75 + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/token_c_mint.md b/models/descriptions/columns/token_c_mint.md new file mode 100644 index 00000000..fbbd7bbe --- /dev/null +++ b/models/descriptions/columns/token_c_mint.md @@ -0,0 +1,10 @@ +{% docs token_c_mint %} + +The mint address of the third token in a liquidity pool pair. This field identifies the third token involved in multi-token liquidity pool actions. + +- **Data type:** STRING (base58 Solana mint address) +- **Business context:** Used to identify the third token in multi-token pools, analyze token-specific liquidity flows, and track multi-token pool activity. +- **Analytics use cases:** Multi-token pool analysis, token-specific liquidity tracking, and cross-token liquidity studies. +- **Example:** 'So11111111111111111111111111111111111111112' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/token_d_amount.md b/models/descriptions/columns/token_d_amount.md new file mode 100644 index 00000000..6028c88f --- /dev/null +++ b/models/descriptions/columns/token_d_amount.md @@ -0,0 +1,10 @@ +{% docs token_d_amount %} + +The amount of the fourth token involved in the liquidity pool action, already decimal adjusted according to the token's standard decimals. + +- **Data type:** NUMBER (float or integer, depending on token) +- **Business context:** Used to track the fourth token's liquidity flows, analyze four-token pool activity, and measure token-specific liquidity provision. +- **Analytics use cases:** Four-token liquidity analysis, token-specific flow tracking, and cross-token liquidity studies. +- **Example:** For USDC, a value of `100.0` means 100 USDC. + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/token_d_amount_usd.md b/models/descriptions/columns/token_d_amount_usd.md new file mode 100644 index 00000000..b912b66e --- /dev/null +++ b/models/descriptions/columns/token_d_amount_usd.md @@ -0,0 +1,10 @@ +{% docs token_d_amount_usd %} + +The USD value of token D involved in the liquidity pool action, calculated using the token's price at the time of the action. This field is used for pools with four tokens. + +- **Data type:** NUMBER (float, USD value) +- **Business context:** Used to calculate USD-denominated liquidity flows for four-token pools and measure the economic impact of liquidity actions. +- **Analytics use cases:** USD liquidity flow analysis for four-token pools, economic impact measurement, and value-based liquidity studies. +- **Example:** 10.25 + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/columns/token_d_mint.md b/models/descriptions/columns/token_d_mint.md new file mode 100644 index 00000000..024591e0 --- /dev/null +++ b/models/descriptions/columns/token_d_mint.md @@ -0,0 +1,10 @@ +{% docs token_d_mint %} + +The mint address of the fourth token in a liquidity pool pair. This field identifies the fourth token involved in four-token liquidity pool actions. + +- **Data type:** STRING (base58 Solana mint address) +- **Business context:** Used to identify the fourth token in four-token pools, analyze token-specific liquidity flows, and track four-token pool activity. +- **Analytics use cases:** Four-token pool analysis, token-specific liquidity tracking, and cross-token liquidity studies. +- **Example:** 'So11111111111111111111111111111111111111112' + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/token_id.md b/models/descriptions/columns/token_id.md similarity index 100% rename from models/descriptions/token_id.md rename to models/descriptions/columns/token_id.md diff --git a/models/descriptions/token_metadata.md b/models/descriptions/columns/token_metadata.md similarity index 100% rename from models/descriptions/token_metadata.md rename to models/descriptions/columns/token_metadata.md diff --git a/models/descriptions/token_metadata_uri.md b/models/descriptions/columns/token_metadata_uri.md similarity index 100% rename from models/descriptions/token_metadata_uri.md rename to models/descriptions/columns/token_metadata_uri.md diff --git a/models/descriptions/token_name.md b/models/descriptions/columns/token_name.md similarity index 100% rename from models/descriptions/token_name.md rename to models/descriptions/columns/token_name.md diff --git a/models/descriptions/total_fees.md b/models/descriptions/columns/total_fees.md similarity index 100% rename from models/descriptions/total_fees.md rename to models/descriptions/columns/total_fees.md diff --git a/models/descriptions/tree_authority.md b/models/descriptions/columns/tree_authority.md similarity index 100% rename from models/descriptions/tree_authority.md rename to models/descriptions/columns/tree_authority.md diff --git a/models/descriptions/tribeca_gauge.md b/models/descriptions/columns/tribeca_gauge.md similarity index 100% rename from models/descriptions/tribeca_gauge.md rename to models/descriptions/columns/tribeca_gauge.md diff --git a/models/descriptions/tribeca_gauge_delegated_shares.md b/models/descriptions/columns/tribeca_gauge_delegated_shares.md similarity index 100% rename from models/descriptions/tribeca_gauge_delegated_shares.md rename to models/descriptions/columns/tribeca_gauge_delegated_shares.md diff --git a/models/descriptions/tribeca_gauge_power.md b/models/descriptions/columns/tribeca_gauge_power.md similarity index 100% rename from models/descriptions/tribeca_gauge_power.md rename to models/descriptions/columns/tribeca_gauge_power.md diff --git a/models/descriptions/tribeca_gauge_validator_account.md b/models/descriptions/columns/tribeca_gauge_validator_account.md similarity index 100% rename from models/descriptions/tribeca_gauge_validator_account.md rename to models/descriptions/columns/tribeca_gauge_validator_account.md diff --git a/models/descriptions/tribeca_gauge_voter.md b/models/descriptions/columns/tribeca_gauge_voter.md similarity index 100% rename from models/descriptions/tribeca_gauge_voter.md rename to models/descriptions/columns/tribeca_gauge_voter.md diff --git a/models/descriptions/tribeca_gaugemeister.md b/models/descriptions/columns/tribeca_gaugemeister.md similarity index 100% rename from models/descriptions/tribeca_gaugemeister.md rename to models/descriptions/columns/tribeca_gaugemeister.md diff --git a/models/descriptions/tx_from.md b/models/descriptions/columns/tx_from.md similarity index 100% rename from models/descriptions/tx_from.md rename to models/descriptions/columns/tx_from.md diff --git a/models/descriptions/tx_id.md b/models/descriptions/columns/tx_id.md similarity index 100% rename from models/descriptions/tx_id.md rename to models/descriptions/columns/tx_id.md diff --git a/models/descriptions/tx_index.md b/models/descriptions/columns/tx_index.md similarity index 100% rename from models/descriptions/tx_index.md rename to models/descriptions/columns/tx_index.md diff --git a/models/descriptions/tx_size.md b/models/descriptions/columns/tx_size.md similarity index 100% rename from models/descriptions/tx_size.md rename to models/descriptions/columns/tx_size.md diff --git a/models/descriptions/tx_succeeded.md b/models/descriptions/columns/tx_succeeded.md similarity index 100% rename from models/descriptions/tx_succeeded.md rename to models/descriptions/columns/tx_succeeded.md diff --git a/models/descriptions/tx_to.md b/models/descriptions/columns/tx_to.md similarity index 100% rename from models/descriptions/tx_to.md rename to models/descriptions/columns/tx_to.md diff --git a/models/descriptions/units_consumed.md b/models/descriptions/columns/units_consumed.md similarity index 100% rename from models/descriptions/units_consumed.md rename to models/descriptions/columns/units_consumed.md diff --git a/models/descriptions/units_limit.md b/models/descriptions/columns/units_limit.md similarity index 100% rename from models/descriptions/units_limit.md rename to models/descriptions/columns/units_limit.md diff --git a/models/descriptions/vote_pubkey.md b/models/descriptions/columns/vote_pubkey.md similarity index 100% rename from models/descriptions/vote_pubkey.md rename to models/descriptions/columns/vote_pubkey.md diff --git a/models/descriptions/withdraw_authority.md b/models/descriptions/columns/withdraw_authority.md similarity index 100% rename from models/descriptions/withdraw_authority.md rename to models/descriptions/columns/withdraw_authority.md diff --git a/models/descriptions/liquidity_pool_address.md b/models/descriptions/liquidity_pool_address.md deleted file mode 100644 index c2655b60..00000000 --- a/models/descriptions/liquidity_pool_address.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs liquidity_pool_address %} - -Address of the liquidity pool - -{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/liquidity_provider.md b/models/descriptions/liquidity_provider.md deleted file mode 100644 index 2fc64867..00000000 --- a/models/descriptions/liquidity_provider.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs liquidity_provider %} - -Wallet address initiating the deposit/withdraw or mint/burn - -{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/mint_amount.md b/models/descriptions/mint_amount.md deleted file mode 100644 index 462eba1f..00000000 --- a/models/descriptions/mint_amount.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs mint_amount %} - -Number of tokens minted - -{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/mint_currency.md b/models/descriptions/mint_currency.md deleted file mode 100644 index 6b3faa10..00000000 --- a/models/descriptions/mint_currency.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs mint_currency %} - -Currency used to pay for the NFT mint. - -{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/mint_price.md b/models/descriptions/mint_price.md deleted file mode 100644 index 2b2cbc85..00000000 --- a/models/descriptions/mint_price.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs mint_price %} - -Price that it cost to mint the NFT in SOL or other currency. - -{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/stake_pool.md b/models/descriptions/stake_pool.md deleted file mode 100644 index 72ed402a..00000000 --- a/models/descriptions/stake_pool.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs stake_pool %} - -Address for a given stake pool - -{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/stake_pool_action.md b/models/descriptions/stake_pool_action.md deleted file mode 100644 index ab227852..00000000 --- a/models/descriptions/stake_pool_action.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs stake_pool_action %} - -Action performed against a given stake pool - -{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/stake_pool_address.md b/models/descriptions/stake_pool_address.md deleted file mode 100644 index 4a8b3213..00000000 --- a/models/descriptions/stake_pool_address.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs stake_pool_address %} - -Wallet address initiating the deposit/stake or withdraw/unstake - -{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/stake_pool_amount.md b/models/descriptions/stake_pool_amount.md deleted file mode 100644 index b019d5d7..00000000 --- a/models/descriptions/stake_pool_amount.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs stake_pool_amount %} - -Amount of SOL being deposited/staked or withdrawn/unstaked - -{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/swaps_from_amt.md b/models/descriptions/swaps_from_amt.md deleted file mode 100644 index a5ada0e9..00000000 --- a/models/descriptions/swaps_from_amt.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs swaps_from_amt %} - -Total amount of the token sent in to initiate the swap - -{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/swaps_from_mint.md b/models/descriptions/swaps_from_mint.md deleted file mode 100644 index fa8107cd..00000000 --- a/models/descriptions/swaps_from_mint.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs swaps_from_mint %} - -Token being sent or swapped from - -{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/swaps_swap_index.md b/models/descriptions/swaps_swap_index.md deleted file mode 100644 index 822c8a7f..00000000 --- a/models/descriptions/swaps_swap_index.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs swaps_swap_index %} - -Order in which the intermediate swap was executed - -{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/swaps_swapper.md b/models/descriptions/swaps_swapper.md deleted file mode 100644 index 7adbe65a..00000000 --- a/models/descriptions/swaps_swapper.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs swaps_swapper %} - -Address that initiated the swap - -{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/swaps_to_amt.md b/models/descriptions/swaps_to_amt.md deleted file mode 100644 index 39df396e..00000000 --- a/models/descriptions/swaps_to_amt.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs swaps_to_amt %} - -Total amount of the token received in the swap - -{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/swaps_to_mint.md b/models/descriptions/swaps_to_mint.md deleted file mode 100644 index 12e667d5..00000000 --- a/models/descriptions/swaps_to_mint.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs swaps_to_mint %} - -Token being received or swapped for - -{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/tables/dim_nft_metadata.md b/models/descriptions/tables/dim_nft_metadata.md new file mode 100644 index 00000000..616826dd --- /dev/null +++ b/models/descriptions/tables/dim_nft_metadata.md @@ -0,0 +1,30 @@ +{% docs dim_nft_metadata %} + +## Description +This table contains comprehensive metadata for all NFTs on Solana, including both standard NFTs and compressed NFTs (cNFTs). It serves as the authoritative source for NFT attributes such as names, collection information, creator details, and metadata URIs. The data is sourced from Helius API and enriched with collection information from Solscan, providing a complete view of NFT characteristics and relationships. + +## Key Use Cases +- Query NFTs by name, collection, or creator to find specific assets +- Analyze NFT collections by grouping metadata and tracking creator royalties +- Provide rich metadata for NFT marketplaces and trading platforms +- Track creator performance and royalty distributions across NFT sales +- Verify NFT metadata completeness and quality for data integrity + +## Important Relationships +- Links to `nft.ez_nft_sales` via `mint` address to provide metadata context for sales transactions +- Connects to `nft.fact_nft_mints` through `mint` address to enrich mint event data +- `collection_id` groups NFTs into collections, enabling collection-level analytics +- `creators` field contains creator addresses and royalty percentages for revenue tracking + +## Commonly-used Fields +- `mint`: The unique mint address of the NFT (primary identifier) +- `nft_name`: Human-readable name of the NFT for display and search +- `nft_collection_name`: Name of the collection the NFT belongs to +- `collection_id`: Address identifier for the NFT collection +- `creators`: JSON array containing creator addresses and royalty percentages +- `authority`: Address with authority over the NFT mint (important for editions) +- `image_url`: Direct link to the NFT's image for display purposes +- `metadata_uri`: URI pointing to the complete metadata JSON for the NFT +- `metadata`: Parsed metadata object containing all NFT attributes and properties + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/tables/ez_dex_swaps.md b/models/descriptions/tables/ez_dex_swaps.md new file mode 100644 index 00000000..b90f20b4 --- /dev/null +++ b/models/descriptions/tables/ez_dex_swaps.md @@ -0,0 +1,20 @@ +{% docs ez_dex_swaps %} + +## Description +This table provides an enhanced view of DEX swap activity with USD pricing, token verification status, and enriched metadata. It aggregates swap data from `defi.fact_swaps` and enriches it with price information and token details, making it the preferred table for most DEX analytics. Includes swaps from curated DEX protocols and standalone swaps, supporting detailed analysis of trading activity, value flows, and market dynamics. + +## Key Use Cases +- Analyze DEX trading activity with USD-denominated metrics +- Calculate real swap volume and compare swap activity across DEXes +- Compare activity across different curated swap programs +- Analyze user intent and distinguish routed vs. direct swaps + +## Important Relationships +- Source data from `defi.fact_swaps` +- Use with `defi.fact_swaps_jupiter_inner` and `defi.fact_swaps_jupiter_summary` for routed swap analysis +- Example queries: swap metrics by DEX protocol, compare activity across routed/direct swaps + +## Commonly-used Fields +- `block_timestamp`, `swapper`, `swap_from_mint`, `swap_to_mint`, `swap_from_amount_usd`, `swap_to_amount_usd`, `swap_program` + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/tables/ez_liquidity_pool_actions.md b/models/descriptions/tables/ez_liquidity_pool_actions.md new file mode 100644 index 00000000..637551d8 --- /dev/null +++ b/models/descriptions/tables/ez_liquidity_pool_actions.md @@ -0,0 +1,26 @@ +{% docs ez_liquidity_pool_actions %} + +## Description +This table captures liquidity pool actions (deposits and withdrawals) across major Solana DeFi protocols including Raydium, Orca, and Meteora. It provides a unified view of liquidity provision and removal events with USD pricing, token verification status, and platform identification. Each row represents a single liquidity pool action, supporting analytics on DeFi protocol usage, liquidity provision patterns, and yield farming activities. + +## Key Use Cases +- Analyze liquidity provision and removal patterns across DeFi protocols +- Track yield farming activities and liquidity mining incentives +- Study protocol adoption and user behavior in liquidity pools +- Monitor USD-denominated liquidity flows and TVL changes +- Support analytics on DeFi protocol performance and user engagement + +## Important Relationships +- Closely related to `defi.fact_swaps` (for swap activity), `defi.ez_dex_swaps` (for DEX activity), and `defi.fact_bridge_activity` (for cross-chain flows) +- Use `defi.fact_swaps` and `defi.ez_dex_swaps` to analyze trading activity in liquidity pools +- Use `defi.fact_bridge_activity` to understand cross-chain liquidity flows +- Joins with `core.fact_blocks` for block context and `core.fact_transactions` for transaction context + +## Commonly-used Fields +- `block_timestamp`: For time-series and liquidity flow analysis +- `action_type`: For filtering deposits vs withdrawals +- `provider_address`, `pool_address`: For user and pool identification +- `token_a_mint`, `token_b_mint`, `token_a_amount_usd`, `token_b_amount_usd`: For token and value analytics +- `platform`: For protocol-specific analysis + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/tables/ez_nft_sales.md b/models/descriptions/tables/ez_nft_sales.md new file mode 100644 index 00000000..8b171076 --- /dev/null +++ b/models/descriptions/tables/ez_nft_sales.md @@ -0,0 +1,35 @@ +{% docs ez_nft_sales %} + +## Description +This table provides a unified view of NFT sales across multiple Solana marketplaces, including Magic Eden, Hadeswap, Exchange Art, TensorSwap, and others. It consolidates sales data from various marketplace sources and enriches it with NFT metadata, USD pricing, and marketplace information. The table supports both standard NFTs and compressed NFTs (cNFTs), with USD prices available from December 16, 2021 onwards, enabling comprehensive cross-marketplace analysis. + +## Key Use Cases +- Compare sales volumes and trends across different NFT marketplaces +- Monitor NFT price movements and market performance over time +- Analyze sales performance of specific NFT collections and individual assets +- Study buyer and seller patterns across different marketplaces and time periods +- Track creator royalties and marketplace fees from NFT sales +- Identify trending collections and high-value NFT transactions + +## Important Relationships +- Links to `nft.dim_nft_metadata` via `mint` address to provide rich NFT context +- Connects to `price.ez_prices_hourly` for USD price conversion and `price.ez_asset_metadata` for currency symbols +- References `core.fact_blocks` and `core.fact_transactions` for blockchain context +- Includes specialized fields (`tree_authority`, `merkle_tree`, `leaf_index`) for cNFT transactions + +## Commonly-used Fields +- `block_timestamp`: Timestamp when the sale transaction was processed on Solana +- `tx_id`: Unique transaction identifier for the sale +- `buyer_address`: Address of the account that purchased the NFT +- `seller_address`: Address of the account that sold the NFT +- `mint`: The unique mint address of the NFT being sold +- `price`: Sale amount in the native currency (typically SOL) +- `price_usd`: Sale amount converted to USD for cross-marketplace comparison +- `marketplace`: Name of the marketplace where the sale occurred +- `currency_address`: Address of the token used for payment +- `currency_symbol`: Symbol of the payment token (e.g., SOL, USDC) +- `is_compressed`: Boolean indicating if the NFT is a compressed NFT (cNFT) +- `nft_name`: Human-readable name of the NFT from metadata +- `nft_collection_name`: Name of the collection the NFT belongs to + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/tables/fact_bridge_activity.md b/models/descriptions/tables/fact_bridge_activity.md new file mode 100644 index 00000000..393055a1 --- /dev/null +++ b/models/descriptions/tables/fact_bridge_activity.md @@ -0,0 +1,27 @@ +{% docs fact_bridge_activity %} + +## Description +This table contains bridging actions across major cross-chain protocols including Wormhole, DeBridge, and Mayan Finance. It tracks token transfers between Solana and other blockchains, capturing both inbound (to Solana) and outbound (from Solana) bridge activity. Each row represents a single bridge transaction, supporting analytics on cross-chain liquidity flows, bridge protocol usage, and multi-chain DeFi activity. + +## Key Use Cases +- Analyze cross-chain liquidity flows and bridge protocol adoption +- Track token movements between Solana and other blockchains +- Study bridge protocol usage patterns and user behavior +- Monitor cross-chain DeFi activity and capital flows +- Support analytics on multi-chain ecosystem growth and integration + +## Important Relationships +- Closely related to `defi.ez_bridge_activity` (preferred for most analytics), `defi.ez_liquidity_pool_actions` (for liquidity flows), and `defi.ez_dex_swaps` (for DEX activity) +- Use `defi.ez_bridge_activity` for enhanced bridge analytics with USD pricing and token metadata +- Use `defi.ez_liquidity_pool_actions` to analyze liquidity provision after bridging +- Use `defi.ez_dex_swaps` to track trading activity of bridged tokens +- Joins with `core.fact_blocks` for block context and `core.fact_transactions` for transaction context + +## Commonly-used Fields +- `block_timestamp`: For time-series and bridge flow analysis +- `direction`: For filtering inbound vs outbound transfers +- `platform`: For protocol-specific analysis +- `user_address`, `amount`, `mint`: For user and token analytics +- `succeeded`: For transaction success analysis + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/tables/fact_nft_burn_actions.md b/models/descriptions/tables/fact_nft_burn_actions.md new file mode 100644 index 00000000..30ca7cdb --- /dev/null +++ b/models/descriptions/tables/fact_nft_burn_actions.md @@ -0,0 +1,29 @@ +{% docs fact_nft_burn_actions %} + +## Description +This table tracks all NFT burning events on Solana, capturing when NFTs are permanently destroyed or removed from circulation. It provides detailed information about burn operations including the burning authority, amount burned, and technical transaction details. Burning is a critical mechanism for NFT supply management and can occur for various reasons including marketplace delisting, collection management, or user-initiated destruction, supporting comprehensive NFT lifecycle analysis. + +## Key Use Cases +- Track NFT burning patterns and their impact on collection supply +- Monitor burning activities related to marketplace delisting and cleanup operations +- Analyze which addresses have authority to burn NFTs and their usage patterns +- Study how creators and collection managers use burning for supply control +- Complete the lifecycle view from minting to burning for comprehensive NFT analytics + +## Important Relationships +- Links to `nft.dim_nft_metadata` via `mint` address to provide metadata context +- Connects to `nft.fact_nft_mints` through `mint` address to track complete NFT lifecycle +- References `nft.ez_nft_sales` to understand trading activity before burning +- References `core.fact_blocks` and `core.fact_transactions` for blockchain context +- `index` and `inner_index` provide ordering within transaction instructions + +## Commonly-used Fields +- `block_timestamp`: Timestamp when the burn action was processed on Solana +- `tx_id`: Unique transaction identifier for the burn action +- `mint`: The unique mint address of the NFT being burned +- `burn_authority`: Address of the account with authority to perform the burn action +- `burn_amount`: Amount of tokens burned in the action (typically 1 for NFTs) +- `event_type`: Type of burn action (e.g., 'burn', 'close_account') +- `mint_standard_type`: NFT standard being used (e.g., 'metaplex', 'candy_machine') + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/tables/fact_nft_mint_actions.md b/models/descriptions/tables/fact_nft_mint_actions.md new file mode 100644 index 00000000..b2350483 --- /dev/null +++ b/models/descriptions/tables/fact_nft_mint_actions.md @@ -0,0 +1,28 @@ +{% docs fact_nft_mint_actions %} + +## Description +This table captures detailed minting events for NFTs on Solana, providing granular information about each mint action including the minting authority, amount, and technical details. It tracks the actual minting operations that occur when NFTs are created, burned, or modified, offering insights into the underlying mechanics of NFT lifecycle management and supporting technical analysis of NFT operations. + +## Key Use Cases +- Track which addresses have authority to mint NFTs and their activity patterns +- Monitor minting and burning activities that affect NFT supply +- Study how different programs interact with NFT mints +- Analyze the technical details of minting operations for debugging and optimization +- Verify that minting operations follow proper NFT standards + +## Important Relationships +- Links to `nft.dim_nft_metadata` via `mint` address to provide metadata context +- Connects to `nft.fact_nft_mints` through `mint` address for comprehensive mint tracking +- References `core.fact_blocks` and `core.fact_transactions` for blockchain context +- `index` and `inner_index` provide ordering within transaction instructions + +## Commonly-used Fields +- `block_timestamp`: Timestamp when the mint action was processed on Solana +- `tx_id`: Unique transaction identifier for the mint action +- `mint`: The unique mint address of the NFT being acted upon +- `mint_authority`: Address of the account with authority to perform the mint action +- `mint_amount`: Amount of tokens minted in the action (typically 1 for NFTs) +- `event_type`: Type of mint action (e.g., 'mint', 'burn', 'transfer') +- `mint_standard_type`: NFT standard being used (e.g., 'metaplex', 'candy_machine') + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/tables/fact_nft_mints.md b/models/descriptions/tables/fact_nft_mints.md new file mode 100644 index 00000000..7c1716d9 --- /dev/null +++ b/models/descriptions/tables/fact_nft_mints.md @@ -0,0 +1,30 @@ +{% docs fact_nft_mints %} + +## Description +This table tracks all NFT minting events on Solana, including both standard NFTs and compressed NFTs (cNFTs). It captures the initial creation of NFTs, including mint prices, purchasers, and program information. The data is sourced from various minting programs and provides a comprehensive view of NFT creation activity across the Solana ecosystem, supporting analysis of minting trends and creator economics. + +## Key Use Cases +- Track NFT creation trends and identify popular minting periods +- Analyze which minting programs are most active and successful +- Study mint prices and their correlation with subsequent market performance +- Monitor revenue generated from initial NFT sales +- Understand the rate of new NFT creation and its impact on market dynamics +- Track the adoption and usage of compressed NFTs vs standard NFTs + +## Important Relationships +- Links to `nft.dim_nft_metadata` via `mint` address to provide metadata context +- Connects to `nft.ez_nft_sales` through `mint` address to track post-mint trading activity +- References `core.fact_blocks` and `core.fact_transactions` for blockchain context +- `program_id` identifies the specific minting program used for creation + +## Commonly-used Fields +- `block_timestamp`: Timestamp when the mint transaction was processed on Solana +- `tx_id`: Unique transaction identifier for the mint event +- `purchaser`: Address of the account that purchased the NFT during minting +- `mint`: The unique mint address of the newly created NFT +- `mint_price`: Price paid to mint the NFT in the specified currency +- `mint_currency`: Address of the token used to pay for the mint +- `program_id`: Address of the minting program that created the NFT +- `is_compressed`: Boolean indicating if the minted NFT is a compressed NFT (cNFT) + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/tables/fact_stake_pool_actions.md b/models/descriptions/tables/fact_stake_pool_actions.md new file mode 100644 index 00000000..de870278 --- /dev/null +++ b/models/descriptions/tables/fact_stake_pool_actions.md @@ -0,0 +1,27 @@ +{% docs fact_stake_pool_actions %} + +## Description +This table contains deposit and withdrawal actions with stake pools on the Solana blockchain, including major protocols like Lido, Marinade, and Jito. It tracks liquid staking activities, capturing user interactions with stake pools, staking amounts, and pool-specific metadata. Each row represents a single stake pool action, supporting analytics on liquid staking adoption, yield generation, and staking protocol usage. + +## Key Use Cases +- Analyze liquid staking adoption and user behavior +- Track stake pool performance and yield generation +- Study staking protocol usage patterns and preferences +- Monitor staking flows and capital allocation +- Support analytics on DeFi staking ecosystem growth + +## Important Relationships +- Closely related to `defi.ez_liquidity_pool_actions` (for liquidity provision), `defi.ez_dex_swaps` (for DEX activity), and `core.fact_transfers` (for token movements) +- Use `defi.ez_liquidity_pool_actions` to analyze liquidity provision in staking-related pools +- Use `defi.ez_dex_swaps` to track trading of liquid staking tokens +- Use `core.fact_transfers` to analyze token movements related to staking +- Joins with `core.fact_blocks` for block context and `core.fact_transactions` for transaction context + +## Commonly-used Fields +- `block_timestamp`: For time-series and staking activity analysis +- `stake_pool_name`, `action`: For pool and action identification +- `amount`: For staking amount analytics +- `address`: For user and pool address analysis +- `succeeded`: For transaction success analysis + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/tables/fact_swaps.md b/models/descriptions/tables/fact_swaps.md new file mode 100644 index 00000000..9c76b513 --- /dev/null +++ b/models/descriptions/tables/fact_swaps.md @@ -0,0 +1,22 @@ +{% docs fact_swaps %} + +## Description +This table contains all swap transactions across major Solana DEXes, including curated DEX protocols (Raydium, Orca, Meteora, Bonkswap, etc.) and standalone swaps. It provides visibility into every swap that uses the curated programs, whether it is a direct swap through a DEX or a swap that is a step in a Jupiter route. This table is foundational for analyzing swap activity, comparing swap volume, and understanding user intent across the Solana DeFi ecosystem. + +## Key Use Cases +- Analyze all swaps for every supported DEX program (Raydium, Orca, Meteora, Bonkswap, etc.) +- Calculate real swap volume and compare swap activity across DEXes +- Compare activity across different curated swap programs +- Analyze user intent behind Jupiter swaps (with reference to jupiter summary/inner tables) +- Support for user-level metrics, buy/sell volume, and intent distinction + +## Important Relationships +- Use with `defi.ez_dex_swaps` for enhanced analytics and USD pricing +- Use with `defi.fact_swaps_jupiter_inner` to analyze routed swaps and full Jupiter paths +- Use with `defi.fact_swaps_jupiter_summary` for user-level intent and summarized Jupiter swaps +- Example queries: buy/sell volume for a token, swap metrics by DEX protocol, compare activity across routed/direct swaps + +## Commonly-used Fields +- `block_timestamp`, `swapper`, `swap_from_mint`, `swap_to_mint`, `swap_from_amount`, `swap_to_amount`, `swap_program` + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/tables/fact_swaps_jupiter_inner.md b/models/descriptions/tables/fact_swaps_jupiter_inner.md new file mode 100644 index 00000000..05fd6e9a --- /dev/null +++ b/models/descriptions/tables/fact_swaps_jupiter_inner.md @@ -0,0 +1,19 @@ +{% docs fact_swaps_jupiter_inner %} + +## Description +This table contains each intermediate swap that is part of a Jupiter route, representing the individual steps executed by Jupiter to complete a swap. It provides granular visibility into the routing logic and execution path of Jupiter aggregator swaps, capturing the specific DEXes and pools used for each step. Each row represents a single intermediate swap within a larger Jupiter transaction, supporting detailed analysis of Jupiter's routing efficiency and DEX usage patterns. + +## Key Use Cases +- Analyze the full path and DEX usage for Jupiter-routed swaps +- Calculate routed swap volume and compare with direct swaps +- Understand Jupiter’s routing logic and total impact on DEX activity + +## Important Relationships +- Use with `defi.fact_swaps_jupiter_summary` for user-level intent and summarized swaps +- Use with `defi.fact_swaps` to compare routed and direct swaps +- Example queries: buy/sell volume for a token routed on Jupiter, compare volume of Jupiter-routed swaps vs. direct DEX swaps + +## Commonly-used Fields +- `block_timestamp`, `swap_index`, `swap_from_mint`, `swap_to_mint`, `swap_from_amount`, `swap_to_amount`, `program_id` + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/tables/fact_swaps_jupiter_summary.md b/models/descriptions/tables/fact_swaps_jupiter_summary.md new file mode 100644 index 00000000..de55000a --- /dev/null +++ b/models/descriptions/tables/fact_swaps_jupiter_summary.md @@ -0,0 +1,19 @@ +{% docs fact_swaps_jupiter_summary %} + +## Description +This table contains summary information for Jupiter aggregator swaps, representing the complete user transaction rather than individual route steps. It captures the overall swap experience including total amounts, user addresses, and special features like DCA (Dollar Cost Averaging) and limit orders. Each row represents a single Jupiter swap transaction, supporting analytics on Jupiter usage, user behavior, and aggregator performance. Summarizes Jupiter swap data without the intermediate routes that Jupiter performs 'behind the scenes.' + +## Key Use Cases +- Analyze the intended swap activity (initial in and final out amount) +- Information on user-initiated swaps on Jupiter +- Compare swap activity between DEXes at the start and end of the route + +## Important Relationships +- Use with `defi.fact_swaps_jupiter_inner` for full route details +- Use with `defi.fact_swaps` and `defi.ez_dex_swaps` for comparison with direct swaps +- Example queries: number of buy and sell swaps for a token on Jupiter, compare routed vs. direct swap volume + +## Commonly-used Fields +- `block_timestamp`, `swapper`, `swap_from_mint`, `swap_to_mint`, `swap_from_amount`, `swap_to_amount`, `is_dca_swap`, `is_limit_swap` + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/tables/fact_token_burn_actions.md b/models/descriptions/tables/fact_token_burn_actions.md new file mode 100644 index 00000000..2cc27b85 --- /dev/null +++ b/models/descriptions/tables/fact_token_burn_actions.md @@ -0,0 +1,27 @@ +{% docs fact_token_burn_actions %} + +## Description +This table contains information on all token burn events on the Solana blockchain. It tracks the destruction of tokens across various token standards (SPL, Metaplex, etc.), capturing burn authority actions, token account sources, and burn amounts. Each row represents a single token burn event, supporting analytics on token destruction, supply reduction, and token standard usage. + +## Key Use Cases +- Analyze token destruction patterns and supply reduction +- Track burn authority activity and token destruction +- Study token standard adoption (SPL, Metaplex, etc.) +- Monitor token supply management and deflationary mechanisms +- Support analytics on token economics and supply dynamics + +## Important Relationships +- Closely related to `defi.fact_token_mint_actions` (for mint events), `core.fact_transfers` (for token movements), and `core.fact_token_balances` (for balance changes) +- Use `defi.fact_token_mint_actions` to analyze token creation and supply increase +- Use `core.fact_transfers` to track token movements before burning +- Use `core.fact_token_balances` to analyze balance changes from burning +- Joins with `core.fact_blocks` for block context and `core.fact_transactions` for transaction context + +## Commonly-used Fields +- `block_timestamp`: For time-series and burn activity analysis +- `mint`, `burn_authority`, `token_account`: For token and authority identification +- `burn_amount`: For supply and value analytics +- `mint_standard_type`: For token standard analysis +- `succeeded`: For transaction success analysis + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/tables/fact_token_mint_actions.md b/models/descriptions/tables/fact_token_mint_actions.md new file mode 100644 index 00000000..26e4441b --- /dev/null +++ b/models/descriptions/tables/fact_token_mint_actions.md @@ -0,0 +1,27 @@ +{% docs fact_token_mint_actions %} + +## Description +This table contains information on all token mint events on the Solana blockchain. It tracks the creation of new tokens across various token standards (SPL, Metaplex, etc.), capturing mint authority actions, token account destinations, and mint amounts. Each row represents a single token mint event, supporting analytics on token creation, supply dynamics, and token standard usage. + +## Key Use Cases +- Analyze token creation patterns and supply dynamics +- Track mint authority activity and token issuance +- Study token standard adoption (SPL, Metaplex, etc.) +- Monitor new token launches and initial distributions +- Support analytics on token economics and supply management + +## Important Relationships +- Closely related to `defi.fact_token_burn_actions` (for burn events), `core.fact_transfers` (for token movements), and `core.fact_token_balances` (for balance changes) +- Use `defi.fact_token_burn_actions` to analyze token destruction and supply reduction +- Use `core.fact_transfers` to track token movements after minting +- Use `core.fact_token_balances` to analyze balance changes from minting +- Joins with `core.fact_blocks` for block context and `core.fact_transactions` for transaction context + +## Commonly-used Fields +- `block_timestamp`: For time-series and mint activity analysis +- `mint`, `mint_authority`, `token_account`: For token and authority identification +- `mint_amount`: For supply and value analytics +- `mint_standard_type`: For token standard analysis +- `succeeded`: For transaction success analysis + +{% enddocs %} \ No newline at end of file diff --git a/models/descriptions/token_account.md b/models/descriptions/token_account.md deleted file mode 100644 index 1ce29f61..00000000 --- a/models/descriptions/token_account.md +++ /dev/null @@ -1,5 +0,0 @@ -{% docs token_account %} - -Address of the account containing a specific token - -{% enddocs %} \ No newline at end of file diff --git a/models/gold/defi/defi__ez_dex_swaps.yml b/models/gold/defi/defi__ez_dex_swaps.yml index bed842ec..5a0a6960 100644 --- a/models/gold/defi/defi__ez_dex_swaps.yml +++ b/models/gold/defi/defi__ez_dex_swaps.yml @@ -1,7 +1,7 @@ version: 2 models: - name: defi__ez_dex_swaps - description: A convenience table containing swaps performed on Jupiter (V2, V3), Orca, Raydium, Saber, Bonkswap, Dooar, Phoenix, Meteora, Pumpswap, and Pumpfun swap programs. For Phoenix, we are not capturing swaps where there are separate transactions for placing the order and filling the order. NOTE - Jupiter (V4, V5, V6) aggregator swaps exist in defi.fact_swaps_jupiter_summary, and individual routes are present in defi.fact_swaps_jupiter_inner. This documentation [guide](https://docs.google.com/document/d/1gxU7Q8BNf2w6xsDIczfxxOFMPM0ujQSJTzwGPDkZTVU/edit?tab=t.0) and [video](https://www.loom.com/share/f20d1f54b63342eea6457381be7175a1?sid=589f65ec-505a-446c-b249-19e6a9b9a6fb) explain how Flipside models Solana swaps, why we split the data, and how to use each table effectively. + description: "{{ doc('ez_dex_swaps') }}" recent_modified_date_filter: &recent_modified_date_filter config: where: modified_timestamp >= current_date - 7 @@ -22,39 +22,39 @@ models: - name: TX_ID description: "{{ doc('tx_id') }}" - name: SWAPPER - description: Address that initiated the swap + description: "{{ doc('swaps_swapper') }}" - name: SWAP_FROM_AMOUNT - description: Total amount of the token sent in to initiate the swap + description: "{{ doc('swaps_from_amt') }}" - name: SWAP_FROM_AMOUNT_USD - description: The amount of tokens put into the swap converted to USD using the price of the token + description: "{{ doc('swap_from_amount_usd') }}" - name: SWAP_FROM_MINT - description: Token being sent or swapped from + description: "{{ doc('swaps_from_mint') }}" - name: SWAP_FROM_IS_VERIFIED - description: '{{ doc("prices_is_verified") }}' + description: "{{ doc('prices_is_verified') }}" - name: SWAP_FROM_SYMBOL - description: The symbol of the token being swapped from + description: "{{ doc('swap_from_symbol') }}" - name: SWAP_TO_AMOUNT - description: Total amount of the token received in the swap + description: "{{ doc('swaps_to_amt') }}" - name: SWAP_TO_AMOUNT_USD - description: The amount of tokens taken out of or received from the swap converted to USD using the price of the token + description: "{{ doc('swap_to_amount_usd') }}" - name: SWAP_TO_MINT - description: Token being received or swapped for + description: "{{ doc('swaps_to_mint') }}" - name: SWAP_TO_IS_VERIFIED - description: '{{ doc("prices_is_verified") }}' + description: "{{ doc('prices_is_verified') }}" - name: SWAP_TO_SYMBOL - description: The symbol of the token being swapped to + description: "{{ doc('swap_to_symbol') }}" - name: PROGRAM_ID description: "{{ doc('program_id') }}" - name: SWAP_PROGRAM - description: name of decentralized exchange used to perform the swap + description: "{{ doc('swap_program') }}" - name: _LOG_ID - description: "Combination of TX_ID and event index" + description: "{{ doc('log_id') }}" - name: EZ_SWAPS_ID - description: '{{ doc("pk") }}' + description: "{{ doc('pk') }}" data_tests: - not_null: *recent_modified_date_filter - unique: *recent_modified_date_filter - name: INSERTED_TIMESTAMP - description: '{{ doc("inserted_timestamp") }}' + description: "{{ doc('inserted_timestamp') }}" - name: MODIFIED_TIMESTAMP - description: '{{ doc("modified_timestamp") }}' \ No newline at end of file + description: "{{ doc('modified_timestamp') }}" \ No newline at end of file diff --git a/models/gold/defi/defi__ez_liquidity_pool_actions.yml b/models/gold/defi/defi__ez_liquidity_pool_actions.yml index e9494844..71d5044c 100644 --- a/models/gold/defi/defi__ez_liquidity_pool_actions.yml +++ b/models/gold/defi/defi__ez_liquidity_pool_actions.yml @@ -1,7 +1,7 @@ version: 2 models: - name: defi__ez_liquidity_pool_actions - description: Convenience table capturing actions for liquidity pools in Raydium, Orca, and Meteora. This includes deposit and withdrawal events. + description: "{{ doc('ez_liquidity_pool_actions') }}" recent_date_filter: &recent_date_filter config: where: > @@ -39,82 +39,72 @@ models: values: ["deposit", "withdraw"] <<: *recent_date_filter - name: PROVIDER_ADDRESS - description: "{{ doc('liquidity_provider') }}" + description: "{{ doc('liquidity_provider') }}" data_tests: - not_null: *recent_date_filter - name: TOKEN_A_MINT - description: "{{ doc('token_a_mint') }}" + description: "{{ doc('token_a_mint') }}" - name: TOKEN_A_IS_VERIFIED - description: '{{ doc("prices_is_verified") }}' + description: "{{ doc('prices_is_verified') }}" - name: TOKEN_A_SYMBOL - description: "{{ doc('prices_symbol') }}" + description: "{{ doc('symbol') }}" - name: TOKEN_A_AMOUNT - description: "{{ doc('token_a_amount') }}" + description: "{{ doc('token_a_amount') }}" - name: TOKEN_A_AMOUNT_USD - description: > - The amount of token A in USD. + description: "{{ doc('token_a_amount_usd') }}" - name: TOKEN_B_MINT - description: "{{ doc('token_b_mint') }}" + description: "{{ doc('token_b_mint') }}" - name: TOKEN_B_IS_VERIFIED - description: '{{ doc("prices_is_verified") }}' + description: "{{ doc('prices_is_verified') }}" - name: TOKEN_B_SYMBOL - description: "{{ doc('prices_symbol') }}" + description: "{{ doc('symbol') }}" - name: TOKEN_B_AMOUNT - description: "{{ doc('token_b_amount') }}" + description: "{{ doc('token_b_amount') }}" - name: TOKEN_B_AMOUNT_USD - description: > - The amount of token B in USD. + description: "{{ doc('token_b_amount_usd') }}" - name: TOKEN_C_MINT - description: > - Address of the mint representing the third token in a liquidity pool pair. + description: "{{ doc('token_c_mint') }}" - name: TOKEN_C_IS_VERIFIED - description: '{{ doc("prices_is_verified") }}' + description: "{{ doc('prices_is_verified') }}" - name: TOKEN_C_SYMBOL - description: "{{ doc('prices_symbol') }}" + description: "{{ doc('symbol') }}" - name: TOKEN_C_AMOUNT - description: > - Amount of the third token in a liquidity pool pair transferred during a liquidity pool action. + description: "{{ doc('token_c_amount') }}" - name: TOKEN_C_AMOUNT_USD - description: > - The amount of token C in USD. + description: "{{ doc('token_c_amount_usd') }}" - name: TOKEN_D_MINT - description: > - Address of the mint representing the fourth token in a liquidity pool pair. + description: "{{ doc('token_d_mint') }}" - name: TOKEN_D_IS_VERIFIED - description: '{{ doc("prices_is_verified") }}' + description: "{{ doc('prices_is_verified') }}" - name: TOKEN_D_SYMBOL - description: "{{ doc('prices_symbol') }}" + description: "{{ doc('symbol') }}" - name: TOKEN_D_AMOUNT - description: > - Amount of the fourth token in a liquidity pool pair transferred during a liquidity pool action. + description: "{{ doc('token_d_amount') }}" - name: TOKEN_D_AMOUNT_USD - description: > - The amount of token D in USD. + description: "{{ doc('token_d_amount_usd') }}" - name: POOL_ADDRESS description: "{{ doc('liquidity_pool_address') }}" data_tests: - not_null: *recent_date_filter - name: POOL_NAME - description: > - Name of the liquidity pool + description: "{{ doc('liquidity_pool_name') }}" - name: PROGRAM_ID description: "{{ doc('program_id') }}" data_tests: - not_null: *recent_date_filter - name: PLATFORM - description: > - Name of the liquidity pool protocol + description: "{{ doc('liquidity_pool_platform') }}" data_tests: - not_null - name: EZ_LIQUIDITY_POOL_ACTIONS_ID - description: '{{ doc("pk") }}' + description: "{{ doc('pk') }}" data_tests: - unique - name: INSERTED_TIMESTAMP - description: '{{ doc("inserted_timestamp") }}' + description: "{{ doc('inserted_timestamp') }}" data_tests: - not_null: *recent_date_filter - name: MODIFIED_TIMESTAMP - description: '{{ doc("modified_timestamp") }}' + description: "{{ doc('modified_timestamp') }}" data_tests: - not_null: *recent_date_filter diff --git a/models/gold/defi/defi__fact_bridge_activity.yml b/models/gold/defi/defi__fact_bridge_activity.yml index b8b790a9..fca8da8c 100644 --- a/models/gold/defi/defi__fact_bridge_activity.yml +++ b/models/gold/defi/defi__fact_bridge_activity.yml @@ -1,7 +1,7 @@ version: 2 models: - name: defi__fact_bridge_activity - description: Table containing bridging actions on Wormhole, DeBridge and Mayan Finance + description: "{{ doc('fact_bridge_activity') }}" recent_date_filter: &recent_date_filter config: where: modified_timestamp >= current_date - 7 @@ -27,15 +27,15 @@ models: data_tests: - not_null: *recent_date_filter - name: PLATFORM - description: Name of the bridge protocol + description: "{{ doc('bridge_platform') }}" data_tests: - not_null: *recent_date_filter - name: DIRECTION - description: Direction of the bridge - either inbound to Solana or outbound from Solana + description: "{{ doc('bridge_direction') }}" data_tests: - not_null: *recent_date_filter - name: USER_ADDRESS - description: The address receiving or sending bridged tokens + description: "{{ doc('bridge_user_address') }}" data_tests: - not_null: *recent_date_filter - name: AMOUNT @@ -47,14 +47,14 @@ models: data_tests: - not_null: *recent_date_filter - name: FACT_BRIDGE_ACTIVITY_ID - description: '{{ doc("pk") }}' + description: "{{ doc('pk') }}" data_tests: - unique: *recent_date_filter - name: INSERTED_TIMESTAMP - description: '{{ doc("inserted_timestamp") }}' + description: "{{ doc('inserted_timestamp') }}" data_tests: - not_null: *recent_date_filter - name: MODIFIED_TIMESTAMP - description: '{{ doc("modified_timestamp") }}' + description: "{{ doc('modified_timestamp') }}" data_tests: - not_null diff --git a/models/gold/defi/defi__fact_stake_pool_actions.yml b/models/gold/defi/defi__fact_stake_pool_actions.yml index ee006ba6..632e92a6 100644 --- a/models/gold/defi/defi__fact_stake_pool_actions.yml +++ b/models/gold/defi/defi__fact_stake_pool_actions.yml @@ -1,7 +1,7 @@ version: 2 models: - name: defi__fact_stake_pool_actions - description: Deposit and withdraw actions with a given stake pool + description: "{{ doc('fact_stake_pool_actions') }}" recent_date_filter: &recent_date_filter config: where: modified_timestamp >= current_date - 7 @@ -15,7 +15,7 @@ models: id_column: 'tx_id' columns: - name: STAKE_POOL_NAME - description: "Name of stake pool action is performed against" + description: "{{ doc('stake_pool_name') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter @@ -35,7 +35,7 @@ models: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: INDEX - description: Location of the stake pool action within a transaction + description: "{{ doc('event_index') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter @@ -60,7 +60,7 @@ models: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: AMOUNT - description: "Amount in Lamports" + description: "{{ doc('stake_pool_amount') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: @@ -69,23 +69,23 @@ models: modified_timestamp >= current_date - 7 AND succeeded - name: TOKEN - description: "Token utilized in the stake pool action" + description: "{{ doc('stake_pool_token') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: FACT_STAKE_POOL_ACTIONS_ID - description: '{{ doc("pk") }}' + description: "{{ doc('pk') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - unique: *recent_date_filter - name: INSERTED_TIMESTAMP - description: '{{ doc("inserted_timestamp") }}' + description: "{{ doc('inserted_timestamp') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: MODIFIED_TIMESTAMP - description: '{{ doc("modified_timestamp") }}' + description: "{{ doc('modified_timestamp') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter \ No newline at end of file diff --git a/models/gold/defi/defi__fact_swaps.yml b/models/gold/defi/defi__fact_swaps.yml index 5078f0dd..ee16309f 100644 --- a/models/gold/defi/defi__fact_swaps.yml +++ b/models/gold/defi/defi__fact_swaps.yml @@ -1,7 +1,7 @@ version: 2 models: - name: defi__fact_swaps - description: This table contains swaps performed on Jupiter (V2, V3), Orca, Raydium, Saber, Bonkswap, Dooar, Phoenix, Meteora, Pumpswap, and Pumpfun swap programs. For Phoenix, we are not capturing swaps where there are separate transactions for placing the order and filling the order. NOTE - Jupiter (V4, V5, V6) aggregator swaps exist in defi.fact_swaps_jupiter_summary, and individual routes are present in defi.fact_swaps_jupiter_inner. This documentation [guide](https://docs.google.com/document/d/1gxU7Q8BNf2w6xsDIczfxxOFMPM0ujQSJTzwGPDkZTVU/edit?tab=t.0) and [video](https://www.loom.com/share/f20d1f54b63342eea6457381be7175a1?sid=589f65ec-505a-446c-b249-19e6a9b9a6fb) explain how Flipside models Solana swaps, why we split the data, and how to use each table effectively. + description: "{{ doc('fact_swaps') }}" recent_date_filter: &recent_date_filter config: where: block_timestamp >= current_date - 7 @@ -50,27 +50,27 @@ models: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: SWAPPER - description: Address that initiated the swap + description: "{{ doc('swaps_swapper') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: SWAP_FROM_AMOUNT - description: Total amount of the token sent in to initiate the swap + description: "{{ doc('swaps_from_amt') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: SWAP_FROM_MINT - description: Token being sent or swapped from + description: "{{ doc('swaps_from_mint') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: SWAP_TO_AMOUNT - description: Total amount of the token received in the swap + description: "{{ doc('swaps_to_amt') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: SWAP_TO_MINT - description: Token being received or swapped for + description: "{{ doc('swaps_to_mint') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter @@ -81,24 +81,24 @@ models: - not_null: *recent_date_filter - name: SWAP_PROGRAM - description: name of decentralized exchange used to perform the swap + description: "{{ doc('swap_program') }}" tests: - not_null: *recent_date_filter - name: _LOG_ID - description: "Combination of TX_ID and event index" + description: "{{ doc('log_id') }}" tests: - not_null: *recent_date_filter - name: FACT_SWAPS_ID - description: '{{ doc("pk") }}' + description: "{{ doc('pk') }}" tests: - not_null: *recent_date_filter - unique: *recent_date_filter - name: INSERTED_TIMESTAMP - description: '{{ doc("inserted_timestamp") }}' + description: "{{ doc('inserted_timestamp') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: MODIFIED_TIMESTAMP - description: '{{ doc("modified_timestamp") }}' + description: "{{ doc('modified_timestamp') }}" tests: - dbt_expectations.expect_column_to_exist \ No newline at end of file diff --git a/models/gold/defi/defi__fact_swaps_jupiter_inner.yml b/models/gold/defi/defi__fact_swaps_jupiter_inner.yml index d707eb58..8ee27c5a 100644 --- a/models/gold/defi/defi__fact_swaps_jupiter_inner.yml +++ b/models/gold/defi/defi__fact_swaps_jupiter_inner.yml @@ -1,7 +1,7 @@ version: 2 models: - name: defi__fact_swaps_jupiter_inner - description: This table contain each intermediate swap that is a part of a Jupiter route. These are the individual steps that are executed by Jupiter to complete a swap. This documentation [guide](https://docs.google.com/document/d/1gxU7Q8BNf2w6xsDIczfxxOFMPM0ujQSJTzwGPDkZTVU/edit?tab=t.0) and [video](https://www.loom.com/share/f20d1f54b63342eea6457381be7175a1?sid=589f65ec-505a-446c-b249-19e6a9b9a6fb) explain how Flipside models Solana swaps, why we split the data, and how to use each table effectively. + description: "{{ doc('fact_swaps_jupiter_inner') }}" recent_date_filter: &recent_date_filter config: where: modified_timestamp >= current_date - 7 @@ -33,11 +33,11 @@ models: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: INNER_INDEX - description: "{{ doc('inner_index') }}. This is the inner index of the log event listing the inner swap" + description: "{{ doc('inner_index') }}" tests: - dbt_expectations.expect_column_to_exist - name: SWAP_INDEX - description: "{{ doc('swaps_swap_index') }} as it relates to the top level Jupiter swap instruction" + description: "{{ doc('swaps_swap_index') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter @@ -47,12 +47,12 @@ models: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: SWAP_PROGRAM_ID - description: "{{ doc('program_id') }}. This is the AMM performing the swap." + description: "{{ doc('swap_program_id') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: AGGREGATOR_PROGRAM_ID - description: "{{ doc('program_id') }}. This is the aggregator calling the different AMMs." + description: "{{ doc('aggregator_program_id') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter @@ -62,34 +62,36 @@ models: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: SWAP_FROM_AMOUNT - description: "{{ doc('swaps_from_amt') }}" + description: "{{ doc('swaps_from_amt') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: SWAP_FROM_MINT - description: "{{ doc('swaps_from_mint') }}" + description: "{{ doc('swaps_from_mint') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: SWAP_TO_AMOUNT - description: "{{ doc('swaps_to_amt') }}" + description: "{{ doc('swaps_to_amt') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: SWAP_TO_MINT - description: "{{ doc('swaps_to_mint') }}" + description: "{{ doc('swaps_to_mint') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: FACT_SWAPS_JUPITER_INNER_ID + description: "{{ doc('pk') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: INSERTED_TIMESTAMP + description: "{{ doc('inserted_timestamp') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: MODIFIED_TIMESTAMP - description: '{{ doc("modified_timestamp") }}' + description: "{{ doc('modified_timestamp') }}" tests: - dbt_expectations.expect_column_to_exist diff --git a/models/gold/defi/defi__fact_swaps_jupiter_summary.yml b/models/gold/defi/defi__fact_swaps_jupiter_summary.yml index fc60d187..3b14a4ed 100644 --- a/models/gold/defi/defi__fact_swaps_jupiter_summary.yml +++ b/models/gold/defi/defi__fact_swaps_jupiter_summary.yml @@ -1,7 +1,7 @@ version: 2 models: - name: defi__fact_swaps_jupiter_summary - description: This table contains summarized swaps for trades initiated on Jupiter. This showcases the the initial amount/mint that is swapped from and the final amount/mint that is swapped to, without the intermediate swaps that Jupiter routes through. This also includes columns for DCA (dollar cost averaging) information to identify the initial requester of the DCA swaps. Jupiter V4 swaps before 2023-10-31 are aggregated at the transaction level, so these contain NULL index and inner_index values, and default to 0 for swap_index. This documentation [guide](https://docs.google.com/document/d/1gxU7Q8BNf2w6xsDIczfxxOFMPM0ujQSJTzwGPDkZTVU/edit?tab=t.0) and [video](https://www.loom.com/share/f20d1f54b63342eea6457381be7175a1?sid=589f65ec-505a-446c-b249-19e6a9b9a6fb) explain how Flipside models Solana swaps, why we split the data, and how to use each table effectively. + description: "{{ doc('fact_swaps_jupiter_summary') }}" recent_date_filter: &recent_date_filter config: where: modified_timestamp >= current_date - 7 @@ -28,17 +28,17 @@ models: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: INDEX - description: "{{ doc('event_index') }}. Jupiter V4 swaps prior to 2023-10-31 are NULL" + description: "{{ doc('event_index') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: where: modified_timestamp >= current_date - 7 AND (program_id <> 'JUP4Fb2cqiRUcaTHdrPC8h2gNsA2ETXiPDD33WcGuJB' AND block_timestamp::date >= '2023-10-31') - name: INNER_INDEX - description: "{{ doc('inner_index') }}. This is the inner index of the log event listing the inner swap. This value is null for Jupiter v5 swaps (which do not have swaps within the inner instruction), as well as Jupiter v4 swaps prior to 2023-10-31'" + description: "{{ doc('inner_index') }}" tests: - dbt_expectations.expect_column_to_exist - name: SWAP_INDEX - description: "{{ doc('swaps_swap_index') }} as it relates to the top level Jupiter swap instruction. This value is 0 for Jupiter v4 swaps prior to 2023-10-31'" + description: "{{ doc('swaps_swap_index') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter @@ -58,51 +58,53 @@ models: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: SWAP_FROM_AMOUNT - description: "{{ doc('swaps_from_amt') }}" + description: "{{ doc('swaps_from_amt') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: SWAP_FROM_MINT - description: "{{ doc('swaps_from_mint') }}" + description: "{{ doc('swaps_from_mint') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: SWAP_TO_AMOUNT - description: "{{ doc('swaps_to_amt') }}" + description: "{{ doc('swaps_to_amt') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: SWAP_TO_MINT - description: "{{ doc('swaps_to_mint') }}" + description: "{{ doc('swaps_to_mint') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: IS_DCA_SWAP - description: "Whether the swap was initiated by a Jupiter DCA. If value is NULL then it is NOT a DCA Swap" + description: "{{ doc('is_dca_swap') }}" tests: - dbt_expectations.expect_column_to_exist - name: DCA_REQUESTER - description: "Original address that requested the DCA swap" + description: "{{ doc('dca_requester') }}" tests: - dbt_expectations.expect_column_to_exist - name: IS_LIMIT_SWAP - description: "Whether the swap was initiated by a Jupiter limit order. If value is NULL then it is NOT a limit order swap" + description: "{{ doc('is_limit_swap') }}" tests: - dbt_expectations.expect_column_to_exist - name: LIMIT_REQUESTER - description: "Original address that requested the limit order swap" + description: "{{ doc('limit_requester') }}" tests: - dbt_expectations.expect_column_to_exist - name: FACT_SWAPS_JUPITER_SUMMARY_ID + description: "{{ doc('pk') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - unique: *recent_date_filter - name: INSERTED_TIMESTAMP + description: "{{ doc('inserted_timestamp') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: MODIFIED_TIMESTAMP - description: '{{ doc("modified_timestamp") }}' + description: "{{ doc('modified_timestamp') }}" tests: - dbt_expectations.expect_column_to_exist diff --git a/models/gold/defi/defi__fact_token_burn_actions.yml b/models/gold/defi/defi__fact_token_burn_actions.yml index 98bf0e30..5370a2f1 100644 --- a/models/gold/defi/defi__fact_token_burn_actions.yml +++ b/models/gold/defi/defi__fact_token_burn_actions.yml @@ -1,7 +1,7 @@ version: 2 models: - name: defi__fact_token_burn_actions - description: Contains information on all burn events for tokens. + description: "{{ doc('fact_token_burn_actions') }}" columns: - name: BLOCK_ID description: "{{ doc('block_id') }}" @@ -20,11 +20,11 @@ models: tests: - dbt_expectations.expect_column_to_exist - name: INDEX - description: Location of the event within the instructions of a transaction + description: "{{ doc('event_index') }}" tests: - dbt_expectations.expect_column_to_exist - name: INNER_INDEX - description: Location of the event within the inner instructions of a transaction + description: "{{ doc('inner_index') }}" tests: - dbt_expectations.expect_column_to_exist - name: EVENT_TYPE @@ -40,11 +40,11 @@ models: tests: - dbt_expectations.expect_column_to_exist - name: BURN_AUTHORITY - description: The account address with authority to confirm burn event + description: "{{ doc('burn_authority') }}" tests: - dbt_expectations.expect_column_to_exist - name: TOKEN_ACCOUNT - description: The account address where tokens are burned from + description: "{{ doc('token_account') }}" tests: - dbt_expectations.expect_column_to_exist - name: SIGNERS @@ -60,8 +60,8 @@ models: tests: - dbt_expectations.expect_column_to_exist - name: FACT_TOKEN_BURN_ACTIONS_ID - description: '{{ doc("pk") }}' + description: "{{ doc('pk') }}" - name: INSERTED_TIMESTAMP - description: '{{ doc("inserted_timestamp") }}' + description: "{{ doc('inserted_timestamp') }}" - name: MODIFIED_TIMESTAMP - description: '{{ doc("modified_timestamp") }}' + description: "{{ doc('modified_timestamp') }}" diff --git a/models/gold/defi/defi__fact_token_mint_actions.yml b/models/gold/defi/defi__fact_token_mint_actions.yml index f7eb18d2..8f6a6906 100644 --- a/models/gold/defi/defi__fact_token_mint_actions.yml +++ b/models/gold/defi/defi__fact_token_mint_actions.yml @@ -1,7 +1,7 @@ version: 2 models: - name: defi__fact_token_mint_actions - description: Contains information on all mint events for tokens + description: "{{ doc('fact_token_mint_actions') }}" columns: - name: BLOCK_ID description: "{{ doc('block_id') }}" @@ -20,11 +20,11 @@ models: tests: - dbt_expectations.expect_column_to_exist - name: INDEX - description: Location of the event within the instructions of a transaction + description: "{{ doc('event_index') }}" tests: - dbt_expectations.expect_column_to_exist - name: INNER_INDEX - description: Location of the event within the inner instructions of a transaction + description: "{{ doc('inner_index') }}" tests: - dbt_expectations.expect_column_to_exist - name: EVENT_TYPE @@ -36,7 +36,7 @@ models: tests: - dbt_expectations.expect_column_to_exist - name: TOKEN_ACCOUNT - description: The account address where tokens are minted to + description: "{{ doc('token_account') }}" tests: - dbt_expectations.expect_column_to_exist - name: MINT_AMOUNT @@ -44,7 +44,7 @@ models: tests: - dbt_expectations.expect_column_to_exist - name: MINT_AUTHORITY - description: The address of account authorizing the mint + description: "{{ doc('mint_authority') }}" tests: - dbt_expectations.expect_column_to_exist - name: SIGNERS @@ -60,9 +60,9 @@ models: tests: - dbt_expectations.expect_column_to_exist - name: FACT_TOKEN_MINT_ACTIONS_ID - description: '{{ doc("pk") }}' + description: "{{ doc('pk') }}" - name: INSERTED_TIMESTAMP - description: '{{ doc("inserted_timestamp") }}' + description: "{{ doc('inserted_timestamp') }}" - name: MODIFIED_TIMESTAMP - description: '{{ doc("modified_timestamp") }}' + description: "{{ doc('modified_timestamp') }}" \ No newline at end of file diff --git a/models/gold/nft/nft__dim_nft_metadata.yml b/models/gold/nft/nft__dim_nft_metadata.yml index fc3572de..d3c644c6 100644 --- a/models/gold/nft/nft__dim_nft_metadata.yml +++ b/models/gold/nft/nft__dim_nft_metadata.yml @@ -1,22 +1,22 @@ version: 2 models: - name: nft__dim_nft_metadata - description: Contains NFT metadata sourced from Solscan and Helius API. + description: "{{ doc('dim_nft_metadata') }}" columns: - name: MINT description: "{{ doc('mint') }}" tests: - dbt_expectations.expect_column_to_exist - name: COLLECTION_ID - description: "The address of the NFT collection" + description: "{{ doc('collection_id') }}" tests: - dbt_expectations.expect_column_to_exist - name: CREATORS - description: "Creators of the NFT and what percentage of royalties they receive" + description: "{{ doc('creators') }}" tests: - dbt_expectations.expect_column_to_exist - name: AUTHORITY - description: "Authority address for the mint. When editions are minted, the authority remains the one from the master NFT" + description: "{{ doc('authority') }}" tests: - dbt_expectations.expect_column_to_exist - name: IMAGE_URL @@ -24,11 +24,11 @@ models: tests: - dbt_expectations.expect_column_to_exist - name: NFT_NAME - description: "The name of the NFT" + description: "{{ doc('nft_name') }}" tests: - dbt_expectations.expect_column_to_exist - name: NFT_COLLECTION_NAME - description: "The name of the collection provided by Solscan" + description: "{{ doc('nft_collection_name') }}" tests: - dbt_expectations.expect_column_to_exist - name: METADATA diff --git a/models/gold/nft/nft__ez_nft_sales.yml b/models/gold/nft/nft__ez_nft_sales.yml index c678c842..fe84ef3d 100644 --- a/models/gold/nft/nft__ez_nft_sales.yml +++ b/models/gold/nft/nft__ez_nft_sales.yml @@ -1,7 +1,7 @@ version: 2 models: - name: nft__ez_nft_sales - description: A convenience table containing NFT sales across multiple marketplaces, included information on metadata, USD prices and marketplace. Note that USD prices are not available prior to 2021-12-16. + description: "{{ doc('ez_nft_sales') }}" recent_date_filter: &recent_date_filter config: where: modified_timestamp >= current_date - 7 @@ -65,7 +65,7 @@ models: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: NFT_NAME - description: "The name of the NFT" + description: "{{ doc('nft_name') }}" tests: - dbt_expectations.expect_column_to_exist - name: PRICE @@ -74,17 +74,17 @@ models: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: CURRENCY_ADDRESS - description: "Address of token used to pay for the NFT" + description: "{{ doc('currency_address') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: CURRENCY_SYMBOL - description: "Symbol of token used to pay for the NFT" + description: "{{ doc('currency_symbol') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: PRICE_USD - description: "Amount paid for NFT in USD" + description: "{{ doc('price_usd') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter @@ -94,7 +94,7 @@ models: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: MARKETPLACE_VERSION - description: "The version of the NFT marketplace used for the transaction." + description: "{{ doc('marketplace_version') }}" tests: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter @@ -122,11 +122,11 @@ models: - dbt_expectations.expect_column_to_exist - not_null: *recent_date_filter - name: NFT_COLLECTION_NAME - description: "The name of the collection provided by Solscan" + description: "{{ doc('nft_collection_name') }}" tests: - dbt_expectations.expect_column_to_exist - name: COLLECTION_ID - description: "The address of the NFT collection" + description: "{{ doc('collection_id') }}" tests: - dbt_expectations.expect_column_to_exist - name: METADATA @@ -138,11 +138,11 @@ models: tests: - dbt_expectations.expect_column_to_exist - name: CREATORS - description: "Creators of the NFT and what percentage of royalties they receive" + description: "{{ doc('creators') }}" tests: - dbt_expectations.expect_column_to_exist - name: AUTHORITY - description: "Authority address for the mint. When editions are minted, the authority remains the one from the master NFT" + description: "{{ doc('authority') }}" tests: - dbt_expectations.expect_column_to_exist - name: IMAGE_URL diff --git a/models/gold/nft/nft__fact_nft_burn_actions.yml b/models/gold/nft/nft__fact_nft_burn_actions.yml index 92887df1..8759b172 100644 --- a/models/gold/nft/nft__fact_nft_burn_actions.yml +++ b/models/gold/nft/nft__fact_nft_burn_actions.yml @@ -1,7 +1,7 @@ version: 2 models: - name: nft__fact_nft_burn_actions - description: Contains information on all burn events for NFTs. + description: "{{ doc('fact_nft_burn_actions') }}" columns: - name: BLOCK_ID description: "{{ doc('block_id') }}" @@ -20,11 +20,11 @@ models: tests: - dbt_expectations.expect_column_to_exist - name: INDEX - description: Location of the event within the instructions of a transaction + description: "{{ doc('event_index') }}" tests: - dbt_expectations.expect_column_to_exist - name: INNER_INDEX - description: Location of the event within the inner instructions of a transaction + description: "{{ doc('inner_index') }}" tests: - dbt_expectations.expect_column_to_exist - name: EVENT_TYPE @@ -40,7 +40,7 @@ models: tests: - dbt_expectations.expect_column_to_exist - name: BURN_AUTHORITY - description: The account address with authority to confirm burn event + description: "{{ doc('burn_authority') }}" tests: - dbt_expectations.expect_column_to_exist - name: SIGNERS diff --git a/models/gold/nft/nft__fact_nft_mint_actions.yml b/models/gold/nft/nft__fact_nft_mint_actions.yml index 7a1276e0..04262ad2 100644 --- a/models/gold/nft/nft__fact_nft_mint_actions.yml +++ b/models/gold/nft/nft__fact_nft_mint_actions.yml @@ -1,7 +1,7 @@ version: 2 models: - name: nft__fact_nft_mint_actions - description: Contains information on all mint events for NFTs + description: "{{ doc('fact_nft_mint_actions') }}" columns: - name: BLOCK_ID description: "{{ doc('block_id') }}" @@ -20,11 +20,11 @@ models: tests: - dbt_expectations.expect_column_to_exist - name: INDEX - description: Location of the event within the instructions of a transaction + description: "{{ doc('event_index') }}" tests: - dbt_expectations.expect_column_to_exist - name: INNER_INDEX - description: Location of the event within the inner instructions of a transaction + description: "{{ doc('inner_index') }}" tests: - dbt_expectations.expect_column_to_exist - name: EVENT_TYPE @@ -40,7 +40,7 @@ models: tests: - dbt_expectations.expect_column_to_exist - name: MINT_AUTHORITY - description: The address of account authorizing the mint + description: "{{ doc('mint_authority') }}" tests: - dbt_expectations.expect_column_to_exist - name: SIGNERS diff --git a/models/gold/nft/nft__fact_nft_mints.yml b/models/gold/nft/nft__fact_nft_mints.yml index aa5956cd..d42a9d49 100644 --- a/models/gold/nft/nft__fact_nft_mints.yml +++ b/models/gold/nft/nft__fact_nft_mints.yml @@ -1,7 +1,7 @@ version: 2 models: - name: nft__fact_nft_mints - description: An easy table containing information about Solana NFT mints including the purchaser, mint price, and NFT minted. + description: "{{ doc('fact_nft_mints') }}" recent_date_filter: &recent_date_filter config: where: modified_timestamp >= current_date - 7 @@ -44,7 +44,7 @@ models: data_tests: - not_null: *recent_date_filter - name: IS_COMPRESSED - description: "Identifies whether the mint is a compressed NFT mint" + description: "{{ doc('is_compressed_nft') }}" data_tests: - not_null: *recent_date_filter - name: FACT_NFT_MINTS_ID