# Welcome

End-to-end blockchain analytics

### About Us

Top Ledger is positioned as a comprehensive blockchain analytics platform on Solana, catering specifically to web3 data teams, institutions and market intelligence platforms. It emphasizes the elimination of concerns related to data integrity, speed, and the need for infrastructure customization.

The platform is designed to serve the needs of research and analysis in the blockchain space, providing end-to-end solutions that streamline the process of accessing and interpreting complex blockchain data.

**Answer complex questions like:**

When wallets are most active in trading (time of day, day of the week)?

Why have wallets been deactivated, how long they remain inactive, and whether they switch to other platforms? Look into wallets that become active again, especially their first activity after coming back.

How can we categorize wallets by their willingness to take risks, shown by the kinds of loans they choose, such as those with more collateral versus less, or short-term compared to long-term?

### Products

#### 1. SQL Based Analytics Platform

Our backend pulls raw data from Solana daily, labels, indexes it into tables, and maintains a historical archive for easy querying, empowering you to create in-depth metrics effortlessly.

We decode the Solana program data and segregate it program wise so that you focus on generating deeper insights. We do it by going into each program’s rust codebase and mapping every function and its arguments.

Finally create meaningful graphs, powerful dashboards and present it as you like.

<figure><img src="/files/OEWE9bTCXVyMh6KLuSqR" alt=""><figcaption><p>Sample query to calculate daily NFT trade volume</p></figcaption></figure>

**Top Ledger Supports Trino SQL Syntax**

Trino is a ludicrously fast distributed SQL query engine that helps you explore your data universe.

Visit <https://trino.io/> for more info

[Here](https://www.starburst.io/wp-content/uploads/2020/07/Presto-Training-Series-Advanced-SQL-Features-in-Presto.pdf) is a great presentation on how to write advance SQL queries in Presto.

Also, a detailed documentation about the syntax and methods is available [here](https://trino.io/docs/current/).

Don't worry we have provided enough sample queries for you to get accustomed to it quickly and easily.

**Visualization Suite**

See the big, easy to digest picture for in-depth understanding and data driven decision making. Use our visualization suite to present any metric in a clear and precise way.

Transform complex tables into meaningful and beautiful charts as shown below:

<figure><img src="/files/TS7jhWlQoVIv5ihH3O2U" alt=""><figcaption><p>Sample table showing weekly trades and trade volume for different markets on Phoenix</p></figcaption></figure>

<figure><img src="/files/mJ7HX9Nx2vl9VGYTzQRr" alt=""><figcaption><p>Above trade volume table converted into a meaningful chart</p></figcaption></figure>

The bar chart visualization makes it clear that week of Dec 11th had the highest trade volume, and helps the audience see the trend over time.

We offer a ton of visualizations to cater to all major analytics needs. Plus a lot more:

* Zoom In & Zoom Out any visualization with ease.
* Refresh your dashboards at your will or schedule the refresh.
* One click share widgets or dashboards with your internal team or with your community.
* Ability to cast the dashboard on your website with your UI/UX using our [react component](/developer-docs/integrate-topledger-dashboards).
* Set alerts on any metric to get notified on Slack or on Discord.
* Download data as CSV for further analysis.

**Powerful Dashboards**

A picture is worth a thousand words & a dashboard is worth a million data points. Great stories are the perfect blend of data, visuals and content. This is where dashboards come into play. Data visualizations you create by writing queries, can be placed together to connect the dots and build a meaningful story to present in front of stakeholders, customers, investors, etc.

As an example, in the dashboard below, the first chart depicts the total swap volume since Jan 2023 for DEX ecosystem on Solana. Second one is giving a different perspective by showing daily swap volume for all DEXs while the third one is showing cumulative trends of the volume over the same time period. The fourth and fifth chart depicts the monthly trends and share of respective DEX platform in the total swap volume. Overall the audience is getting a bird eye view of the DEX ecosystem on the Solana blockchain.

<figure><img src="/files/vFTNVT7WsHS5bbDZBP5M" alt=""><figcaption></figcaption></figure>

A beautiful dashboard like above, once created can be published and shared with anyone at a click of a button.

**Competitive Analysis**

With an extensive archive, updated schemas, wallet mappings, and ecosystem wide data for different ecosystems such as DEXs, Liquid Staking, NFT Trading, DePIN, Perpetuals, etc. Top Ledger facilitates different teams to conduct in-depth competitive analyses effortlessly, providing a comprehensive understanding of their position and standing within their respective ecosystem.

For instance in the case of DEXs there are many big platforms in the landscape such as Raydium, Orca, Lifinity, Phoenix, etc. And they are interested in knowing not only their own position but also the detailed breakdown of their competitors. Top Ledger help them in getting a clear picture of the entire ecosystem, helping different teams to assess and judge their own and others strengths and problems.

<figure><img src="/files/lpD0d58h19KZNmKZ24Sl" alt=""><figcaption><p>Table showing swaps and traders for DEXs</p></figcaption></figure>

To give you a glimpse of sector wide analysis lets look at some of the metrics related to DEX ecosystem with the help of our dashboard. As an example, in the dashboard shown below, the first chart depicts the total swaps since Jan 2023. Second one is giving a different perspective by showing daily swaps for the DEXs while the third one is showing cumulative trends of the swaps over the same time period. The fourth and fifth chart depicts the monthly trends and share of respective DEX platforms by swaps. In short, one is getting a good picture of the various platforms and their strengths in the said ecosystem.

<figure><img src="/files/M66vImiSxIfuLL6T5I9R" alt=""><figcaption><p>Ecosystem wide analysis of Solana DEXs</p></figcaption></figure>

#### 2. Wallet Behaviour Analytics

The wallet behavior analytics tool comprehensively indexes each Solana wallet, monitoring their engagements across DEXs, NFTs, DePINs, LST protocols, and perpetuals. With dynamic filters, real-time insights, and CSV data export capabilities, this no-code solution empowers platforms to conduct in-depth analyses of wallet behaviors. The tool facilitates the creation of detailed profiles, ultimately supporting alignment with product development strategies.

For example, platforms in the the DEX ecosystem can, among various other things such as Trading Platform Comparison, Competitor Platform Loyalty, Wallet Reactivity to Market Events the following metrics, get the following insights

1. **Token Holdings & Patterns:** Smart tables like program\_analysis and token\_holding in the DEX ecosystem provide insights into token category holdings, historical flow, and average holding duration within wallets over time.
2. **Wallet Activity Segmentation:** These smart tables enable teams to categorize wallets based on volume and trade count, offering insights into trading behavior. The tool allows cross-platform activity comparisons and analysis of token category preferences within specific volume or trade count buckets.
3. **Liquidity Provision Analysis:** Teams can assess token-specific and pool-specific contributions by wallets on their platform compared to competitors. This includes evaluating liquidity for specific tokens, analyzing liquidity management through platforms like Kamino Finance, and exploring preferred locations for liquidity provision.
4. **Trade Activity Patterns:** Smart tables provide insights into trade patterns, including preferred tokens, trading times, and typical trade sizes. Teams can analyze trends in buying vs. selling activities across different token categories, examine wallet churn and reactivation, and assess activity following token launches on competitor platforms.

Likewise, for other ecosystems like NFTs, DePINs, and LST protocols, Top Ledger's Platform provides specific analyses and insights. For more details, [click here](https://stitch-shape-34f.notion.site/Wallet-behaviour-analytics-3b3e89e594ec453a8a6b29ff6110eebf).

#### 3. Top Ledger for Research

Top Ledger is a robust Solana-focused data solution designed to meet the specific needs of crypto researchers and industry professionals. It emphasizes data integrity, speed, and customization, offering a comprehensive set of features for advanced analytics.

1. **Trusted Data Source:** Top Ledger serves as a reliable data source for advanced use cases, including AI training, crypto research, and DeFi simulation.
2. **Fast and Reliable Decoded Data:** The platform ensures quick, reliable access to decoded Solana data in private clouds, seamlessly integrating with existing systems for enhanced market research and analytics.
3. **Tailored Schemas for Solana Activities:** Top Ledger provides tailored schemas covering a range of Solana activities, such as DEX trades, NFT/cNFT mints and trades, staking, perpetuals, stablecoin activities, and DePIN.
4. **Connected Analytics Experience:** The platform offers a suite of connected analytics features, continually adding new functionalities to fuel decision-making and productivity. Users can set alerts, secure data integrity, and seamlessly integrate dashboards into websites for an enhanced user experience.

Instead of solely relying on our testimonial, try it out firsthand - [click here](https://topledger.xyz/research) to experience it now.

\\

\\

\\


# Solana Data

## Introduction

[Solana](https://solana.com/) is a public, open-source blockchain that aims to deliver scalability and support smart contracts without sacrificing decentralization and security. It accomplishes this through a novel timestamp mechanism called [Proof-of-History](https://medium.com/solana-labs/proof-of-history-a-clock-for-blockchain-cf47a61a9274) (PoH). Using PoH, the network can order and batch transactions before they’re processed through a Proof-of-Stake (PoS) mechanism.

At full capacity, the Solana network will generate 1gb/s \* 365 days = 4 petabytes of data every year. This is huge and requires a solid backend infrastructure for performing day to day analytics.&#x20;

Also, the web3 analytics will move from SQL to higher order in near future and thus any analytics infrastructure on Solana should have the capability to accommodate these advanced use cases as well.

Here are the tables available on Top Ledger for raw Solana blockchain data.


# Blocks

A contiguous set of entries on the ledger covered by a vote.

**tl-solana-merged-data.blocks**

The table contains block data for the Solana blockchain. Use it to identify block activity and transaction changes over time.

| Column Name              | Column Type | Description                                           |
| ------------------------ | ----------- | ----------------------------------------------------- |
| hash                     | string      | string The hash of this block, base-58 encoded        |
| height                   | bigint      | The number of blocks beneath the current block        |
| slot                     | bigint      | This block’s slot index in the ledger                 |
| time                     | timestamp   | The (estimated) time this block was produced          |
| date                     | date        | Used to partition by                                  |
| parent\_slot             | bigint      | The slot index of this block's parent                 |
| previous\_block\_hash    | string      | The hash of this block's parent, base-58 encoded      |
| total\_transactions      | bigint      | Total number of transactions in this block            |
| successful\_transactions | bigint      | Total number of successful transactions in this block |
| failed\_transactions     | bigint      | Total number of failed transactions in this block     |


# Transactions

A transaction is one or more instructions signed by a client using one or more key-pairs and executed atomically with only two possible outcomes: success or failure.

**tl-solana-merged-data.transactions**

The table contains the transaction data for Solana blockchain. Data related to account, program, program activity, token balance, etc. is available here.

<table><thead><tr><th width="258.3333333333333">Column Name</th><th>Column Type</th><th>Description</th></tr></thead><tbody><tr><td>block_slot</td><td>bigint</td><td>This block’s slot index in the ledger</td></tr><tr><td>block_time</td><td>timestamp</td><td>The (estimated) time this block was produced</td></tr><tr><td>block_date</td><td>date</td><td>Event date</td></tr><tr><td>index</td><td>bigint</td><td>Index into the block’s transactions</td></tr><tr><td>fee</td><td>bigint</td><td>Fee this transaction was charged, as paid by first account</td></tr><tr><td>block_hash</td><td>string</td><td>The hash of this block, base-58 encoded</td></tr><tr><td>error</td><td>STRUCT</td><td>Only if success is true</td></tr><tr><td>required_signatures</td><td>bigint</td><td>The total number of signatures required to make the transaction valid</td></tr><tr><td>readonly_signed_accounts </td><td>bigint</td><td>The number of read-only signed accounts</td></tr><tr><td>readonly_unsigned_account</td><td>bigint</td><td>The number of read-only unsigned accounts</td></tr><tr><td>id</td><td>string</td><td>The first signature in the transaction</td></tr><tr><td>success</td><td>boolean</td><td>The transaction was valid and thus committed.</td></tr><tr><td>recent_block_hash</td><td>string</td><td>The hash of a recent block in the ledger, used to prevent transaction duplication and to give transactions lifetimes</td></tr><tr><td>instructions</td><td>array&#x3C;STRUCT instructions></td><td>Instructions to execute (in order)</td></tr><tr><td>account_keys</td><td>array&#x3C;string></td><td>The account keys used in the transaction</td></tr><tr><td>log_messages</td><td>array&#x3C;string></td><td>The log messages emitted by the transaction</td></tr><tr><td>pre_balances</td><td>array&#x3C;bigint></td><td>Array of account balances before the transaction was processed. The i-th balance is the balance of the i-th account key in account_keys</td></tr><tr><td>post_balances</td><td>array&#x3C;bigint></td><td>Array of account balances after the transaction was processed. The i-th balance is the balance of the i-th account key in account_keys</td></tr><tr><td>pre_token_balances</td><td>array&#x3C;STRUCT token_balance></td><td>List of token balances from before the transaction was processed or omitted if token balance recording was not yet enabled during this transaction</td></tr><tr><td>post_token_balances</td><td>array&#x3C;STRUCT token_balance></td><td>List of token balances from after the transaction was processed or omitted if token balance recording was not yet enabled during this transaction</td></tr><tr><td>signatures</td><td>array&#x3C;string></td><td>A list of base-58 encoded signatures applied to the transaction. Always of length numRequiredSignatures</td></tr><tr><td>signer</td><td>string</td><td>The initial value from the account_keys array that initiates the transaction and pays the transaction fee</td></tr></tbody></table>

### Struct Definitions

Some columns in the transactions table has the data type STRUCT. It allows for representing nested hierarchical data and has key-value pairs. Let's go into what each one of them contains.

#### token\_balances (pre/post)

| Field   | Data type | Description                                                                                                                                                                 |
| ------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| account | string    | The account key of the account that the token balance is provided for                                                                                                       |
| mint    | string    | Public key of the token’s mint. This is an account that stores metadata about the token: The supply, number of decimals, and various authorities with control over the mint |
| amount  | double    | Derived from the token balance's raw amount. (ui\_token\_amount.amount) by (ui\_token\_amount.decimals)                                                                     |

#### instructions

| Field               | Data type                          | Description                                                   |
| ------------------- | ---------------------------------- | ------------------------------------------------------------- |
| account\_arguments  | array\<string>                     | Ordered list of accounts to pass to the program               |
| data                | string                             | Program input data in a base-58 string                        |
| executing\_account  | string                             | The account key of the program that executed this instruction |
| inner\_instructions | array\<STRUCT inner\_instructions> | The instructions invoked by this instruction                  |

#### inner\_instructions

| Field              | Data type      | Description                                                   |
| ------------------ | -------------- | ------------------------------------------------------------- |
| account\_arguments | array\<string> | Ordered list of accounts to pass to the program               |
| data               | string         | Program input data in a base-58 string                        |
| executing\_account | string         | The account key of the program that executed this instruction |

#### error

| Field              | Data type | Description                        |
| ------------------ | --------- | ---------------------------------- |
| instruction\_index | bigint    | The instruction number that failed |
| message            | string    | The error message                  |


# Account activity

Accounts are similar to files in operating systems such as Linux in that they may hold arbitrary data that persists beyond the lifetime of a program.

## **tl-solana-merged-data**.account\_activity

The table contains information from the transactions table catering to account usage. Each row in this table has information about an account's usage in a transaction.

| Column Name            | Column Type | Description                                                      |
| ---------------------- | ----------- | ---------------------------------------------------------------- |
| block\_slot            | bigint      | The slot of the block this transaction was in                    |
| block\_hash            | string      | The hash of the block this transaction was in                    |
| block\_time            | timestamp   | The timestamp that this account usage occurred                   |
| block\_date            | date        | The date this account usage occurred                             |
| address                | string      | The address of the account, also referred to as public key       |
| tx\_index              | int         | The index of this transaction in the block                       |
| tx\_id                 | string      | The ID of the transaction in which this account usage occurred   |
| tx\_success            | boolean     | The transaction succeeded and was committed                      |
| signed                 | boolean     | This account signed this transaction                             |
| writeable              | boolean     | This account was granted read-write access in this transaction   |
| pre\_balance           | bigint      | The balance of this account before the transaction was processed |
| post\_balance          | bigint      | The balance of this account after the transaction was processed  |
| pre\_token\_balance    | decimal     | The token balance before the transaction was processed           |
| post\_token\_balance   | decimal     | The token balance after the transaction was processed            |
| balance\_change        | bigint      | The balance change that occurred as part of the transaction      |
| token\_balance\_change | decimal     | The balance change that occurred as part of the transaction      |
| token\_mint\_address   | string      | Public key of the token’s mint                                   |


# Smart Tables


# DEX Trades

The respective table contains all the dex trades on Solana since February 2021.

#### How we are indexing our dex\_trades table?

\
We have written a Substreams to index this data. Substreams is a powerful blockchain indexing technology developed by [StreamingFast](https://www.streamingfast.io/). You can take a look at our indexing code [here](https://github.com/Topledger/solana-programs/tree/main/dex-trades).

The table below contains the project names and their respective program addresses that we have included in our dex\_trades table.

<table data-full-width="true"><thead><tr><th width="160">Platform Name</th><th width="464">DAPP</th><th>Instructions</th></tr></thead><tbody><tr><td>Pheonix</td><td><a href="https://solscan.io/account/PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY">PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY</a></td><td>Swap</td></tr><tr><td>Saros</td><td><a href="https://solscan.io/account/SSwapUtytfBdBn1b9NUGG6foMVPtcWgpRU32HToDUZr">SSwapUtytfBdBn1b9NUGG6foMVPtcWgpRU32HToDUZr</a></td><td>Swap</td></tr><tr><td>Stepn</td><td><a href="https://solscan.io/account/Dooar9JkhdZ7J3LHN3A7YCuoGRUggXhQaG4kijfLGU2j">Dooar9JkhdZ7J3LHN3A7YCuoGRUggXhQaG4kijfLGU2j</a></td><td>Swap</td></tr><tr><td>Crema</td><td><a href="https://solscan.io/account/CLMM9tUoggJu2wagPkkqs9eFG4BWhVBZWkP1qv3Sp7tR">CLMM9tUoggJu2wagPkkqs9eFG4BWhVBZWkP1qv3Sp7tR</a></td><td>SwapWithPartner</td></tr><tr><td>Meteora</td><td><a href="https://solscan.io/account/Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB">Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB</a></td><td>Swap</td></tr><tr><td>Openbook</td><td><a href="https://solscan.io/account/srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX">srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX</a></td><td>Serum3PlaceOrder</td></tr><tr><td>Openbook V2</td><td><a href="https://solscan.io/account/opnb2LAfJYbRMAHHvqjCwQxanZn7ReEHp1k81EohpZb">opnb2LAfJYbRMAHHvqjCwQxanZn7ReEHp1k81EohpZb</a></td><td></td></tr><tr><td>Symmetry</td><td><a href="https://solscan.io/account/2KehYt3KsEQR53jYcxjbQp2d2kCp4AkuQW68atufRwSr">2KehYt3KsEQR53jYcxjbQp2d2kCp4AkuQW68atufRwSr</a></td><td>SwapFundTokens</td></tr><tr><td>Invariant</td><td><a href="https://solscan.io/account/HyaB3W9q6XdA5xwpU4XnSZV94htfmbmqJXZcEbRaJutt">HyaB3W9q6XdA5xwpU4XnSZV94htfmbmqJXZcEbRaJutt</a></td><td>Swap</td></tr><tr><td>Orca Liquidity Pools</td><td><a href="https://solscan.io/account/whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc">whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc</a></td><td>Swap</td></tr><tr><td>Lifinity v1</td><td><a href="https://solscan.io/account/EewxydAPCCVuNEyrVN68PuSYdQ7wKn27V9Gjeoi8dy3S">EewxydAPCCVuNEyrVN68PuSYdQ7wKn27V9Gjeoi8dy3S</a></td><td>Swap</td></tr><tr><td>Lifinity v2</td><td><a href="https://solscan.io/account/2wT8Yq49kHgDzXuPxZSaeLaH1qbmGXtEyPy64bL7aD3c">2wT8Yq49kHgDzXuPxZSaeLaH1qbmGXtEyPy64bL7aD3c</a></td><td>Swap</td></tr><tr><td>Saber</td><td><a href="https://solscan.io/account/SSwpkEEcbUqx4vtoEByFjSkhKdCT862DNVb52nZg1UZ">SSwpkEEcbUqx4vtoEByFjSkhKdCT862DNVb52nZg1UZ</a></td><td>Swap</td></tr><tr><td>Raydium v4</td><td><a href="https://solscan.io/account/675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8">675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8</a></td><td>SwapBaseIn</td></tr><tr><td>Raydium v3</td><td><a href="https://solscan.io/account/27haf8L6oxUeXrHrgEgsexjSY5hbVUWEmvv9Nyxg8vQv">27haf8L6oxUeXrHrgEgsexjSY5hbVUWEmvv9Nyxg8vQv</a></td><td>SwapBaseIn</td></tr><tr><td>Raydium CLMM</td><td><a href="https://solscan.io/account/CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK">CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK</a></td><td>Swap</td></tr><tr><td>Orca legacy</td><td><a href="https://solscan.io/account/9W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP">9W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP</a></td><td>Swap</td></tr><tr><td>Aldrin AMM</td><td><a href="https://solscan.io/account/AMM55ShdkoGRB5jVYPjWziwk8m5MpwyDgsMWHaMSQWH6">AMM55ShdkoGRB5jVYPjWziwk8m5MpwyDgsMWHaMSQWH6</a></td><td>Swap</td></tr><tr><td>Aldrin AMM v2</td><td><a href="https://solscan.io/account/CURVGoZn8zycx6FXwwevgBTB2gVvdbGTEpvMJDbgs2t4">CURVGoZn8zycx6FXwwevgBTB2gVvdbGTEpvMJDbgs2t4</a></td><td>Swap</td></tr><tr><td>Cropper</td><td><a href="https://solscan.io/account/CTMAxxk34HjKWxQ3QLZK1HpaLXmBveao3ESePXbiyfzh">CTMAxxk34HjKWxQ3QLZK1HpaLXmBveao3ESePXbiyfzh</a></td><td>Swap</td></tr><tr><td>Cykura</td><td><a href="https://solscan.io/account/cysPXAjehMpVKUapzbMCCnpFxUFFryEWEaLgnb9NrR8">cysPXAjehMpVKUapzbMCCnpFxUFFryEWEaLgnb9NrR8</a></td><td>ExactInputSingle</td></tr><tr><td>GooseFX</td><td><a href="https://solscan.io/account/7WduLbRfYhTJktjLw5FDEyrqoEv61aTTCuGAetgLjzN5">7WduLbRfYhTJktjLw5FDEyrqoEv61aTTCuGAetgLjzN5</a></td><td>Swap</td></tr><tr><td>GooseFX V2</td><td><a href="https://solscan.io/account/GFXsSL5sSaDfNFQUYsHekbWBW1TsFdjDYzACh62tEHxn">GFXsSL5sSaDfNFQUYsHekbWBW1TsFdjDYzACh62tEHxn</a></td><td>Swap</td></tr><tr><td>BonkSwap</td><td><a href="https://solscan.io/account/BSwp6bEBihVLdqJRKGgzjcGLHkcTuzmSo1TQkHepzH8p">BSwp6bEBihVLdqJRKGgzjcGLHkcTuzmSo1TQkHepzH8p</a></td><td>Swap</td></tr><tr><td>FluxBeam</td><td><a href="https://solscan.io/account/FLUXubRmkEi2q6K3Y9kBPg9248ggaZVsoSFhtJHSrm1X">FLUXubRmkEi2q6K3Y9kBPg9248ggaZVsoSFhtJHSrm1X</a></td><td>Swap</td></tr><tr><td>Penguin</td><td><a href="https://solscan.io/account/PSwapMdSai8tjrEXcxFeQth87xC4rRsa4VA5mhGhXkP">PSwapMdSai8tjrEXcxFeQth87xC4rRsa4VA5mhGhXkP</a></td><td>Swap</td></tr><tr><td>Balansol</td><td><a href="https://solscan.io/account/D3BBjqUdCYuP18fNvvMbPAZ8DpcRi4io2EsYHQawJDag">D3BBjqUdCYuP18fNvvMbPAZ8DpcRi4io2EsYHQawJDag</a></td><td>Swap</td></tr><tr><td>Step Finance</td><td><a href="https://solscan.io/account/SSwpMgqNDsyV7mAgN9ady4bDVu5ySjmmXejXvy2vLt1">SSwpMgqNDsyV7mAgN9ady4bDVu5ySjmmXejXvy2vLt1</a></td><td>Swap</td></tr><tr><td>Sencha</td><td><a href="https://solscan.io/account/SCHAtsf8mbjyjiv4LkhLKutTf6JnZAbdJKFkXQNMFHZ">SCHAtsf8mbjyjiv4LkhLKutTf6JnZAbdJKFkXQNMFHZ</a></td><td>Swap</td></tr><tr><td>Dradex</td><td><a href="https://solscan.io/account/dp2waEWSBy5yKmq65ergoU3G6qRLmqa6K7We4rZSKph">dp2waEWSBy5yKmq65ergoU3G6qRLmqa6K7We4rZSKph</a></td><td>CreateOrder</td></tr><tr><td>Oasis</td><td><a href="https://solscan.io/account/9tKE7Mbmj4mxDjWatikzGAtkoWosiiZX9y6J4Hfm2R8H">9tKE7Mbmj4mxDjWatikzGAtkoWosiiZX9y6J4Hfm2R8H</a></td><td>Swap</td></tr><tr><td>Mercurial</td><td><a href="https://solscan.io/account/MERLuDFBMmsHnsBPZw2sDQZHvXFMwp8EdjudcU2HKky">MERLuDFBMmsHnsBPZw2sDQZHvXFMwp8EdjudcU2HKky</a></td><td>Exchange</td></tr><tr><td>Orca v1</td><td><a href="https://solscan.io/account/DjVE6JNiYqPL2QXyCUUh8rNjHrbz9hXHNYt99MQ59qw1">DjVE6JNiYqPL2QXyCUUh8rNjHrbz9hXHNYt99MQ59qw1</a></td><td>Swap</td></tr><tr><td>Crema</td><td><a href="https://solscan.io/account/6MLxLqiXaaSUpkgMnWDTuejNZEz3kE7k2woyHGVFw319">6MLxLqiXaaSUpkgMnWDTuejNZEz3kE7k2woyHGVFw319</a></td><td>Swap</td></tr></tbody></table>

#### **dex\_trades**

The table below contains all the dex\_trades table columns , such as signer,  pool\_address, base\_mint, quote\_mint, amount, etc.

<table><thead><tr><th width="221.33333333333331">Column Name</th><th width="139">Column Type</th><th>Description</th></tr></thead><tbody><tr><td>block_time</td><td>timestamp</td><td>The time this block was produced</td></tr><tr><td>block_slot</td><td>bigint</td><td>This block’s slot index in the ledger</td></tr><tr><td>tx_id</td><td>string</td><td>The first signature in the transaction</td></tr><tr><td>signer</td><td>string</td><td>The first value from the account_keys array that initiates the transaction and pays the transaction fee</td></tr><tr><td>pool_address</td><td>string</td><td>The  address of the pool</td></tr><tr><td>base_mint</td><td>string</td><td>Mint of the base token</td></tr><tr><td>quote_mint</td><td>string</td><td>Mint of the quote token</td></tr><tr><td>base_vault</td><td>string</td><td>Vault address of the base token</td></tr><tr><td>quote_vault</td><td>string</td><td>Vault address of the quote token</td></tr><tr><td>base_amount</td><td>double</td><td>Amount of the base token that is traded in the transaction</td></tr><tr><td>quote_amount</td><td>double</td><td>Amount of the quote token that is traded in the transaction</td></tr><tr><td>is_inner_instruction</td><td>boolean</td><td>Tells whether there is any inner instruction in the transaction or not </td></tr><tr><td>instruction_index</td><td>int</td><td>Instruction index of various instructions in a transaction</td></tr><tr><td>instruction_type</td><td>string</td><td>Name of the function of a Solana program invoked via an instruction</td></tr><tr><td>inner_instruxtion_index</td><td>int</td><td>Index of various inner instructions in a instruction</td></tr><tr><td>outer_program</td><td>string</td><td>The main program of an instruction</td></tr><tr><td>inner_program</td><td>string</td><td>The inner programs under the main/outer program</td></tr><tr><td>txn_fee</td><td>big_int</td><td>Fee this transaction was charged, as paid signer</td></tr><tr><td>signer_sol_change</td><td>bigint</td><td>Sol balance change of signer</td></tr><tr><td>partition_0</td><td>string</td><td>The date on which the block was produced</td></tr></tbody></table>

####


# DEX ecosystem on Solana

This guide will assist you in creating a dashboard on the Top Ledger platform, which displays a variety of key metrics for the DEX ecosystem on Solana.

Let’s calculate some important metrics for the DEX ecosystem and add them in a dashboard.

## Swap Transaction

We will start with calculating daily swap transactions on Solana. The chart below shows the daily swap transactions for entire DEX ecosystem.

<figure><img src="/files/bUKZPuMUgkJTG0cwDWwR" alt=""><figcaption><p>Swap Transactions since Jan 2023</p></figcaption></figure>

Now, let's go through the SQL code used to create these metrics. The query runs on the dex\_trades table available in the Top Ledger platform.

```sql
select block_date, swaps, SUM(swaps) over(order by block_date) as cumulative_swaps
        , swap_transactions, SUM(swap_transactions) over(order by block_date) as cumulative_swap_transactions
        , traders, SUM(new_traders) over(order by block_date) as cumulative_traders
from
(
select block_date, count(tx_id) as swaps, count(distinct tx_id) as swap_transactions, count(distinct signer) as traders
        , count(distinct case when rn1 = 1 then signer end) as new_traders
from
(
select date(partition_0) as block_date, tx_id, d.signer
        , row_number() over(partition by d.signer order by date(partition_0)) as rn1
from tl_solana.dex_trades d 
where date(partition_0) >= date'2023-01-01'
) A 
group by 1
) A 
order by 1 desc
```

Since the dex\_trades table contains all the swap transactions that have happened in the DEX ecosystem, we just need to count the number of transactions on a daily basis. Then, in the second part of the query, we need to aggregate the daily transactions over the entire period to get the cumulative number of transactions since 2023.

## Swap Volume

Now, let's consider the example of swap volume, i.e., how we are going to compute it. The charts below show the daily swap volume for various DEX programs and the cumulative swap volume.

<figure><img src="/files/d2z0AhUgpV3JWuW2wySZ" alt=""><figcaption><p>Swap volume by DEX since Jan 2023</p></figcaption></figure>

The SQL code below begins by assigning various program addresses to their respective names and selecting other fields such as block\_date, base\_amount, quote\_amount, base\_mint, quote\_mint, etc. It then calculate the swap amounts on a daily basis, grouped by the program through which the swap happened.

```sql
with cte_raw as 
(
select date_trunc('day', block_time) as block_date
          , tx_id
          , case when outer_program = 'whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc' then 'Orca Liquidity Pools'
                 when inner_program = 'whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc' then 'Orca Liquidity Pools'
                 when outer_program = '9W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP' then 'Orca v2'
                 when inner_program = '9W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP' then 'Orca v2'
                 when outer_program = '675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8' then 'Raydium v4'
                 when inner_program = '675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8' then 'Raydium v4'
                 when outer_program = 'CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK' then 'Raydium CLMM'
                 when inner_program = 'CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK' then 'Raydium CLMM'
                 when outer_program = 'EewxydAPCCVuNEyrVN68PuSYdQ7wKn27V9Gjeoi8dy3S' then 'Lifinity v1'
                 when inner_program = 'EewxydAPCCVuNEyrVN68PuSYdQ7wKn27V9Gjeoi8dy3S' then 'Lifinity v1'
                 when outer_program = '2wT8Yq49kHgDzXuPxZSaeLaH1qbmGXtEyPy64bL7aD3c' then 'Lifinity v2'
                 when inner_program = '2wT8Yq49kHgDzXuPxZSaeLaH1qbmGXtEyPy64bL7aD3c' then 'Lifinity v2'
                 when outer_program = 'PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY' then 'Phoenix'
                 when inner_program = 'PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY' then 'Phoenix'
                 when outer_program = 'Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB' then 'Meteora'
                 when inner_program = 'Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB' then 'Meteora'
                 when outer_program = 'SSwpkEEcbUqx4vtoEByFjSkhKdCT862DNVb52nZg1UZ' then 'Saber'
                 when inner_program = 'SSwpkEEcbUqx4vtoEByFjSkhKdCT862DNVb52nZg1UZ' then 'Saber'
                 when outer_program = 'HyaB3W9q6XdA5xwpU4XnSZV94htfmbmqJXZcEbRaJutt' then 'Invariant'
                 when inner_program = 'HyaB3W9q6XdA5xwpU4XnSZV94htfmbmqJXZcEbRaJutt' then 'Invariant'
                 when outer_program = 'FLUXubRmkEi2q6K3Y9kBPg9248ggaZVsoSFhtJHSrm1X' then 'FluxBeam'
                 when inner_program = 'FLUXubRmkEi2q6K3Y9kBPg9248ggaZVsoSFhtJHSrm1X' then 'FluxBeam'
                 when outer_program = 'BSwp6bEBihVLdqJRKGgzjcGLHkcTuzmSo1TQkHepzH8p' then 'BonkSwap'
                 when inner_program = 'BSwp6bEBihVLdqJRKGgzjcGLHkcTuzmSo1TQkHepzH8p' then 'BonkSwap'
                 when outer_program = 'CLMM9tUoggJu2wagPkkqs9eFG4BWhVBZWkP1qv3Sp7tR' then 'Crema'
                 when inner_program = 'CLMM9tUoggJu2wagPkkqs9eFG4BWhVBZWkP1qv3Sp7tR' then 'Crema' end as program
          , base_mint
          , quote_mint
          , base_amount
          , quote_amount
          , d.signer
from tl_solana.dex_trades d 
where date(partition_0) >= date'2023-01-01'
group by 1,2,3,4,5,6,7,8
),

cte_price as 
(
SELECT block_date, mint, coalesce(price_in_usd,0) as price
FROM tl_solana.prices
where block_date >= date'2023-01-01'
and coalesce(price_in_usd,0) > 0
and mint not in ('BLZEEuZUBVqFhj8adcCFPJvPVCiCyVmh3hkJMrU8KuJA'
                    , '9vMJfxuKxXBoEa7rM12mYLMwTacLMLDJqHozw96WQL8i'
                    , 'ZScHuTtqZukUrtZS43teTKGs2VqkKL8k4QCouR2n6Uo')
group by 1,2,3
)

select *
from
(
select month, program, SUM(volume) as volume, SUM(traders) as traders
        , SUM(trades) as trades
from
(
select date_trunc('month', cr.block_date) as month
        , program
        , SUM(case when base_mint in ('Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB',
                                  'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
                                  'EjmyN6qEC1Tf1JxiG1ae7UTJhUxSwk1TCWNWqxWV4J6o',
                                  '9iLH8T7zoWhY7sBmj1WK9ENbWdS1nL8n9wAxaeRitTa6',
                                  '7kbnvuGBxxj8AG9qp8Scn56muWGaRaFqxg1FsRp3PaFT'
                                 ) then base_amount
               when quote_mint in ('Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB',
                                  'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
                                  'EjmyN6qEC1Tf1JxiG1ae7UTJhUxSwk1TCWNWqxWV4J6o',
                                  '9iLH8T7zoWhY7sBmj1WK9ENbWdS1nL8n9wAxaeRitTa6',
                                  '7kbnvuGBxxj8AG9qp8Scn56muWGaRaFqxg1FsRp3PaFT'
                                 ) then quote_amount
               when base_mint in ('So11111111111111111111111111111111111111112'
                                    , 'mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So'
                                    , 'bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1')
               then cr.base_amount*cp.price
               when quote_mint in ('So11111111111111111111111111111111111111112'
                                    , 'mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So'
                                    , 'bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1')
               then cr.quote_amount*cp1.price
               when cp.price is not null then cr.base_amount*cp.price
               when cp1.price is not null then cr.quote_amount*cp1.price
               else 0 end) as volume
            , count(distinct signer) as traders
            , count(distinct tx_id) as trades
from cte_raw cr 
left join cte_price cp on cr.block_date = cp.block_date and cr.base_mint = cp.mint
left join cte_price cp1 on cr.block_date = cp1.block_date and cr.quote_mint = cp1.mint
where program is not null
group by 1,2
) A 
group by 1,2
) A 
order by 1 desc, 3 desc
```

Then, the daily swap amount in multiple tokens needs to be converted to USD, which is accomplished using the price table (tl\_solana.prices). Once that is done, we need to sum the amounts in USD over the specified period to calculate the cumulative swap amount in USD.

## Active Wallets

Active wallets are a crucial metric for any dApp in Web3. More wallets imply higher usage of the dApp by users, which also means more revenue opportunities for the dApp in terms of fees and other charges, making any dApp more viable and profitable.

<figure><img src="/files/rN269gmAibvbh9AN7cUn" alt=""><figcaption><p>Active wallets across DEXs since Jan 2023</p></figcaption></figure>

Let's go through the SQL code to learn how to calculate active wallets for the DEX ecosystem.

```sql
select block_date, swaps, SUM(swaps) over(order by block_date) as cumulative_swaps
        , swap_transactions, SUM(swap_transactions) over(order by block_date) as cumulative_swap_transactions
        , traders, SUM(new_traders) over(order by block_date) as cumulative_traders
from
(
select block_date, count(tx_id) as swaps, count(distinct tx_id) as swap_transactions, count(distinct signer) as traders
        , count(distinct case when rn1 = 1 then signer end) as new_traders
from
(
select date(partition_0) as block_date, tx_id, d.signer
        , row_number() over(partition by d.signer order by date(partition_0)) as rn1
from tl_solana.dex_trades d 
where date(partition_0) >= date'2023-01-01'
) A 
group by 1
) A 
order by 1 desc
```

To count active wallets over time, we can use the [Rank](https://trino.io/docs/current/functions/window.html) function to count a wallet only once for the entire period, regardless of the number of swaps performed using the same wallet. Thereafter, we need to sum all the unique wallets that have ever performed a trade. And that's it; we have the total number of active wallets.

[Here](https://analytics.topledger.xyz/tl/public/dashboards/K6um5NyEC1tGik3QkQacRzyKXdGrPyN5pMdnvvLo) is the detailed dashboard for your reference.<br>


# NFT Trades

All NFT marketplace secondary sales.

#### How we are indexing our nft\_trades table?

We have written a Substreams to index this data. Substreams is a powerful blockchain indexing technology developed by [StreamingFast](https://www.streamingfast.io/). \
\
You can take a look at our indexing code [here](https://github.com/Topledger/solana-programs/tree/main/nft-trades). The table below contains the project names and their respective program addresses that we have included in our nft\_trades table.

<table data-full-width="true"><thead><tr><th width="182">Platform Name</th><th width="288">DAPP</th><th></th></tr></thead><tbody><tr><td>tensorswap</td><td><a href="https://solscan.io/account/TSWAPaqyCSx2KABk68Shruf4rp7CxcNi8hAsbdwmHbN">TSWAPaqyCSx2KABk68Shruf4rp7CxcNi8hAsbdwmHbN</a></td><td>BuySingleListing, SellNftTokenPool, BuyNft, SellNftTradePool</td></tr><tr><td>magiceden</td><td><a href="https://solscan.io/account/M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K">M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K</a></td><td>ExecuteSale, ExecuteSaleV2, Mip1ExecuteSaleV2, OcpExecuteSaleV2</td></tr><tr><td>hadeswap</td><td><a href="https://solscan.io/account/hadeK9DLv9eA7ya5KCTqSvSvRZeJC3JgD5a9Y3CNbvu">hadeK9DLv9eA7ya5KCTqSvSvRZeJC3JgD5a9Y3CNbvu</a></td><td>BuyNftFromPair, SellNftToLiquidityPair, SellNftToTokenToNftPair</td></tr><tr><td>coralcube_me_amm</td><td><a href="https://solscan.io/account/mmm3XBJg5gk8XJxEKBvdgptZz6SgK4tXvn36sodowMc">mmm3XBJg5gk8XJxEKBvdgptZz6SgK4tXvn36sodowMc</a></td><td>SolFulfillBuy, SolFulfillSell, SolMip1FulfillBuy, SolMip1FulfillSell,  SolOcpFulfillBuy</td></tr></tbody></table>

#### **nft\_trades**

The table below contains all the nft\_trades table columns , such as signer, buyer, seller, taker\_fee, maker\_fee, amount, etc.

<table><thead><tr><th width="176.33333333333331">Column Name</th><th width="143">Column Type</th><th>Description</th></tr></thead><tbody><tr><td>block_time</td><td>timestamp</td><td>The (estimated) time this block was produced</td></tr><tr><td>block_slot</td><td>bigint</td><td>This block’s slot index in the ledger</td></tr><tr><td>tx_id</td><td>string</td><td>The first signature in the transaction</td></tr><tr><td>mint </td><td>string</td><td>The mint of NFT getting traded</td></tr><tr><td>currency</td><td>string </td><td>Name of the currency in which trade is getting executed</td></tr><tr><td>amount</td><td>double</td><td>The amount paid to buy the NFT</td></tr><tr><td>category</td><td>string </td><td>various categories of trade such as buy, sell, etc.</td></tr><tr><td>buyer</td><td>string </td><td>Address of the buyer of NFT in a trade</td></tr><tr><td>seller</td><td>string</td><td>Address of the seller of NFT in a trade</td></tr><tr><td>taker_fee</td><td>double</td><td>Is the charge that platform imposes on traders who take/fill the order.</td></tr><tr><td>maker_fee</td><td>double</td><td>Is the charge that platform imposes on traders who make/place orders.</td></tr><tr><td>amm_fee</td><td>double</td><td>Fee charged by the AMM for providing liquidity to the market</td></tr><tr><td>royalty</td><td>double</td><td>Fee that is paid to the original creator of the NFT in exchange for the use of that creator's NFT</td></tr><tr><td>is_inner_instruction</td><td>boolean</td><td>Tells whether there is any inner instruction in the instruction or not </td></tr><tr><td>instruction_index</td><td>int</td><td>Index of various instructions in a transaction</td></tr><tr><td>instruction_type</td><td>string</td><td>Name of the function of a Solana program invoked via an instruction</td></tr><tr><td>inner_instruction_index</td><td>int</td><td>Index of various inner instructions in a instruction</td></tr><tr><td>outer_program</td><td>string</td><td>The main program of an instruction</td></tr><tr><td>inner_program</td><td>string</td><td>The inner program under the main/outer program</td></tr><tr><td>txn_fee</td><td>bigint</td><td>Fee this transaction was charged, as paid by first account</td></tr><tr><td>platform</td><td>string</td><td>Name of the platform on which trade happened</td></tr><tr><td>partition_0</td><td>string</td><td>The date on which the block was produced</td></tr></tbody></table>

####


# NFT ecosystem on Solana

This guide will assist you in creating a dashboard on the Top Ledger platform, which displays a variety of key metrics for the NFT secondary ecosystem on Solana.

Let’s calculate some important metrics for the NFT secondary ecosystem and add them in a dashboard.

## Trade Volume

We will begin by calculating the daily NFT secondary trade volume. The chart below shows the daily trade volume for the entire Solana ecosystem.

<figure><img src="/files/wN2nJMmg9ZjQSRhKBfQI" alt=""><figcaption><p>Daily secondary trade volume since Jan 2023</p></figcaption></figure>

Additionally, from the charts shown below, you can deduce the total number of NFTs traded within the ecosystem, as well as observe the daily trend in NFT sales.

<figure><img src="/files/lfK7c50s0Gu5cobgjdzi" alt=""><figcaption><p>NFT trades on Solana since Jan 2023</p></figcaption></figure>

Now, let's go through the SQL code used to create these metrics. The query runs on the dex\_trades table available in the Top Ledger platform.

```sql
select block_date, amount_sol, sum(amount_sol) over(order by block_date) as cum_amount_sol,
       amount_usd, sum(amount_usd) over(order by block_date) as cum_amount_usd
from 
(
select a.block_date, amount_sol, amount_sol * price_in_usd as amount_usd
from 
(
    select date(block_time) as block_date, sum( abs(amount/1e9)) as amount_sol
    from "tl_solana"."nft_trades"
    where 1 = 1
    group by 1 
) as a left join (select block_date, price_in_usd
                    from tl_solana.prices
                    where mint = 'So11111111111111111111111111111111111111112') as s  on a.block_date = s.block_date 
  
) as a
order by 1 desc
```

Since the nft\_trades table contains the 'amount' column, which represents the amount of SOL (in lamports) paid to buy an NFT in each trade, we first need to add the total SOL amount on a daily basis. In the second part of the query, we will convert the SOL volume into USD volume using our price table (tl\_solana.prices) to obtain the daily USD volume of all sales.&#x20;

Finally, we can aggregate this data over the entire period to calculate the cumulative volume in both SOL and USD. Similarly, we can track the daily trend for the number of trades and the total number of trades that have occurred so far.

## Royalties

Now, let's embark on the task of calculating the total royalty payments made to creators within the Solana ecosystem since January 2023. Our objective is to compute both the daily and cumulative royalty amounts, expressed in both SOL and USD. This endeavor will provide valuable insights into the earnings accrued by creators from their NFTs, shedding light on their financial success within the ecosystem.

Here are the charts:

<figure><img src="/files/g0TzeANEpSilIYsrQGWi" alt=""><figcaption><p>Royalties paid since Jan 2023</p></figcaption></figure>

Here, we see 4 widgets: 1) total royalties in SOL, 2) daily royalties in SOL, 3) total royalties in USD, and 4) daily royalties in USD. Here, again, we had to first aggregate the royalty at the daily level, then convert the SOL volume into USD, and finally, once again aggregate the daily amount over the whole period to get the cumulative royalty in USD and in SOL for creators.

```sql
select block_date, amount_sol, sum(amount_sol) over(order by block_date) as cum_amount_sol,
       amount_usd, sum(amount_usd) over(order by block_date) as cum_amount_usd
from 
(
select a.block_date, amount_sol, amount_sol * price_in_usd as amount_usd
from 
(
    select date(block_time) as block_date, sum( abs(royalty/1e9)) as amount_sol
    from "tl_solana"."nft_trades"
    group by 1 
) as a left join tl_solana.prices as s  on a.block_date = s.block_date 
  where mint = 'So11111111111111111111111111111111111111112'
) as a
order by 1 desc
```

## Buyers

The number of buyers plays a pivotal role in determining the success of any NFT marketplace within the web3 ecosystem. It serves as a fundamental metric that directly influences the dynamics of the platform. When there is a higher count of buyers, it leads to an increased demand for NFTs within that marketplace. This heightened demand, in turn, contributes to the overall viability and sustainability of the platform specializing in NFT trading.

<figure><img src="/files/Wpuu3ELLqnRW7jggl0Iw" alt=""><figcaption><p>Buyers by different platforms</p></figcaption></figure>

In the charts above, we can see that Magic Eden has had the most buyers since January 2023 among the NFT marketplaces, and we can also observe that Tensor is making deep inroads in the NFT trading sector.

Let’s go through the SQL code for how to calculate the number of buyers.

```sql
select date(block_time) as block_date, platform,  count(distinct buyer) as buyer
from "tl_solana"."nft_trades"
group by 1,2 
order by 1 desc
```

Calculations here are simple, as we simply need to aggregate the distinct buyers at the daily level, grouped by the different platforms available.

[Here](https://analytics.topledger.xyz/delphi/public/dashboards/4j3ipTL1F69bgqa7V0BTPZANoulZbkLj0TXaVxQ4) is the detailed dashboard for your reference.<br>


# cNFT Trades

All cNFT marketplace secondary sales.

How we are indexing our cnft\_trades table? <br>

We have written a Substreams to index this data. Substreams is a powerful blockchain indexing technology developed by [StreamingFast](https://www.streamingfast.io/).

You can take a look at our indexing code [here](https://github.com/Topledger/solana-programs/tree/main/cnft-trades). The table below contains the project names and their respective program addresses that we have included in our cnft\_trades table.

<table><thead><tr><th width="168">Platform Name</th><th width="315">DAPP</th><th>Instructions</th></tr></thead><tbody><tr><td>tensorswap</td><td><a href="https://solscan.io/account/TCMPhJdwDryooaGtiocG1u3xcYbRpiJzb283XfCZsDp">TCMPhJdwDryooaGtiocG1u3xcYbRpiJzb283XfCZsDp</a></td><td>Buy, TakeBidFullMeta, TakeBidMetaHash</td></tr><tr><td>magiceden</td><td><a href="https://solscan.io/account/M3mxk5W2tt27WGT7THox7PmgRDp4m6NEhL5xvxrBfS1">M3mxk5W2tt27WGT7THox7PmgRDp4m6NEhL5xvxrBfS1</a></td><td>BuyNow</td></tr></tbody></table>

#### **cnft\_trades**

The table below contains all the cnft\_trades table columns , such as signer, buyer, seller, merkle\_tree, maker\_fee, amount, etc.

<table><thead><tr><th width="201.33333333333331">Column Name</th><th width="165">Column Type</th><th>Description</th></tr></thead><tbody><tr><td>block_time</td><td>timestamp</td><td>The (estimated) time this block was produced</td></tr><tr><td>block_slot</td><td>bigint</td><td>This block’s slot index in the ledger</td></tr><tr><td>tx_id</td><td>string</td><td>The first signature in the transaction</td></tr><tr><td>signer</td><td>string</td><td>The initial value from the account_keys array that initiates the transaction and pays the transaction fee</td></tr><tr><td>merkle_tree</td><td>string </td><td>Address of the merkle tree of the cNFT bunch on the block chain</td></tr><tr><td>amount</td><td>double</td><td>The amount paid to buy the cNFT</td></tr><tr><td>leaf_id</td><td>bigint </td><td>The leaf id of the merkle tree</td></tr><tr><td>currency</td><td>string </td><td>Name of the currency in which trade is getting executed</td></tr><tr><td>category</td><td>string</td><td>Various categories of trade such as buy, sell, etc.</td></tr><tr><td>taker_fee</td><td>double</td><td>Is the charge that platform imposes on traders who take/fill the order.</td></tr><tr><td>maker_fee</td><td>double</td><td>Is the charge that platform imposes on traders who make/place orders.</td></tr><tr><td>amm_fee</td><td>double</td><td>Fee charged by the AMM for providing liquidity to the market</td></tr><tr><td>royalty</td><td>double</td><td>Fee that is paid to the original creator of the NFT in exchange for the use of that creator's property.</td></tr><tr><td>buyer</td><td>string </td><td>Address of the buyer of cNFTs in a trade</td></tr><tr><td>seller</td><td>string </td><td>Address of the seller of cNFTs in a trade</td></tr><tr><td>is_inner_instruction</td><td>boolean</td><td>Tells whether there is any inner instruction in the instruction or not </td></tr><tr><td>instruction_index</td><td>bigint</td><td>Index of various instructions in a transaction</td></tr><tr><td>instruction_type</td><td>string</td><td>Name of the function of a Solana program invoked via an instruction</td></tr><tr><td>inner_instruction_index</td><td>bigint</td><td>Index of various inner instructions in a instruction</td></tr><tr><td>outer_program</td><td>string</td><td>The main program of an instruction</td></tr><tr><td>inner_program</td><td>string</td><td>The inner programs under the main/outer program</td></tr><tr><td>txn_fee</td><td>big_int</td><td>Fee this transaction was charged, as paid by first account</td></tr><tr><td>platform</td><td>string</td><td>Name of the platform on which trade is happening</td></tr><tr><td>partition_0</td><td>string </td><td>Date on which the block was produced</td></tr></tbody></table>

####


# cNFT ecosystem on Solana

This guide will assist you in creating a dashboard on the Top Ledger platform, which displays a variety of key metrics for the cNFT secondary ecosystem on Solana.

Let’s calculate some important metrics for the compressed NFT secondary ecosystem and add them in a dashboard.

## Trade Volume

We will start by calculating the daily cNFT trade volume. The chart below shows the daily trade volume for the cNFT ecosystem.

<figure><img src="/files/4tbm6RTeSlC7G64ODQCK" alt=""><figcaption><p>compressed NFT trade volume</p></figcaption></figure>

Additionally, the charts displayed below illustrate the total number of cNFTs traded within the ecosystem, as well as the daily trend in cNFT trading.

<figure><img src="/files/uY4jHiBDk1n4mcwKqV8p" alt=""><figcaption><p>cNFT trades</p></figcaption></figure>

Next, we'll review the SQL code behind the charts you've observed. This query operates on the cnft\_trades table, which is accessible on the Top Ledger platform.

```sql
select A.block_date
        , trades, SUM(trades) over(order by A.block_date) as cumulative_trades
        , trade_volume, SUM(trade_volume) over(order by A.block_date) as cumulative_trade_volume
        , trade_volume*price_in_usd as trade_volume_in_USD
        , SUM(trade_volume*price_in_usd) over(order by A.block_date) as cumulative_trade_volume_in_USD
        , royalty, SUM(royalty) over(order by A.block_date) as cumulative_royalty
        , royalty*price_in_usd as royalty_in_USD, SUM(royalty*price_in_usd) over(order by A.block_date) as cumulative_royalty_in_USD
from
(
select date(block_time) as block_date
        , count(distinct tx_id) as trades
        , SUM(amount)/1e9 as trade_volume
        , SUM(taker_fee)/1e9 as taker_fee
        , SUM(maker_fee)/1e9 as maker_fee
        , SUM(amm_fee)/1e9 as amm_fee
        , SUM(royalty)/1e9 as royalty
from tl_solana.cnft_trades
where 1=1
and date(partition_0) >= current_date - interval '90' day
    )
group by 1 
) A 
join (select block_date, price_in_usd
                    from tl_solana.prices
                    where mint = 'So11111111111111111111111111111111111111112') as s  on a.block_date = s.block_date 
order by 1 desc
```

To begin with, since the cnft\_trades table records the amount of SOL (in lamports) used for each cNFT purchase, our first step is to calculate the total SOL amount on a daily basis. Following this, the second part of the query involves converting the SOL volume into USD volume. This is done using our price table (tl\_solana.prices), allowing us to determine the daily USD trade volume.

Subsequently, we can aggregate this data over the entire period to ascertain the cumulative trade volume in both SOL and USD. In a similar manner, we can track the daily trend in the number of trades and the total number of trades that have occurred to date.

To calculate the number of cNFT trades, we simply count the unique tx\_id entries in the cnft\_trades table. This count can then be cumulatively aggregated over time to yield the total number of trades.

## Royalties

Now, let's determine the total royalties paid to creators from cNFT trades within the ecosystem. This can be done in the same query used for trade volume calculation, but instead, we'll focus on a different column, specifically 'royalty'.

We will then present this data using charts as shown below:

<figure><img src="/files/BZ61CltF1rhNh1gBEnnc" alt=""><figcaption><p>royalty paid</p></figcaption></figure>

In this process, we initially aggregate the royalty data on a daily basis, then convert the SOL volume into USD. Following this, we aggregate these daily amounts over the entire period to determine the cumulative royalty in both USD and SOL for the creators.<br>


# Liquid Staking

All liquid staking protocols decoded transactions.

#### How we are indexing our cnft\_trades table?&#x20;

We have written a Substreams to index this data. Substreams is a powerful blockchain indexing technology developed by [StreamingFast](https://www.streamingfast.io/).

You can take a look at our indexing code [here](https://github.com/Topledger/solana-programs/tree/main/liquid-staking). The table below contains the project names and their respective program addresses that we have included in our liquid\_staking table.

<table><thead><tr><th width="160">Platform Name</th><th width="245">DAPP</th><th>Instructions</th></tr></thead><tbody><tr><td>SPL Stake Pool</td><td><a href="https://solscan.io/account/SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy">SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy</a></td><td>DepositSol, DepositStake, WithdrawSol, WithdrawStake</td></tr><tr><td>Marinade</td><td><a href="https://solscan.io/account/MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD">MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD</a></td><td>Deposit, DepositStakeAccount, Claim, OrderUnstake,  UpdateDeactivated, UpdateActive, LiquidUnstake</td></tr></tbody></table>

#### liquid\_staking

The table below contains all the cnft\_trades table columns , such as signer, stake\_pool, reserve\_stake, withdraw\_authority, pool\_mint, etc.

| Column Name               | Column Type | Description                                                                                                |
| ------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------- |
| block\_time               | timestamp   | The (estimated) time this block was produced                                                               |
| block\_slot               | bigint      | This block’s slot index in the ledger                                                                      |
| tx\_id                    | string      | The first signature in the transaction                                                                     |
| signer                    | string      | The initial value from the account\_keys array that initiates the transaction and pays the transaction fee |
| amount                    | double      | The amount of token that is to be staked                                                                   |
| category                  | string      | various categories trade such as buy, sell, etc.                                                           |
| stake\_pool               | string      | The LST pool in which the token is staked                                                                  |
| withdraw\_authority       | string      | The authority assigned by the platform to approve any un-staking                                           |
| reserve\_stake            | string      | the reserve account of the stake pool                                                                      |
| validator\_stake          | string      | The authority assigned by the platform to validate staking                                                 |
| pool\_mint                | string      | The token mint of the reserve account                                                                      |
| fee\_account              | string      | The fee account of the stake pool                                                                          |
| mint\_amount              | double      | The amount of LST token minted in return of deposit of token                                               |
| burn\_amount              | double      | Amount of LST token that is getting burnt upon de-staking                                                  |
| staking\_reward           | double      | The reward of staking as accrued by the stacker                                                            |
| liq\_pool\_sol\_leg       | string      |                                                                                                            |
| fee\_amount               | double      | The amount of fee paid to fee account of stake pool                                                        |
| is\_inner\_instruction    | boolean     | Tells whether there is any inner instruction in the transaction or not                                     |
| instruction\_index        | bigint      | Index of various instructions in a transaction                                                             |
| instruction\_type         | string      | Name of the function of a Solana program invoked via an instruction                                        |
| inner\_instruction\_index | bigint      | Index of various inner instructions in a instruction                                                       |
| outer\_program            | string      | The main program of an instruction                                                                         |
| inner\_program            | string      | The inner programs under the main/outer program                                                            |
| txn\_fee                  | big\_int    | Fee this transaction was charged, as paid by first account                                                 |
| platform                  | string      | Name of the platform on which trade is happening                                                           |
| partition\_0              | string      | The date on which the block was produced                                                                   |

####


# LST ecosystem on Solana

This guide will assist you in creating a dashboard on the Top Ledger platform, which displays a variety of key metrics for the LST ecosystem on Solana.

Let’s calculate some important metrics for the LST ecosystem and add them in a dashboard.

## Deposits & Withdraws

We will start by calculating deposits and withdrawals for various platforms in the LST ecosystem. The chart below shows the weekly volumes.

<figure><img src="/files/3xDXZDXKpuDV7pTYkP3y" alt=""><figcaption><p>Weekly deposts &#x26; withdraws</p></figcaption></figure>

Now, let's go through the SQL code for the above chart. The query runs on the liquid\_staking table available in the Top Ledger platform.

The SQL code start first with staking multiple types of LS txns and  volume associated with them on a daily level. Then it union them in a nested expression to gather all the txns and volume associated with staking and un-staking events in the ecosystem.  Finally, the code groups by the data for various platforms and then cluster the it over weekly interval.

```sql
with 
cte_reward
as
    (
    select date(block_time) as block_date,stake_pool,signer,tx_id,(staking_reward/1e9 )as amount
    from tl_solana.liquid_staking
    where instruction_type in ('UpdateDeactivated','UpdateActive')
   
    )
,
cte_deposit
as
    (
    select  date(block_time) as block_date,stake_pool,signer,tx_id,
    case when instruction_type in ('Deposit','DepositSol','DepositStake')  then amount/1e9 else -amount/1e9 end as amount
    from tl_solana.liquid_staking
    where instruction_type in ('Claim','LiquidUnstake','Deposit','WithdrawStake','WithdrawSol','DepositSol','DepositStake')
   

    )
,
cte_deposit_stake
as (
    select a.block_date,stake_pool,signer,tx_id,amount*sol as amount
    from 
        (
        select date(block_time) as block_date,signer,stake_pool,tx_id,mint_amount/1e9 as amount
        from tl_solana.liquid_staking
        where instruction_type in ('DepositStakeAccount')
        )a
    join 
    (
       select a.block_date,b.price_in_usd /a.price_in_usd as sol
       from
       (
            select *
            from tl_solana.prices
            where mint='mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So'
        )a
        join 
        (
            select *
            from tl_solana.prices
            where mint='So11111111111111111111111111111111111111112'
        )b on  a.block_date=b.block_date
        )b
        on a.block_date=b.block_date
    ) 
    
    
select month, stake_pool,amount
from(
        select date_trunc('week',block_date) as month, case when stake_pool='8szGkuLTAux9XMgZ2vtY39jVSowEcpBfFfD8hXSEqdGC' then 'msol'
                                    when stake_pool='stk9ApL5HeVAwPLr3TLhDXdZS8ptVu7zp6ov8HFDuMi' then 'bsol'
                                    when stake_pool='Jito4APyf642JPZPx3hGc6WWJ8zPKtRbRs4P815Awbb' then 'jitosol'
                                    when stake_pool='CtMyWsrUtAwXWiGr9WjHT5fC3p3fgV8cyGpLTo2LJzG1' then 'jpool'
                                    --when stake_pool='7ge2xKsZXmqPxa3YmXxXmzCp9Hc2ezrTxh6PECaxCwrL' then 'daosol'
                                    when stake_pool='CgntPoLka5pD5fesJYhGmUCF8KU1QS1ZmZiuAuMZr2az' then 'cgntso'
                                    when stake_pool='2qyEeSAWKfU18AFthrF7JA8z8ZCi1yt76Tqs917vwQTV' then 'laineSOL'
                                    when stake_pool='DqhH94PjkZsjAqEze2BEkWhFQJ6EyU6MdtMphMgnXqeK' then 'mrgnLST'
                                    else null end as stake_pool,
                                    sum(amount) as amount
    from
            (
                select *
                from cte_deposit
                union all
                select *
                from cte_reward
                union all
                select *
                from cte_deposit_stake
        )

group by 1,2
    
    )
where stake_pool is not null
 order by 1 desc
```

And the widget displays the deposits as positive while withdraws as negative, providing a fine sense of how much of net amount is getting staked every day.

## TVL

Total Value Locked or TVL is the amount which is stacked or locked as LST in a pool at any moment. So TVL represents the most crucial metric for LST platforms. It tells us about the health and hence the confidence people has in some LST platform.  So let's visualize the TVL of various platforms with the help of some charts

<figure><img src="/files/Q0aBmxFPpU6mIrMjMVFl" alt=""><figcaption><p>Project X TV</p></figcaption></figure>

Since TVL is nothing but accumulation of net deposits over time, the query below, like the previous one,  starts with computing deposits and withdraws and the subtract the withdraws from deposits to get daily net deposits. And then in the next step accumulate them over the time to get not only the TVL at present but also TVL for past days.

```sql
with 
cte_reward
as
    (
    select date(block_time) as block_date,stake_pool,tx_id,signer,(staking_reward/1e9 )as amount
    from tl_solana.liquid_staking
    where instruction_type in ('UpdateDeactivated','UpdateActive')
   
    )
,
cte_deposit
as
    (
    select  date(block_time) as block_date,stake_pool,tx_id,signer,
    case when instruction_type in ('Deposit','DepositSol','DepositStake')  then amount/1e9 else -amount/1e9 end as amount
    from tl_solana.liquid_staking
    where instruction_type in ('Claim','LiquidUnstake','Deposit','WithdrawStake','WithdrawSol','DepositSol','DepositStake')
   

    )
,
cte_deposit_stake
as (
    select a.block_date,stake_pool,tx_id,signer,amount*sol as amount
    from 
        (
        select date(block_time) as block_date,stake_pool,tx_id,signer,mint_amount/1e9 as amount
        from tl_solana.liquid_staking
        where instruction_type in ('DepositStakeAccount')
        )a
    join 
    (
       select a.block_date,b.price_in_usd /a.price_in_usd as sol
       from
       (
            select *
            from tl_solana.prices
            where mint='mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So'
        )a
        join 
        (
            select *
            from tl_solana.prices
            where mint='So11111111111111111111111111111111111111112'
        )b on  a.block_date=b.block_date
        )b
        on a.block_date=b.block_date
    ) 
    
    
select block_date, stake_pool,amount,transfer,wallet,unique_wallet,
sum(amount)over(partition by stake_pool order by block_date) as tvl,
sum(unique_wallet)over( order by block_date) as cumulative_wallets,
sum(unique_wallet)over(partition by stake_pool order by block_date) as cumulative_wallets_by_pool,
sum(transfer)over(partition by stake_pool order by block_date) as cumulative_transfer_pool,
sum(transfer)over( order by block_date) as cumulative_transfer


from(
    select block_date,  case   when stake_pool='8szGkuLTAux9XMgZ2vtY39jVSowEcpBfFfD8hXSEqdGC' then 'Marinade'
                            when stake_pool='stk9ApL5HeVAwPLr3TLhDXdZS8ptVu7zp6ov8HFDuMi' then 'Sol blaze'
                            when stake_pool='Jito4APyf642JPZPx3hGc6WWJ8zPKtRbRs4P815Awbb' then 'Jito'
                            when stake_pool='CtMyWsrUtAwXWiGr9WjHT5fC3p3fgV8cyGpLTo2LJzG1' then 'Jpool'
                            --when stake_pool='7ge2xKsZXmqPxa3YmXxXmzCp9Hc2ezrTxh6PECaxCwrL' then 'Daosol'
                            when stake_pool='CgntPoLka5pD5fesJYhGmUCF8KU1QS1ZmZiuAuMZr2az' then 'Cogent crypto'
                            when stake_pool='2qyEeSAWKfU18AFthrF7JA8z8ZCi1yt76Tqs917vwQTV' then 'LaineSOL'
                            when stake_pool='DqhH94PjkZsjAqEze2BEkWhFQJ6EyU6MdtMphMgnXqeK' then 'Marginfi'
                            else null end as stake_pool,
                                    count(distinct tx_id) as transfer,
                                    count(signer) as wallet,
                                    count(case when rn=1 then signer end) as unique_wallet,
                                     sum(amount) as amount
   from
           ( 
           select *,row_number()over(partition by signer order by block_date) as rn                           
            from
                    (
                        select *
                        from cte_deposit
                        union all
                        select *
                        from cte_reward
                        union all
                        select *
                        from cte_deposit_stake
                )
        )
group by 1,2
    
    )
where stake_pool is not null
 order by 1 desc
```

With that we can analyse trends of TVL over time and can also judge the health of any pool or platform &#x20;

Here is the link to the detailed dashboard for your reference -<br>

<https://analytics.topledger.xyz/tl/public/dashboards/1f5RBu3NSjEQFqOp7wcifeIYd432Uv1pG4Kk17aj>


# Decoded Instructions Data


# Metaplex

Metaplex makes it easy to build your project and grow your community in the world’s largest NFT ecosystem.

[Metaplex](https://www.metaplex.com/) is a collection of tools, smart contracts, and more designed to make the process of creating and launching NFTs easier. While initially focused on supporting the needs of the arts and entertainment industry their plans extend far beyond that to all use cases where an NFT may add value.

Currently, their three major programs are:

* [Token Metadata](https://docs.metaplex.com/programs/token-metadata/) - the NFT standard for Solana
* [Candy Machine v3™](https://docs.metaplex.com/programs/candy-machine/) - a Profile Picture (PFP) focused tool that works like the gumball-style candy machines of old
* [Auction House](https://docs.metaplex.com/programs/auction-house/) - a decentralized sales protocol for NFT marketplaces


# Auction House

Auction House is a protocol for marketplaces to implement a decentralized sales contract. It is simple, fast and very cheap. Auction House is a Solana program available on Mainnet Beta and Devnet.

#### **metaplex.ah**

The table contains the parsed instructions data for [Auction House](https://docs.metaplex.com/programs/auction-house/overview). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                        | Column Type    | Description                                                                                            |
| ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                        | date           | Event date                                                                                             |
| block\_time                        | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                        | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                               | string         | Solana program address                                                                                 |
| inner\_instruction\_index          | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input_accounts) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                 | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                  | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction             | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                             | string         | The first signature in the transaction                                                                 |
| [args](#args)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input\_accounts

<table><thead><tr><th width="433.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>ataProgram</td><td>string</td></tr><tr><td>auctionHouse</td><td>string</td></tr><tr><td>auctionHouseFeeAccount</td><td>string</td></tr><tr><td>authority</td><td>string</td></tr><tr><td>buyer</td><td>string</td></tr><tr><td>escrowPaymentAccount</td><td>string</td></tr><tr><td>freeSellerTradeState</td><td>string</td></tr><tr><td>metadata</td><td>string</td></tr><tr><td>programAsSigner</td><td>string</td></tr><tr><td>receiptAccount</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>seller</td><td>string</td></tr><tr><td>sellerTradeState</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>tokenAccount</td><td>string</td></tr><tr><td>tokenMint</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>tradeState</td><td>string</td></tr><tr><td>treasuryMint</td><td>string</td></tr><tr><td>wallet</td><td>string</td></tr><tr><td>auctionHouseTreasury</td><td>string</td></tr><tr><td>buyerReceiptTokenAccount</td><td>string</td></tr><tr><td>buyerTradeState</td><td>string</td></tr><tr><td>freeTradeState</td><td>string</td></tr><tr><td>paymentAccount</td><td>string</td></tr><tr><td>sellerPaymentReceiptAccount</td><td>string</td></tr><tr><td>transferAuthority</td><td>string</td></tr><tr><td>feeWithdrawalDestination</td><td>string</td></tr><tr><td>newAuthority</td><td>string</td></tr><tr><td>payer</td><td>string</td></tr><tr><td>treasuryWithdrawalDestination</td><td>string</td></tr><tr><td>treasuryWithdrawalDestinationOwner</td><td>string</td></tr><tr><td>bookkeeper</td><td>string</td></tr><tr><td>instruction</td><td>string</td></tr><tr><td>receipt</td><td>string</td></tr><tr><td>bidReceipt</td><td>string</td></tr><tr><td>listingReceipt</td><td>string</td></tr><tr><td>purchaseReceipt</td><td>string</td></tr><tr><td>ahAuctioneerPda</td><td>string</td></tr><tr><td>auctioneerAuthority</td><td>string</td></tr></tbody></table>

#### args

| Field                | Data Type |
| -------------------- | --------- |
| buyerPrice           | bigint    |
| escrowPaymentBump    | bigint    |
| freeTradeStateBump   | bigint    |
| programAsSignerBump  | bigint    |
| tokenSize            | bigint    |
| tradeStateBump       | bigint    |
| amount               | bigint    |
| canChangeSalePrice   | bigint    |
| requiresSignOff      | bigint    |
| sellerFeeBasisPoints | bigint    |
| bump                 | bigint    |
| feePayerBump         | bigint    |
| treasuryBump         | bigint    |
| receiptBump          | bigint    |
| purchaseReceiptBump  | bigint    |


# Token Metadata

Token Metadata program is one of the most important programs when dealing with NFTs on the Solana blockchain. Its main goal is to attach additional data to Fungible or Non-Fungible Tokens on Solana.

#### **metaplex.tm**

The table contains the parsed instructions data for [Token Metadata](https://docs.metaplex.com/programs/token-metadata/overview). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                        | Column Type    | Description                                                                                            |
| ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                        | date           | Event date                                                                                             |
| block\_time                        | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                        | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                               | string         | Solana program address                                                                                 |
| inner\_instruction\_index          | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input_accounts) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                 | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                  | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction             | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                             | string         | The first signature in the transaction                                                                 |
| [args](#args)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input\_accounts

<table><thead><tr><th width="433.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>creator</td><td>string</td></tr><tr><td>adminFeeBAccount</td><td>string</td></tr><tr><td>edition</td><td>string</td></tr><tr><td>editionMarkPda</td><td>string</td></tr><tr><td>masterEdition</td><td>string</td></tr><tr><td>metadata</td><td>string</td></tr><tr><td>mint</td><td>string</td></tr><tr><td>mintAuthority</td><td>string</td></tr><tr><td>newEdition</td><td>string</td></tr><tr><td>newMetadata</td><td>string</td></tr><tr><td>newMetadataUpdateAuthority</td><td>string</td></tr><tr><td>newMint</td><td>string</td></tr><tr><td>newMintAuthority</td><td>string</td></tr><tr><td>owner</td><td>string</td></tr><tr><td>payer</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>safetyDepositBox</td><td>string</td></tr><tr><td>safetyDepositStore</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>token</td><td>string</td></tr><tr><td>tokenAccount</td><td>string</td></tr><tr><td>tokenAccountOwner</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>tokenVaultProgram</td><td>string</td></tr><tr><td>updateAuthority</td><td>string</td></tr><tr><td>vault</td><td>string</td></tr><tr><td>vaultAuthority</td><td>string</td></tr><tr><td>delegate</td><td>string</td></tr><tr><td>collection</td><td>string</td></tr><tr><td>collectionAuthority</td><td>string</td></tr><tr><td>collectionAuthorityRecord</td><td>string</td></tr><tr><td>collectionMasterEditionAccount</td><td>string</td></tr><tr><td>collectionMint</td><td>string</td></tr><tr><td>newCollectionAuthority</td><td>string</td></tr><tr><td>oneTimeAuth</td><td>string</td></tr><tr><td>printingMint</td><td>string</td></tr><tr><td>delegateAuthority</td><td>string</td></tr><tr><td>revokeAuthority</td><td>string</td></tr><tr><td>masterEditionAccount</td><td>string</td></tr><tr><td>splTokenProgram</td><td>string</td></tr><tr><td>collectionMetadata</td><td>string</td></tr><tr><td>ataProgram</td><td>string</td></tr><tr><td>useAuthority</td><td>string</td></tr><tr><td>burner</td><td>string</td></tr><tr><td>ownerTokenAccount</td><td>string</td></tr><tr><td>useAuthorityRecord</td><td>string</td></tr><tr><td>user</td><td>string</td></tr><tr><td>editionMarkerAccount</td><td>string</td></tr><tr><td>masterEditionMint</td><td>string</td></tr><tr><td>masterEditionTokenAccount</td><td>string</td></tr><tr><td>printEditionAccount</td><td>string</td></tr><tr><td>printEditionMint</td><td>string</td></tr><tr><td>printEditionTokenAccount</td><td>string</td></tr></tbody></table>

#### args

| Field                                   | Data Type |
| --------------------------------------- | --------- |
| [data](#data)                           | \<STRUCT> |
| edition                                 | bigint    |
| isMutable                               | boolean   |
| maxSupply                               | bigint    |
| primarySaleHappened                     | boolean   |
| updateAuthority                         | string    |
| size                                    | bigint    |
| [collectionDetails](#collectiondetails) | \<STRUCT> |
| numberOfUses                            | bigint    |

#### data

| Field                     | Data Type      |
| ------------------------- | -------------- |
| [creators](#creators)     | array\<STRUCT> |
| name                      | string         |
| sellerFeeBasisPoints      | bigint         |
| symbol                    | string         |
| uri                       | string         |
| [collection](#collection) | \<STRUCT>      |
| [uses](#uses)             | \<STRUCT>      |

#### collectionDetails

| Field | Data Type |
| ----- | --------- |
| name  | string    |
| size  | bigint    |

#### creators

| Field    | Data Type |
| -------- | --------- |
| address  | string    |
| share    | bigint    |
| verified | boolean   |

#### collection

| Field    | Data Type |
| -------- | --------- |
| key      | string    |
| verified | boolean   |

#### uses

| Field     | Data Type |
| --------- | --------- |
| remaining | bigint    |
| total     | bigint    |
| useMethod | string    |


# Candy Machine

Candy Machine is the leading minting and distribution program for fair NFT collection launches on Solana. It allows creators to bring their digital assets on-chain in a secure and customisable way.

Here are some of the features it offers.

* Accept payments in SOL, NFTs or any Solana token.
* Restrict your launch via start/end dates, mint limits, third party signers, etc.
* Protect your launch against bots via configurable bot taxes and gatekeepers like Captchas.
* Restrict minting to specific NFT/Token holders or to a curated list of wallets.
* Create multiple minting groups with different sets of rules.
* Reveal your NFTs after the launch whilst allowing your users to verify that information.
* And so much more!


# CM V2

#### **metaplex.cmv2**

The table contains the parsed instructions data for Candy Machine V2. Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                        | Column Type    | Description                                                                                            |
| ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                        | date           | Event date                                                                                             |
| block\_time                        | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                        | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                               | string         | Solana program address                                                                                 |
| inner\_instruction\_index          | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input_accounts) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                 | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                  | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction             | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                             | string         | The first signature in the transaction                                                                 |
| [args](#args)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input\_accounts

<table><thead><tr><th width="433.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>authority</td><td>string</td></tr><tr><td>candyMachine</td><td>string</td></tr><tr><td>candyMachineCreator</td><td>string</td></tr><tr><td>clock</td><td>string</td></tr><tr><td>instructionSysvarAccount</td><td>string</td></tr><tr><td>masterEdition</td><td>string</td></tr><tr><td>metadata</td><td>string</td></tr><tr><td>mint</td><td>string</td></tr><tr><td>mintAuthority</td><td>string</td></tr><tr><td>payer</td><td>string</td></tr><tr><td>recentBlockhashes</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>tokenMetadataProgram</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>updateAuthority</td><td>string</td></tr><tr><td>wallet</td><td>string</td></tr><tr><td>collectionPda</td><td>string</td></tr><tr><td>collectionAuthorityRecord</td><td>string</td></tr><tr><td>edition</td><td>string</td></tr><tr><td>collectionMasterEdition</td><td>string</td></tr><tr><td>collectionMetadata</td><td>string</td></tr><tr><td>collectionMint</td><td>string</td></tr><tr><td>instructions</td><td>string</td></tr><tr><td>freezePda</td><td>string</td></tr><tr><td>owner</td><td>string</td></tr><tr><td>tokenAccount</td><td>string</td></tr></tbody></table>

#### args

| Field                                           | Data Type      |
| ----------------------------------------------- | -------------- |
| [configLines](#configlines)                     | array\<STRUCT> |
| creatorBump                                     | bigint         |
| [creators](#creators)                           | array\<STRUCT> |
| [endSettings](#endsettings)                     | \<STRUCT>      |
| goLiveDate                                      | string         |
| index                                           | bigint         |
| isMutable                                       | bigint         |
| itemsAvailable                                  | bigint         |
| price                                           | bigint         |
| retainAuthority                                 | bigint         |
| sellerFeeBasisPoints                            | bigint         |
| symbol                                          | string         |
| uuid                                            | string         |
| [whitelistMintSettings](#whitelistmintsettings) | \<STRUCT>      |
| [hiddenSettings](#hiddensettings)               | \<STRUCT>      |
| newAuthority                                    | string         |
| maxSupply                                       | bigint         |
| setFreeze                                       | bigint         |

#### configLines

| Field | Data Type |
| ----- | --------- |
| name  | string    |
| uri   | string    |

#### creators

| Field    | Data Type |
| -------- | --------- |
| address  | string    |
| share    | bigint    |
| verified | boolean   |

#### endSettings

| Field          | Data Type |
| -------------- | --------- |
| endSettingType | string    |
| number         | bigint    |

#### whitelistMintSettings

| Field         | Data Type |
| ------------- | --------- |
| discountPrice | bigint    |
| mint          | string    |
| mode          | string    |
| presale       | boolean   |

#### hiddenSettings

| Field | Data Type |
| ----- | --------- |
| hash  | bigint\[] |
| name  | string    |
| uri   | string    |


# CM V1

#### **metaplex.cmv1**

The table contains the parsed instructions data for Candy Machine V2. Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                        | Column Type    | Description                                                                                            |
| ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                        | date           | Event date                                                                                             |
| block\_time                        | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                        | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                               | string         | Solana program address                                                                                 |
| inner\_instruction\_index          | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input_accounts) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                 | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                  | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction             | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                             | string         | The first signature in the transaction                                                                 |
| [args](#args)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input\_accounts

<table><thead><tr><th width="433.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>authority</td><td>string</td></tr><tr><td>candyMachine</td><td>string</td></tr><tr><td>clock</td><td>string</td></tr><tr><td>config</td><td>string</td></tr><tr><td>masterEdition</td><td>string</td></tr><tr><td>metadata</td><td>string</td></tr><tr><td>mint</td><td>string</td></tr><tr><td>mintAuthority</td><td>string</td></tr><tr><td>payer</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>tokenMetadataProgram</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>updateAuthority</td><td>string</td></tr><tr><td>wallet</td><td>string</td></tr></tbody></table>

#### args

| Field                       | Data Type      |
| --------------------------- | -------------- |
| bump                        | int            |
| [configLines](#configlines) | array\<STRUCT> |
| [data](#data)               | \<STRUCT>      |

#### configLines

| Field | Data Type |
| ----- | --------- |
| name  | string    |
| uri   | string    |

#### data

| Field                 | Data Type      |
| --------------------- | -------------- |
| [creators](#creators) | array\<STRUCT> |
| itemsAvailable        | int            |
| maxNumberOfLines      | int            |
| maxSupply             | boolean        |
| price                 | bigint         |
| retainAuthority       | boolean        |
| sellerFeeBasisPoints  | int            |
| symbol                | string         |
| uuid                  | string         |

#### creators

| Field    | Data Type |
| -------- | --------- |
| address  | string    |
| share    | int       |
| verified | boolean   |


# Saber

Saber is an automated market maker and liquidity pool on Solana designed for extremely efficient trading between similarly priced (pegged) assets, without an opportunity cost.

#### **saber.parsed**

The table contains the parsed instructions data for [`Saber`](https://docs.saber.so/). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name               | Column Type    | Description                                                                                            |
| ------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date               | date           | Event date                                                                                             |
| block\_time               | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot               | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                      | string         | Solana program address                                                                                 |
| inner\_instruction\_index | int            | The order of inner instruction of an instruction in a txns                                             |
| input\_accounts           | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index        | int            | The order of the instruction in a txns                                                                 |
| instruction\_type         | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction    | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                    | string         | The first signature in the transaction                                                                 |
| args                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input\_accounts

<table><thead><tr><th width="433.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>adminFeeAAccount</td><td>string</td></tr><tr><td>adminFeeBAccount</td><td>string</td></tr><tr><td>authority</td><td>string</td></tr><tr><td>poolAccountDeposit</td><td>string</td></tr><tr><td>poolMintAccount</td><td>string</td></tr><tr><td>sourcePoolAccount</td><td>string</td></tr><tr><td>stableSwap</td><td>string</td></tr><tr><td>tokenAAuthority</td><td>string</td></tr><tr><td>tokenABAdminFeeAccount</td><td>string</td></tr><tr><td>tokenABBaseAccountSwapFrom</td><td>string</td></tr><tr><td>tokenABBaseAccountSwapInto</td><td>string</td></tr><tr><td>tokenABBaseSwapAccountWithdrawFrom</td><td>string</td></tr><tr><td>tokenABBaseUserAccountCredit</td><td>string</td></tr><tr><td>tokenABDestinationAccount</td><td>string</td></tr><tr><td>tokenABQuoteSwapAccountExchange</td><td>string</td></tr><tr><td>tokenABSourceAccount</td><td>string</td></tr><tr><td>tokenABaseAccountDepositInto</td><td>string</td></tr><tr><td>tokenASwapAccountWithdrawFrom</td><td>string</td></tr><tr><td>tokenAUserAccount</td><td>string</td></tr><tr><td>tokenBAuthority</td><td>string</td></tr><tr><td>tokenBBaseAccountDepositInto</td><td>string</td></tr><tr><td>tokenBSwapAccountWithdrawFrom</td><td>string</td></tr><tr><td>tokenBUserAccount</td><td>string</td></tr><tr><td>tokenProgramId</td><td>string</td></tr><tr><td>userAuthority</td><td>string</td></tr></tbody></table>

#### args

| Field                     | Data Type |
| ------------------------- | --------- |
| amount\_in                | bigint    |
| min\_mint\_amount         | bigint    |
| minimum\_amount\_out      | bigint    |
| minimum\_token\_a\_amount | bigint    |
| minimum\_token\_amount    | bigint    |
| minimum\_token\_b\_amount | bigint    |
| pool\_token\_amount       | bigint    |
| token\_a\_amount          | bigint    |
| token\_b\_amount          | bigint    |


# Mercurial Finance

Mercurial is building new liquidity systems to maximise the utility and yield of stable assets on Solana.

#### mercuria&#x6C;**.parsed**

The table contains the parsed instructions data for [Mercurial Finance](https://www.mercurial.finance/about). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name               | Column Type    | Description                                                                                            |
| ------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date               | date           | Event date                                                                                             |
| block\_time               | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot               | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                      | string         | Solana program address                                                                                 |
| inner\_instruction\_index | int            | The order of inner instruction of an instruction in a txns                                             |
| input\_accounts           | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index        | int            | The order of the instruction in a txns                                                                 |
| instruction\_type         | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction    | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                    | string         | The first signature in the transaction                                                                 |
| args                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>authority</td><td>string</td></tr><tr><td>destinationTokenAccount</td><td>string</td></tr><tr><td>poolTokenMint</td><td>string</td></tr><tr><td>sourceTokenAccount</td><td>string</td></tr><tr><td>sourceTokenAccounts</td><td>array&#x3C;string></td></tr><tr><td>swapInfo</td><td>string</td></tr><tr><td>tokenAccounts</td><td>array&#x3C;string></td></tr><tr><td>tokenProgramId</td><td>string</td></tr><tr><td>userLpTokenAccount</td><td>string</td></tr><tr><td>userTransferAuthority</td><td>string</td></tr><tr><td>adminTokenMint</td><td>string</td></tr><tr><td>tokenMints</td><td>array&#x3C;string></td></tr></tbody></table>

#### args

| Field                      | Data Type      |
| -------------------------- | -------------- |
| deposit\_amounts           | array\<bigint> |
| in\_amount                 | bigint         |
| min\_mint\_amount          | bigint         |
| minimum\_amounts           | array\<bigint> |
| minimum\_out\_amount       | bigint         |
| unmint\_amount             | bigint         |
| admin\_settings            | \<STRUCT>      |
| amplification\_coefficient | bigint         |
| fee\_numerator             | bigint         |
| n\_coins                   | bigint         |
| nonce                      | bigint         |

#### admin\_settings

| Field                   | Data Type |
| ----------------------- | --------- |
| add\_liquidity\_enabled | boolean   |
| swap\_enabled           | boolean   |


# Sol Splits

A composable standard for splitting on-chain income on Solana.

#### splits.txns&#x20;

This table has similar schema as of Solana [transactions](/data-tables/solana-data/transactions) table

#### splits.parsed

The table contains the parsed instructions data for [Sol Splits](https://solsplits.xyz/). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                        | Column Type    | Description                                                                                            |
| ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                        | date           | Event date                                                                                             |
| block\_time                        | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                        | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                               | string         | Solana program address                                                                                 |
| inner\_instruction\_index          | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                 | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                  | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction             | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                             | string         | The first signature in the transaction                                                                 |
| [args](#args)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>receiver8WalletTokenAccount</td><td>string</td></tr><tr><td>authority</td><td>string</td></tr><tr><td>receiver5</td><td>string</td></tr><tr><td>receiver1WalletTokenAccount</td><td>string</td></tr><tr><td>receiver9WalletTokenAccount</td><td>string</td></tr><tr><td>logWrapper</td><td>string</td></tr><tr><td>receiver6WalletTokenAccount</td><td>string</td></tr><tr><td>bubblegumProgram</td><td>string</td></tr><tr><td>receiver4WalletTokenAccount</td><td>string</td></tr><tr><td>feeTokenAccount</td><td>string</td></tr><tr><td>receiver5WalletTokenAccount</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>receiver8</td><td>string</td></tr><tr><td>receiver0</td><td>string</td></tr><tr><td>receiver4Wallet</td><td>string</td></tr><tr><td>receiver9Wallet</td><td>string</td></tr><tr><td>config</td><td>string</td></tr><tr><td>receiver3Wallet</td><td>string</td></tr><tr><td>receiver2</td><td>string</td></tr><tr><td>compressionProgram</td><td>string</td></tr><tr><td>receiver7</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>receiver0WalletTokenAccount</td><td>string</td></tr><tr><td>receiver6Wallet</td><td>string</td></tr><tr><td>receiver3</td><td>string</td></tr><tr><td>receiver7WalletTokenAccount</td><td>string</td></tr><tr><td>referral</td><td>string</td></tr><tr><td>associatedTokenProgram</td><td>string</td></tr><tr><td>receiverWallet</td><td>string</td></tr><tr><td>split</td><td>string</td></tr><tr><td>receiver0Wallet</td><td>string</td></tr><tr><td>receiver1</td><td>string</td></tr><tr><td>splitWallet</td><td>string</td></tr><tr><td>mint</td><td>string</td></tr><tr><td>receiver1Wallet</td><td>string</td></tr><tr><td>receiver8Wallet</td><td>string</td></tr><tr><td>leafDelegate</td><td>string</td></tr><tr><td>treeAuthority</td><td>string</td></tr><tr><td>treasury</td><td>string</td></tr><tr><td>receiver2Wallet</td><td>string</td></tr><tr><td>receiver</td><td>string</td></tr><tr><td>receiver3WalletTokenAccount</td><td>string</td></tr><tr><td>receiver9</td><td>string</td></tr><tr><td>merkleTree</td><td>string</td></tr><tr><td>receiver2WalletTokenAccount</td><td>string</td></tr><tr><td>receiver7Wallet</td><td> string</td></tr><tr><td>receiver4</td><td>string</td></tr><tr><td>receiver5Wallet</td><td>string</td></tr><tr><td>feeWallet</td><td>string</td></tr><tr><td>newLeafOwner</td><td>string</td></tr><tr><td>receiver6</td><td>string</td></tr><tr><td>splitTokenAccount</td><td>string</td></tr></tbody></table>

#### args

| Field                 | Data Type   |
| --------------------- | ----------- |
| public                | boolean     |
| individualSplitAmount | bigint      |
| amount                | bigint      |
| lamports              | boolean     |
| feePayer              | string      |
| unmint\_amount        | bigint      |
| kind                  | string      |
| feeFlat               | bigint      |
| feePercentage         | bigint      |
| owner                 | string      |
| root                  | array\<int> |
| dataHash              | array\<int> |
| creatorHash           | array\<int> |
| nonce                 | bigint      |
| index                 | bigint      |


# Stake Pool

A program for pooling together SOL to be staked by an off-chain agent

#### stake\_pool.txns&#x20;

This table has similar schema as of Solana [transactions](/data-tables/solana-data/transactions) table

#### stake\_pool.parsed

The table contains the parsed instructions data for [Stake Pools](https://spl.solana.com/stake-pool). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                        | Column Type    | Description                                                                                            |
| ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                        | date           | Event date                                                                                             |
| block\_time                        | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                        | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                               | string         | Solana program address                                                                                 |
| inner\_instruction\_index          | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                 | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                  | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction             | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                             | string         | The first signature in the transaction                                                                 |
| [args](#args)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>pool_mint</td><td>string</td></tr><tr><td>metadata_program_id</td><td>string</td></tr><tr><td>stake_config_sysvar</td><td>string</td></tr><tr><td>validator_stake</td><td>string</td></tr><tr><td>destination_stake</td><td>string</td></tr><tr><td>stake_history_sysvar</td><td>string</td></tr><tr><td>accounts</td><td>array&#x3C;string></td></tr><tr><td>source_pool_account</td><td>string</td></tr><tr><td>clock_sysvar</td><td>string</td></tr><tr><td>token_metadata</td><td>string</td></tr><tr><td>token_program_id</td><td>string</td></tr><tr><td>manager_fee_account</td><td>string</td></tr><tr><td>rent_sysvar</td><td>string</td></tr><tr><td>validator</td><td>string</td></tr><tr><td>destination_transient_stake</td><td>string</td></tr><tr><td>payer</td><td>string</td></tr><tr><td>funding_account</td><td>string</td></tr><tr><td>system_program_id</td><td>string</td></tr><tr><td>reserve_stake</td><td>string</td></tr><tr><td>source_transfer_authority</td><td>string</td></tr><tr><td>source_validator_stake</td><td>string</td></tr><tr><td>withdraw_authority</td><td>string</td></tr><tr><td>staker</td><td>string</td></tr><tr><td>deposit_stake</td><td>string</td></tr><tr><td>manager</td><td>string</td></tr><tr><td>deposit_authority</td><td>string</td></tr><tr><td>withdrawauthority</td><td>string</td></tr><tr><td>stake_pool</td><td>string</td></tr><tr><td>source_transient_stake</td><td>string</td></tr><tr><td>referral_pool_account</td><td>string</td></tr><tr><td>manager_pool_account</td><td>string</td></tr><tr><td>sol_withdraw_authority</td><td>string</td></tr><tr><td>ephemeral_stake</td><td>string</td></tr><tr><td>destination_pool_account</td><td>string</td></tr><tr><td>destination_validator_stake</td><td>string</td></tr><tr><td>destination_system_account</td><td>string</td></tr><tr><td>validator_list</td><td>string</td></tr><tr><td>stake_program_id</td><td>string</td></tr><tr><td>destination_stake_authority</td><td>string</td></tr><tr><td>validator_vote</td><td>string</td></tr><tr><td>validator_and_transient_stake_pairs</td><td>array&#x3C;string></td></tr><tr><td>transient_stake</td><td>string</td></tr></tbody></table>

#### args

| Field                               | Data Type |
| ----------------------------------- | --------- |
| [fee](#fee)                         | \<STRUCT> |
| [withdrawal\_fee](#withdrawal_fee)  | \<STRUCT> |
| [deposit\_fee](#deposit_fee)        | \<STRUCT> |
| referral\_fee                       | int16     |
| max\_validators                     | int32     |
| seed                                | int32     |
| lamports                            | bigint    |
| transient\_stake\_seed              | bigint    |
| validator\_type                     | string    |
| validator\_vote\_address            | string    |
| start\_index                        | int32     |
| no\_merge                           | boolean   |
| pool\_tokens\_in                    | bigint    |
| lamports\_in                        | bigint    |
| funding\_type                       | string    |
| name                                | string    |
| symbol                              | string    |
| uri                                 | string    |
| ephemeral\_stake\_seed              | bigint    |
| source\_transient\_stake\_seed      | bigint    |
| destination\_transient\_stake\_seed | bigint    |
| minimum\_pool\_tokens\_out          | bigint    |
| minimum\_lamports\_out              | bigint    |

#### fee

<table><thead><tr><th width="379">Field</th><th>Data Type</th></tr></thead><tbody><tr><td>denominator</td><td>bigint</td></tr><tr><td>numerator</td><td>bigint</td></tr><tr><td>name</td><td>string</td></tr><tr><td>fields</td><td>string</td></tr></tbody></table>

#### withdrawal\_fee

| Field       | Data Type |
| ----------- | --------- |
| denominator | bigint    |
| numerator   | bigint    |

#### deposit\_fee

| Field       | Data Type |
| ----------- | --------- |
| denominator | bigint    |
| numerator   | bigint    |


# Hubble

Supercharge Your Liquidity On Solana. Mint USDH against multiple types of collateral. Repay whenever you want.

**hubble.txns**&#x20;

This table has similar schema as of Solana [transactions](/data-tables/solana-data/transactions) table

**hubble.borrow**

The table contains the parsed instructions data for [Hubble Protocol](https://hubbleprotocol.io/). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                        | Column Type    | Description                                                                                            |
| ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                        | date           | Event date                                                                                             |
| block\_time                        | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                        | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                               | string         | Solana program address                                                                                 |
| inner\_instruction\_index          | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                 | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                  | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction             | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                             | string         | The first signature in the transaction                                                                 |
| [args](#args)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>systemProgram</td><td>string</td></tr><tr><td>toAccount</td><td>string</td></tr><tr><td>userMetadata</td><td>string</td></tr><tr><td>borrowingVaults</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>stablecoinMintAuthority</td><td>string</td></tr><tr><td>liquidator</td><td>string</td></tr><tr><td>borrowingFeesVault</td><td>string</td></tr><tr><td>otherStablecoinMint</td><td>string</td></tr><tr><td>programData</td><td>string</td></tr><tr><td>burningVault</td><td>string</td></tr><tr><td>program</td><td>string</td></tr><tr><td>additionalBorrowingMarketState</td><td>string</td></tr><tr><td>newMint</td><td>string</td></tr><tr><td>liquidationRewardsVaultAuthority</td><td>string</td></tr><tr><td>liquidationRewardsTo</td><td>string</td></tr><tr><td>treasuryVault</td><td>string</td></tr><tr><td>userHbbStakingAta</td><td>string</td></tr><tr><td>userStablecoinRewardsAta</td><td>string</td></tr><tr><td>borrowingFeesVaultAuthority</td><td>string</td></tr><tr><td>stablecoinMint</td><td>string</td></tr><tr><td>userHbbAta</td><td>string</td></tr><tr><td>newVault</td><td>string</td></tr><tr><td>originalBorrowingMarketState</td><td>string</td></tr><tr><td>clock</td><td>string</td></tr><tr><td>psmVaultAuthority</td><td>string</td></tr><tr><td>usdhMint</td><td>string</td></tr><tr><td>redeemer</td><td>string</td></tr><tr><td>stabilityFeesVault</td><td>string</td></tr><tr><td>psmVault</td><td>string</td></tr><tr><td>hbbAta</td><td>string</td></tr><tr><td>liquidationRewardsVault</td><td>string</td></tr><tr><td>redeemerCollateralAta</td><td>string</td></tr><tr><td>collateralVault</td><td>string</td></tr><tr><td>stakingPoolState</td><td>string</td></tr><tr><td>stablecoinAta</td><td>string</td></tr><tr><td>stabilityProviderState</td><td>string</td></tr><tr><td>collateralVaultsAuthority</td><td>string</td></tr><tr><td>scopePrices</td><td>string</td></tr><tr><td>stabilityPoolProvider</td><td>string</td></tr><tr><td>stakingVaultAuthority</td><td>string</td></tr><tr><td>usdhAta</td><td>string</td></tr><tr><td>liquidatorUsdhAta</td><td>string</td></tr><tr><td>otherStablecoinAta</td><td>string</td></tr><tr><td>adminAuthority</td><td>string</td></tr><tr><td>ownerSignatureState</td><td>string</td></tr><tr><td>borrowingMarketState</td><td>string</td></tr><tr><td>globalConfig</td><td>string</td></tr><tr><td>collateralFrom</td><td>string</td></tr><tr><td>newOwner</td><td>string</td></tr><tr><td>stakingVault</td><td>string</td></tr><tr><td>userStakingState</td><td>string</td></tr><tr><td>treasuryVaultOtherStable</td><td>string</td></tr><tr><td>closingAccount</td><td>string</td></tr><tr><td>burningVaultAuthority</td><td>string</td></tr><tr><td>stablecoinStabilityPoolVaultAuthority</td><td>string</td></tr><tr><td>clearingAgent</td><td>string</td></tr><tr><td>stablecoinStabilityPoolVault</td><td>string</td></tr><tr><td>psmReserve</td><td>string</td></tr><tr><td>hbbMint</td><td>string</td></tr><tr><td>owner</td><td>string</td></tr><tr><td>epochToScaleToSum</td><td>string</td></tr><tr><td>hbbMintAuthority</td><td>string</td></tr><tr><td>redeemerStablecoinAta</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>stablecoinBorrowingAssociatedAccount</td><td>string</td></tr><tr><td>clearingAgentAta</td><td>string</td></tr><tr><td>stabilityPoolState</td><td>string</td></tr><tr><td>treasuryVaultAuthority</td><td>string</td></tr><tr><td>collateralTo</td><td>string</td></tr><tr><td>usdhMintAuthority</td><td>string</td></tr><tr><td>liquidationsQueue</td><td>string</td></tr></tbody></table>

#### args

| Field                        | Data Type   |
| ---------------------------- | ----------- |
| mintId                       | int         |
| setVaultToPda                | bool        |
| vaultIsForLiquidationRewards | bool        |
| key                          | int         |
| value                        | array\<int> |
| action                       | int         |
| tokenId                      | int         |
| collateral                   | int         |
| capInLamports                | bigint      |
| amountInLamports             | bigint      |
| amount                       | bigint      |
| depositAmount                | bigint      |
| depositAsset                 | int         |
| borrowAmount                 | bigint      |
| maxCapacity                  | bigint      |
| intervalLength               | bigint      |
| changeCollateralCap          | bool        |
| collateralId                 | int         |
| accumActionBool              | bool        |
| debtToRepay                  | bigint      |
| token                        | int         |
| bump                         | int         |
| mintFeeBps                   | bigint      |
| burnFeeBps                   | bigint      |
| operationType                | int         |
| interval                     | bigint      |
| changeStableCap              | bool        |
| resetAccums                  | bool        |
| newValue                     | bigint      |
| updateMode                   | int         |
| swapToken                    | string      |
| stablecoinProvided           | bigint      |
| minSwapTokenToReceive        | bigint      |
| signature                    | array\<int> |

**hubble.kamino**

The table contains the parsed instructions data for [Kamino Finance](https://app.kamino.finance/). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-1) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args-1)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="411.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>treasuryFeeVaultAuthority</td><td>string</td></tr><tr><td>raydiumPoolConfigOrBaseVaultAuthority</td><td>string</td></tr><tr><td>tokenBMint</td><td>string</td></tr><tr><td>treasuryFeeTokenBVault</td><td>string</td></tr><tr><td>rewardVault</td><td>string</td></tr><tr><td>globalConfig</td><td>string</td></tr><tr><td>oldPositionOrBaseVaultAuthority</td><td>string</td></tr><tr><td>newPool</td><td>string</td></tr><tr><td>scopePrices</td><td>string</td></tr><tr><td>poolRewardVault2</td><td>string</td></tr><tr><td>newAccount</td><td>string</td></tr><tr><td>instructionSysvarAccount</td><td>string</td></tr><tr><td>funder</td><td>string</td></tr><tr><td>userTokenAAta</td><td>string</td></tr><tr><td>tokenAVault</td><td>string</td></tr><tr><td>oldTickArrayLowerOrBaseVaultAuthority</td><td>string</td></tr><tr><td>userTokenBAta</td><td>string</td></tr><tr><td>sharesMetadata</td><td>string</td></tr><tr><td>position</td><td>string</td></tr><tr><td>poolTokenVaultB</td><td>string</td></tr><tr><td>poolRewardVault1</td><td>string</td></tr><tr><td>ownerSignatureState</td><td>string</td></tr><tr><td>poolTokenVaultA</td><td>string</td></tr><tr><td>programData</td><td>string</td></tr><tr><td>metadataProgram</td><td>string</td></tr><tr><td>whirlpool</td><td>string</td></tr><tr><td>closingAccount</td><td>string</td></tr><tr><td>mint</td><td>string</td></tr><tr><td>collInfo</td><td>string</td></tr><tr><td>reward1Vault</td><td>string</td></tr><tr><td>sharesMint</td><td>string</td></tr><tr><td>tokenBAta</td><td>string</td></tr><tr><td>userSharesAta</td><td>string</td></tr><tr><td>tokenVaultB</td><td>string</td></tr><tr><td>poolRewardVault0</td><td>string</td></tr><tr><td>tokenAccount</td><td>string</td></tr><tr><td>tickArray2</td><td>string</td></tr><tr><td>program</td><td>string</td></tr><tr><td>sharesMintAuthority</td><td>string</td></tr><tr><td>feeMint</td><td>string</td></tr><tr><td>treasuryFeeTokenAVault</td><td>string</td></tr><tr><td>tokenVaultA</td><td>string</td></tr><tr><td>owner</td><td>string</td></tr><tr><td>treasuryFeeVault</td><td>string</td></tr><tr><td>oldPositionMintOrBaseVaultAuthority</td><td>string</td></tr><tr><td>rewardAta</td><td>string</td></tr><tr><td>tokenBVault</td><td>string</td></tr><tr><td>user</td><td>string</td></tr><tr><td>oldPosition</td><td>string</td></tr><tr><td>scopePriceId</td><td>string</td></tr><tr><td>baseVaultAuthority</td><td>string</td></tr><tr><td>pool</td><td>string</td></tr><tr><td>tokenOwnerAccountA</td><td>string</td></tr><tr><td>positionMetadataAccount</td><td>string</td></tr><tr><td>tokenAMint</td><td>string</td></tr><tr><td>scopeProgramId</td><td>string</td></tr><tr><td>tokenAuthority</td><td>string</td></tr><tr><td>tokenAAta</td><td>string</td></tr><tr><td>oldTickArrayUpperOrBaseVaultAuthority</td><td>string</td></tr><tr><td>tokenOwnerAccountB</td><td>string</td></tr><tr><td>positionMint</td><td>string</td></tr><tr><td>associatedTokenProgram</td><td>string</td></tr><tr><td>positionTokenAccount</td><td>string</td></tr><tr><td>reward2Vault</td><td>string</td></tr><tr><td>system</td><td>string</td></tr><tr><td>userRewardTokenAccount</td><td>string</td></tr><tr><td>actionsAuthority</td><td>string</td></tr><tr><td>oracle</td><td>string</td></tr><tr><td>strategy</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>reward0Vault</td><td>string</td></tr><tr><td>rewardMint</td><td>string</td></tr><tr><td>tickArray0</td><td>string</td></tr><tr><td>tickArray1</td><td>string</td></tr><tr><td>poolProgram</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>adminAuthority</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>tickArrayUpper</td><td>string</td></tr><tr><td>whirlpoolProgram</td><td>string</td></tr><tr><td>tickArrayLower</td><td>string</td></tr><tr><td>raydiumProtocolPositionOrBaseVaultAuthority</td><td>string</td></tr><tr><td>payer</td><td>string</td></tr><tr><td>oldPositionTokenAccountOrBaseVaultAuthority</td><td>string</td></tr><tr><td>tokenInfos</td><td>string</td></tr></tbody></table>

#### **args**

| Field                  | Data Type      |
| ---------------------- | -------------- |
| strategyType           | bigint         |
| tokenACollateralId     | bigint         |
| tokenBCollateralId     | bigint         |
| kaminoRewardIndex      | bigint         |
| collateralToken        | bigint         |
| amount                 | bigint         |
| index                  | bigint         |
| mode                   | bigint         |
| value                  | array\<int>    |
| name                   | string         |
| symbol                 | string         |
| uri                    | string         |
| key                    | int            |
| collateralId           | int            |
| rewardIndex            | int            |
| tickLowerIndex         | bigint         |
| tickUpperIndex         | bigint         |
| bump                   | int            |
| tokenMaxA              | bigint         |
| tokenMaxB              | bigint         |
| sharesAmount           | bigint         |
| action                 | int            |
| tokenAIn               | bigint         |
| tokenBIn               | bigint         |
| rewardCollateralId     | bigint         |
| minCollateralTokenOut  | bigint         |
| targetLimitBps         | bigint         |
| aToB                   | bool           |
| minRepayAmount         | bigint         |
| amountToLeaveToUser    | bigint         |
| otherAmountThreshold   | bigint         |
| sqrtPriceLimit         | double         |
| amountSpecifiedIsInput | bool           |
| signature              | array\<bigint> |


# Robox Fi

Providing NFT traders and collectors with leverage without compromising collectability.

**robox.txns**&#x20;

This table has similar schema as of Solana [transactions](/data-tables/solana-data/transactions) table

**robox.parsed**

The table contains the parsed instructions data for [Robox Fi](https://alpha.robox.fi/main). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                        | Column Type    | Description                                                                                            |
| ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                        | date           | Event date                                                                                             |
| block\_time                        | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                        | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                               | string         | Solana program address                                                                                 |
| inner\_instruction\_index          | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                 | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                  | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction             | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                             | string         | The first signature in the transaction                                                                 |
| [args](#args)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>shared.nftMetadata</td><td>string</td></tr><tr><td>nativeMint</td><td>string</td></tr><tr><td>tokenMint</td><td>string</td></tr><tr><td>liquidateAuthorityNftAta</td><td>string</td></tr><tr><td>feeVault</td><td>string</td></tr><tr><td>metadataInfo</td><td>string</td></tr><tr><td>nftEdition</td><td>string</td></tr><tr><td>medenAuctionHouseAuthority</td><td>string</td></tr><tr><td>tswapProgram</td><td>string</td></tr><tr><td>ownerTokenRecord</td><td>string</td></tr><tr><td>meteoraLpMint</td><td>string</td></tr><tr><td>seizedNftsVault</td><td>string</td></tr><tr><td>tensorWhitelistProgram</td><td>string</td></tr><tr><td>bnplProgram</td><td>string</td></tr><tr><td>validationAdapter</td><td>string</td></tr><tr><td>medenEscrowPaymentAccount</td><td>string</td></tr><tr><td>bnAccountNftAta</td><td>string</td></tr><tr><td>shared.tswapPool</td><td>string</td></tr><tr><td>medenProgramAsSigner</td><td>string</td></tr><tr><td>takerBroker</td><td>string</td></tr><tr><td>sellerTokenRecord</td><td>string</td></tr><tr><td>medenAuctionHouseTreasury</td><td>string</td></tr><tr><td>adminNftAta</td><td>string</td></tr><tr><td>fundsSolVault</td><td>string</td></tr><tr><td>shared.tswapMintProof</td><td>string</td></tr><tr><td>adminTokenRecord</td><td>string</td></tr><tr><td>admin</td><td>string</td></tr><tr><td>liquidateAuthorityTokenRecord</td><td>string</td></tr><tr><td>tswap</td><td>string</td></tr><tr><td>user</td><td>string</td></tr><tr><td>medenSeller</td><td>string</td></tr><tr><td>depositCell</td><td>string</td></tr><tr><td>marginAccount</td><td>string</td></tr><tr><td>depositorAta</td><td>string</td></tr><tr><td>destTokenRecord</td><td>string</td></tr><tr><td>pda</td><td>string</td></tr><tr><td>feeSolVault</td><td>string</td></tr><tr><td>vaultNftTokenAccount</td><td>string</td></tr><tr><td>poolNativeAta</td><td>string</td></tr><tr><td>srcNftAta</td><td>string</td></tr><tr><td>poolAta</td><td>string</td></tr><tr><td>nftsOwner</td><td>string</td></tr><tr><td>payer</td><td>string</td></tr><tr><td>seizedNftsVaultTokenRecord</td><td>string</td></tr><tr><td>tensorswapProgram</td><td>string</td></tr><tr><td>currentNftHolderAta</td><td>string</td></tr><tr><td>medenSellerReferral</td><td>string</td></tr><tr><td>tswapPda</td><td>string</td></tr><tr><td>destNftAta</td><td>string</td></tr><tr><td>protocolFeeReceiver</td><td>string</td></tr><tr><td>liquidateAuthority</td><td>string</td></tr><tr><td>bnTokenRecord</td><td>string</td></tr><tr><td>nftPairBox</td><td>string</td></tr><tr><td>medenBuyerTradeState</td><td>string</td></tr><tr><td>pnftShared.authorizationRulesProgram</td><td>string</td></tr><tr><td>medenSellerTradeState</td><td>string</td></tr><tr><td>feesAuthority</td><td>string</td></tr><tr><td>order</td><td>string</td></tr><tr><td>nftReceipt</td><td>string</td></tr><tr><td>tswapFeeVault</td><td>string</td></tr><tr><td>editionInfo</td><td>string</td></tr><tr><td>shared.tswapPoolOwner</td><td>string</td></tr><tr><td>meteoraVault</td><td>string</td></tr><tr><td>tokenRecordInfo</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>metadataProgram</td><td>string</td></tr><tr><td>shared.tswapWhitelist</td><td>string</td></tr><tr><td>medenProgram</td><td>string</td></tr><tr><td>hadeswap</td><td>string</td></tr><tr><td>nftValidationAdapter</td><td>string</td></tr><tr><td>meteoraTokenVault</td><td>string</td></tr><tr><td>associatedTokenProgram</td><td>string</td></tr><tr><td>nftMint</td><td>string</td></tr><tr><td>poolNativeMintAta</td><td>string</td></tr><tr><td>meteoraVaultProgram</td><td>string</td></tr><tr><td>tempEscrowTokenRecord</td><td>string</td></tr><tr><td>bnAccountTokenRecord</td><td>string</td></tr><tr><td>tswapPool</td><td>string</td></tr><tr><td>authorizationRulesProgram</td><td>string</td></tr><tr><td>shared.tswap</td><td>string</td></tr><tr><td>shared.tswapFeeVault</td><td>string</td></tr><tr><td>executor</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>shared.tswapSolEscrow</td><td>string</td></tr><tr><td>solEscrow</td><td>string</td></tr><tr><td>currentNftHolderTokenRecord</td><td>string</td></tr><tr><td>pair</td><td>string</td></tr><tr><td>tswapSingleListing</td><td>string</td></tr><tr><td>nftMetadata</td><td>string</td></tr><tr><td>instructions</td><td>string</td></tr><tr><td>nftEscrow</td><td>string</td></tr><tr><td>ruleSet</td><td>string</td></tr><tr><td>bnAccount</td><td>string</td></tr><tr><td>tswapTokenRecord</td><td>string</td></tr><tr><td>userNftAta</td><td>string</td></tr><tr><td>assetReceiver</td><td>string</td></tr><tr><td>singleListing</td><td>string</td></tr><tr><td>userTokenRecord</td><td>string</td></tr><tr><td>bnAccNftAta</td><td>string</td></tr><tr><td>owner</td><td>string</td></tr><tr><td>bnAta</td><td>string</td></tr><tr><td>srcTokenRecord</td><td>string</td></tr><tr><td>tswapPoolOwnerTokenAta</td><td>string</td></tr><tr><td>medenNotary</td><td>string</td></tr><tr><td>pool</td><td>string</td></tr><tr><td>poolMeteoraLpAta</td><td>string</td></tr><tr><td>pnftShared</td><td>string</td></tr><tr><td>medenSellerNftAta</td><td>string</td></tr><tr><td>medenBuyerReferral</td><td>string</td></tr><tr><td>bnplwlProgram</td><td>string</td></tr><tr><td>authRules</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>tswapWhitelist</td><td>string</td></tr><tr><td>tswapPoolOwner</td><td>string</td></tr><tr><td>depositor</td><td>string</td></tr><tr><td>pnftShared.instructions</td><td>string</td></tr><tr><td>seizedNftsVaultAta</td><td>string</td></tr><tr><td>nftDest</td><td>string</td></tr><tr><td>bnAccTokenRecord</td><td>string</td></tr><tr><td>tokenMetadataProgram</td><td>string</td></tr></tbody></table>

#### args

| Field                     | Data Type      |
| ------------------------- | -------------- |
| [poolParams](#poolparams) | \<STRUCT>      |
| [data](#data)             | \<STRUCT>      |
| [params](#params)         | \<STRUCT>      |
| enabledIxs                | array\<string> |
| disabledIxs               | array\<string> |

#### **poolParams**

| Field                | Data  Type |
| -------------------- | ---------- |
| poolId               | int        |
| minUserParticipation | int        |
| maxUserParticipation | int        |
| maxMortgageDuration  | int        |
| minInterestRate      | int        |
| maxInterestRate      | int        |

#### **params**

| Field        | Data Type |
| ------------ | --------- |
| poolId       | int       |
| usersAmount  | int       |
| poolsAmount  | int       |
| mortgageTerm | int       |

#### **data**

| Field                                   | Data  Type |
| --------------------------------------- | ---------- |
| poolId                                  | int        |
| totalAmount                             | int        |
| depositCumulative                       | int        |
| maxMortgageDurationSecs                 | int        |
| minInterestRate                         | int        |
| maxInterestRate                         | int        |
| feesAmount                              | int        |
| amount                                  | int        |
| termSecs                                | int        |
| loanAmount                              | int        |
| mortgageTerm                            | int        |
| rulesAccPresent                         | boolean    |
| usersAmount                             | int        |
| maxPrice                                | int        |
| [authData](#authdata)                   | \<STRUCT>  |
| [config](#config)                       | \<STRUCT>  |
| minPrice                                | int        |
| [authorizationData](#authorizationdata) | \<STRUCT>  |
| price                                   | int        |
| buyerCreatorRoyaltyBp                   | int        |
| escrowPaymentBump                       | int        |
| programAsSignerBump                     | int        |
| sellerStateExpiry                       | int        |
| minimumLpTokenAmount                    | int        |
| unmintAmount                            | int        |
| minOutAmount                            | int        |
| nftMint                                 | string     |
| collectionId                            | string     |
| realPrice                               | int        |
| poolsAmount                             | int        |
| [nftState](#nftstate)                   | \<STRUCT>  |

#### **authData**

| Field               | Data Type |
| ------------------- | --------- |
| [payload](#payload) | \<STRUCT> |

#### **authorizationData**

| Field               | Data Type |
| ------------------- | --------- |
| [payload](#payload) | \<STRUCT> |

#### **payload**

| Field                 | Data Type |
| --------------------- | --------- |
| name                  | string    |
| [payload](#payload-1) | \<STRUCT> |

#### payload

| Field             | Data Type |
| ----------------- | --------- |
| name              | string    |
| [fields](#fields) | \<STRUCT> |

#### **fields**

| Field                             | Data Type |
| --------------------------------- | --------- |
| valPubkey                         | string    |
| [valSeeds](#valseeds)             | \<STRUCT> |
| [valMerkleProof](#valmerkleproof) | \<STRUCT> |
| valNumber                         | int       |

#### **valSeeds**

| Field | Data Type |
| ----- | --------- |
| seeds | int       |

#### **valMerkleProof**

| Field | Data Type   |
| ----- | ----------- |
| proof | array\<int> |

#### **config**

| Field          | Data Type |
| -------------- | --------- |
| poolType       | string    |
| curveType      | string    |
| startingPrice  | int       |
| delta          | int       |
| mmCompoundFees | boolean   |
| mmFeeBps       | int       |

#### **nftState**

| Field    | Data Type |
| -------- | --------- |
| name     | string    |
| fields   | \<STRUCT> |
| closePda | boolean   |

**fields**

| Field | Data Type |
| ----- | --------- |
| pair  | string    |
| price | int       |


# Switchboard V2

Switchboard allows builders to unlock the power of Solana by creating high performance data feeds from any API.

#### switchboar&#x64;**.txns**

This table has similar schema as of Solana [transactions](/data-tables/solana-data/transactions) table

#### switchboar&#x64;**.parsed**

The table contains the parsed instructions data for [Switchboard](https://docs.switchboard.xyz/solana/program/mainnet). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name               | Column Type    | Description                                                                                            |
| ------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date               | date           | Event date                                                                                             |
| block\_time               | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot               | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                      | string         | Solana program address                                                                                 |
| inner\_instruction\_index | int            | The order of inner instruction of an instruction in a txns                                             |
| input\_accounts           | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index        | int            | The order of the instruction in a txns                                                                 |
| instruction\_type         | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction    | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                    | string         | The first signature in the transaction                                                                 |
| args                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>aggregator</td><td>string</td></tr><tr><td>authority</td><td>string</td></tr><tr><td>callbackPid</td><td>string</td></tr><tr><td>crank</td><td>string</td></tr><tr><td>crankDataBuffer</td><td>string</td></tr><tr><td>dataBuffer</td><td>string</td></tr><tr><td>escrow</td><td>string</td></tr><tr><td>feedPermission</td><td>string</td></tr><tr><td>funder</td><td>string</td></tr><tr><td>gcOracle</td><td>string</td></tr><tr><td>historyBuffer</td><td>string</td></tr><tr><td>instructionsSysvar</td><td>string</td></tr><tr><td>lease</td><td>string</td></tr><tr><td>mint</td><td>string</td></tr><tr><td>oracle</td><td>string</td></tr><tr><td>oracleAuthority</td><td>string</td></tr><tr><td>oraclePermission</td><td>string</td></tr><tr><td>oracleQueue</td><td>string</td></tr><tr><td>oracleWallet</td><td>string</td></tr><tr><td>owner</td><td>string</td></tr><tr><td>payerAuthority</td><td>string</td></tr><tr><td>payerWallet</td><td>string</td></tr><tr><td>payoutWallet</td><td>string</td></tr><tr><td>permission</td><td>string</td></tr><tr><td>programState</td><td>string</td></tr><tr><td>queue</td><td>string</td></tr><tr><td>queueAuthority</td><td>string</td></tr><tr><td>queueDataBuffer</td><td>string</td></tr><tr><td>recentBlockhashes</td><td>string</td></tr><tr><td>tokenAccount</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>vrf</td><td>string</td></tr></tbody></table>

#### args

| Field                     | Data Type |
| ------------------------- | --------- |
| counter                   | int       |
| failOpenOnAccountMismatch | bool      |
| leaseBump                 | int       |
| leaseBumps                | string    |
| loadAmount                | float     |
| mantissa                  | float     |
| nonce                     | int       |
| permissionBump            | int       |
| permissionBumps           | string    |
| proofEncoded              | string    |
| scale                     | int       |
| stateBump                 | int       |

#### switchboar&#x64;**.events**

This table has all the switchboard v2 historically parsed events.

| Field           | Column Type | Description                                  |
| --------------- | ----------- | -------------------------------------------- |
| block\_date     | date        | Event date                                   |
| block\_time     | timestamp   | The (estimated) time this block was produced |
| block\_slot     | bigint      | This block’s slot index in the ledger        |
| tx\_id          | string      | The first signature in the transaction       |
| dapp            | string      | Solana program address                       |
| event\_type     |             | The name of the event emitted                |
| [args](#args-1) | \<STRUCT>   | The arguments of the respective event        |

#### args

| Field                         | Data Type      |
| ----------------------------- | -------------- |
| alpha                         | string         |
| amount                        | bigint         |
| authorityPubkey               | string         |
| counter                       | bigint         |
| existingAmount                | bigint         |
| feedPubkey                    | string         |
| funder                        | string         |
| jobPubkeys                    | array\<string> |
| leasePubkey                   | string         |
| loadAmount                    | bigint         |
| oraclePubkey                  | string         |
| oraclePubkeys                 | array\<string> |
| [oracleValues](#oraclevalues) | array\<STRUCT> |
| queueAuthority                | string         |
| queuePubkey                   | string         |
| remainingFunds                | bigint         |
| roundSlot                     | bigint         |
| slot                          | bigint         |
| timestamp                     | timestamp      |
| [val](#val)                   | \<STRUCT>      |
| vrfPubkey                     | string         |
| walletPubkey                  | string         |

#### oracleValues

| Field    | Data Type |
| -------- | --------- |
| mantissa | double    |
| scale    | int       |

#### val

| Field    | Data Type |
| -------- | --------- |
| mantissa | double    |
| scale    | int       |


# Drift V2

On-Chain Perpetual & Spot Trading with Leverage.

#### drift\_v&#x32;**.txns**

This table has similar schema as of Solana [transactions](/data-tables/solana-data/transactions) table

#### drift\_v&#x32;**.parsed**

The table contains the parsed instructions data for [Drift V2](https://www.drift.trade/). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name               | Column Type    | Description                                                                                            |
| ------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date               | date           | Event date                                                                                             |
| block\_time               | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot               | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                      | string         | Solana program address                                                                                 |
| inner\_instruction\_index | int            | The order of inner instruction of an instruction in a txns                                             |
| input\_accounts           | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index        | int            | The order of the instruction in a txns                                                                 |
| instruction\_type         | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction    | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                    | string         | The first signature in the transaction                                                                 |
| args                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>admin</td><td>string</td></tr><tr><td>adminTokenAccount</td><td>string</td></tr><tr><td>authority</td><td>string</td></tr><tr><td>baseSpotMarket</td><td>string</td></tr><tr><td>driftSigner</td><td>string</td></tr><tr><td>filler</td><td>string</td></tr><tr><td>fillerStats</td><td>string</td></tr><tr><td>fromUser</td><td>string</td></tr><tr><td>insuranceFundStake</td><td>string</td></tr><tr><td>insuranceFundVault</td><td>string</td></tr><tr><td>liquidator</td><td>string</td></tr><tr><td>liquidatorStats</td><td>string</td></tr><tr><td>oracle</td><td>string</td></tr><tr><td>payer</td><td>string</td></tr><tr><td>perpMarket</td><td>string</td></tr><tr><td>quoteAssetMint</td><td>string</td></tr><tr><td>quoteSpotMarket</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>serumFulfillmentConfig</td><td>string</td></tr><tr><td>serumMarket</td><td>string</td></tr><tr><td>serumOpenOrders</td><td>string</td></tr><tr><td>serumProgram</td><td>string</td></tr><tr><td>sourceVault</td><td>string</td></tr><tr><td>spotMarket</td><td>string</td></tr><tr><td>spotMarketMint</td><td>string</td></tr><tr><td>spotMarketVault</td><td>string</td></tr><tr><td>srmVault</td><td>string</td></tr><tr><td>state</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>taker</td><td>string</td></tr><tr><td>takerStats</td><td>string</td></tr><tr><td>toUser</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>user</td><td>string</td></tr><tr><td>userStats</td><td>string</td></tr><tr><td>userTokenAccount</td><td>string</td></tr></tbody></table>

#### args

| Field                                 | Data Type      |
| ------------------------------------- | -------------- |
| subAccountId                          | int            |
| name                                  | array\<string> |
| marketIndex                           | int            |
| amount                                | double         |
| reduceOnly                            | bool           |
| [params](#params)                     | \<STRUCT>      |
| orderId                               | int            |
| orderId                               | int            |
| userOrderId                           | int            |
| marketType                            | string         |
| scale                                 | int            |
| direction                             | string         |
| takerOrderId                          | int            |
| fulfillmentType                       | string         |
| nShares                               | int            |
| sharesToBurn                          | int            |
| marginRatio                           | int            |
| marginTradingEnabled                  | bool           |
| delegate                              | string         |
| makerOrderId                          | int            |
| liquidatorMaxBaseAssetAmount          | int            |
| limitPrice                            | int            |
| assetMarketIndex                      | int            |
| liabilityMarketIndex                  | int            |
| liquidatorMaxLiabilityTransfer        | double         |
| perpMarketIndex                       | int            |
| spotMarketIndex                       | int            |
| liquidatorMaxPnlTransfer              | double         |
| quoteSpotMarketIndex                  | int            |
| marketIndexes                         | array\<int>    |
| expiryTs                              | int            |
| optimalUtilization                    | int            |
| optimalBorrowRate                     | int            |
| maxBorrowRate                         | int            |
| oracleSource                          | string         |
| initialAssetWeight                    | string         |
| maintenanceAssetWeight                | int            |
| initialLiabilityWeight                | int            |
| maintenanceLiabilityWeight            | int            |
| imfFactor                             | int            |
| liquidatorFee                         | int            |
| activeStatus                          | bool           |
| status                                | string         |
| ammBaseAssetReserve                   | double         |
| ammQuoteAssetReserve                  | double         |
| ammPeriodicity                        | int            |
| ammPegMultiplier                      | double         |
| marginRatioInitial                    | int            |
| marginRatioMaintenance                | int            |
| baseAssetReserve                      | double         |
| quoteAssetReserve                     | double         |
| sqrtK                                 | double         |
| newPegCandidate                       | double         |
| unrealizedMaxImbalance                | int            |
| maxRevenueWithdrawPerPeriod           | int            |
| quoteMaxInsurance                     | int            |
| ifLiquidationFee                      | int            |
| insuranceFundUnstakingPeriod          | int            |
| withdrawGuardThreshold                | int            |
| userIfFactor                          | int            |
| totalIfFactor                         | int            |
| revenueSettlePeriod                   | int            |
| assetTier                             | string         |
| maxTokenDeposits                      | int            |
| stepSize                              | int            |
| tickSize                              | int            |
| orderSize                             | int            |
| ordersEnabled                         | bool           |
| contractTier                          | string         |
| unrealizedPnlImfFactor                | int            |
| unrealizedInitialAssetWeight          | int            |
| unrealizedMaintenanceAssetWeight      | int            |
| concentrationScale                    | double         |
| curveUpdateIntensity                  | int            |
| lpCooldownTime                        | int            |
| [feeStructure](#feestructure)         | \<STRUCT>      |
| initialPctToLiquidate                 | int            |
| liquidationDuration                   | int            |
| [oracleGuardRails](#oracleguardrails) | \<STRUCT>      |
| settlementDuration                    | int            |
| baseSpread                            | int            |
| ammJitIntensity                       | int            |
| maxSlippageRatio                      | int            |
| maxFillReserveFraction                | int            |
| maxOpenInterest                       | double         |
| whitelistMint                         | string         |
| discountMint                          | string         |
| exchangeStatus                        | int            |
| minPerpAuctionDuration                | int            |
| defaultSpotAuctionDuration            | int            |

#### params

| Field             | Data Type |
| ----------------- | --------- |
| orderType         | string    |
| marketType        | string    |
| direction         | string    |
| userOrderId       | int       |
| baseAssetAmount   | double    |
| price             | double    |
| marketIndex       | int       |
| reduceOnly        | bool      |
| postOnly          | bool      |
| immediateOrCancel | bool      |
| maxTs             | int       |
| triggerPrice      | double    |
| triggerCondition  | string    |
| oraclePriceOffset | int       |
| auctionDuration   | int       |
| auctionStartPrice | double    |
| auctionEndPrice   | double    |

#### [feeStructure](#feetiers)

| Field                 | Data Type      |
| --------------------- | -------------- |
| [feeTiers](#feetiers) | array\<STRUCT> |

#### feeTiers

| Field                     | Data Type |
| ------------------------- | --------- |
| feeNumerator              | int       |
| feeDenominator            | int       |
| makerRebateDenominator    | int       |
| referrerRewardNumerator   | int       |
| referrerRewardDenominator | double    |
| refereeFeeNumerator       | int       |
| refereeFeeDenominator     | int       |

#### oracleGuardRails

| Field                               | Data Type |
| ----------------------------------- | --------- |
| [priceDivergence](#pricedivergence) | \<STRUCT> |
| [validity](#validity)               | \<STRUCT> |

#### priceDivergence

| Field                           | Data Type |
| ------------------------------- | --------- |
| markOracleDivergenceNumerator   | int       |
| markOracleDivergenceDenominator | int       |

#### validity

| Field                     | Data Type |
| ------------------------- | --------- |
| slotsBeforeStaleForAmm    | int       |
| slotsBeforeStaleForMargin | int       |
| confidenceIntervalMaxSize | int       |
| tooVolatileRatio          | int       |

#### drift\_v&#x32;**.events**

This table has all the drift v2 historically parsed events.

| Field           | Column Type | Description                                  |
| --------------- | ----------- | -------------------------------------------- |
| block\_date     | date        | Event date                                   |
| block\_time     | timestamp   | The (estimated) time this block was produced |
| block\_slot     | bigint      | This block’s slot index in the ledger        |
| tx\_id          | string      | The first signature in the transaction       |
| dapp            | string      | Solana program address                       |
| event\_type     |             | The name of the event emitted                |
| [args](#args-1) | \<STRUCT>   | The arguments of the respective event        |

#### args

| Field                                                     | Data Type   |
| --------------------------------------------------------- | ----------- |
| ts                                                        | int         |
| userAuthority                                             | string      |
| user                                                      | string      |
| subAccountId                                              | int         |
| name                                                      | array\<int> |
| referrer                                                  | string      |
| direction                                                 | string      |
| depositRecordId                                           | double      |
| amount                                                    | double      |
| marketIndex                                               | int         |
| marketDepositBalance                                      | double      |
| marketWithdrawBalance                                     | double      |
| marketCumulativeDepositInterest                           | double      |
| marketCumulativeBorrowInterest                            | double      |
| totalDepositsAfter                                        | double      |
| totalWithdrawsAfter                                       | double      |
| explanation                                               | string      |
| transferUser                                              | string      |
| depositBalance                                            | double      |
| cumulativeDepositInterest                                 | double      |
| borrowBalance                                             | double      |
| cumulativeBorrowInterest                                  | double      |
| optimalUtilization                                        | int         |
| optimalBorrowRate                                         | int         |
| maxBorrowRate                                             | int         |
| fundingPayment                                            | double      |
| baseAssetAmount                                           | double      |
| userLastCumulativeFunding                                 | double      |
| ammCumulativeFundingLong                                  | double      |
| ammCumulativeFundingShort                                 | double      |
| recordId                                                  | double      |
| fundingRate                                               | int         |
| fundingRateLong                                           | double      |
| fundingRateShort                                          | double      |
| cumulativeFundingRateLong                                 | double      |
| cumulativeFundingRateShort                                | double      |
| oraclePriceTwap                                           | int         |
| markPriceTwap                                             | int         |
| periodRevenue                                             | int         |
| baseAssetAmountWithAmm                                    | double      |
| baseAssetAmountWithUnsettledLp                            | double      |
| pegMultiplierBefore                                       | double      |
| baseAssetReserveBefore                                    | double      |
| quoteAssetReserveBefore                                   | double      |
| sqrtKBefore                                               | double      |
| pegMultiplierAfter                                        | double      |
| baseAssetReserveAfter                                     | double      |
| quoteAssetReserveAfter                                    | double      |
| sqrtKAfter                                                | double      |
| baseAssetAmountLong                                       | double      |
| baseAssetAmountShort                                      | double      |
| totalFee                                                  | double      |
| totalFeeMinusDistributions                                | double      |
| adjustmentCost                                            | double      |
| fillRecord                                                | double      |
| numberOfUsers                                             | int         |
| [order](#order)                                           | \<STRUCT>   |
| action                                                    | string      |
| actionExplanation                                         | string      |
| marketType                                                | string      |
| filler                                                    | string      |
| fillerReward                                              | int         |
| fillRecordId                                              | int         |
| baseAssetAmountFilled                                     | int         |
| quoteAssetAmountFilled                                    | int         |
| takerFee                                                  | int         |
| makerFee                                                  | int         |
| referrerReward                                            | int         |
| quoteAssetAmountSurplus                                   | int         |
| spotFulfillmentMethodFee                                  | double      |
| taker                                                     | string      |
| takerOrderId                                              | int         |
| takerOrderDirection                                       | string      |
| takerOrderBaseAssetAmount                                 | double      |
| takerOrderCumulativeBaseAssetAmountFilled                 | double      |
| takerOrderCumulativeQuoteAssetAmountFilled                | double      |
| maker                                                     | string      |
| makerOrderId                                              | int         |
| makerOrderDirection                                       | string      |
| makerOrderBaseAssetAmount                                 | double      |
| makerOrderCumulativeBaseAssetAmountFilled                 | double      |
| makerOrderCumulativeQuoteAssetAmountFilled                | double      |
| oraclePrice                                               | double      |
| nShares                                                   | int         |
| deltaBaseAssetAmount                                      | int         |
| deltaQuoteAssetAmount                                     | int         |
| pnl                                                       | double      |
| liquidationType                                           | string      |
| liquidator                                                | string      |
| marginRequirement                                         | double      |
| totalCollateral                                           | double      |
| marginFreed                                               | int         |
| liquidationId                                             | int         |
| bankrupt                                                  | bool        |
| canceledOrderIds                                          | array\<int> |
| [liquidatePerp](#liquidateperp)                           | \<STRUCT>   |
| [liquidateSpot](#liquidatespot)                           | \<STRUCT>   |
| [liquidateBorrowForPerpPnl](#liquidateborrowforperppnl)   | \<STRUCT>   |
| [liquidatePerpPnlForDeposit](#liquidateperppnlfordeposit) | \<STRUCT>   |
| [perpBankruptcy](#perpbankruptcy)                         | \<STRUCT>   |
| [spotBankruptcy](#spotbankruptcy)                         | \<STRUCT>   |
| quoteAssetAmountAfter                                     | int         |
| quoteEntryAmount                                          | int         |
| settlePrice                                               | int         |
| spotMarketIndex                                           | int         |
| perpMarketIndex                                           | int         |
| userIfFactor                                              | int         |
| totalIfFactor                                             | int         |
| vaultAmountBefore                                         | int         |
| insuranceVaultAmountBefore                                | int         |
| totalIfSharesBefore                                       | double      |
| totalIfSharesAfter                                        | double      |
| ifSharesBefore                                            | double      |
| userIfSharesBefore                                        | double      |
| ifSharesAfter                                             | double      |
| userIfSharesAfter                                         | double      |

#### order

| Field                     | Data Type   |
| ------------------------- | ----------- |
| slot                      | int         |
| price                     | int         |
| baseAssetAmount           | double      |
| baseAssetAmountFilled     | int         |
| quoteAssetAmountFilled    | int         |
| triggerPrice              | int         |
| auctionStartPrice         | int         |
| auctionEndPrice           | int         |
| maxTs                     | int         |
| oraclePriceOffset         | int         |
| orderId                   | int         |
| marketIndex               | int         |
| status                    | string      |
| orderType                 | string      |
| marketType                | string      |
| userOrderId               | int         |
| existingPositionDirection | string      |
| direction                 | string      |
| reduceOnly                | bool        |
| postOnly                  | bool        |
| immediateOrCancel         | bool        |
| triggerCondition          | string      |
| auctionDuration           | int         |
| padding                   | array\<int> |

#### liquidatePerp

| Field             | Data Type |
| ----------------- | --------- |
| marketIndex       | int       |
| oraclePrice       | int       |
| quoteAssetAmount  | double    |
| lpShares          | int       |
| fillRecordId      | int       |
| userOrderId       | int       |
| liquidatorOrderId | int       |
| liquidatorFee     | int       |
| ifFee             | int       |

#### liquidateSpot

| Field                | Data Type |
| -------------------- | --------- |
| assetMarketIndex     | int       |
| assetPrice           | double    |
| liabilityMarketIndex | int       |
| liabilityPrice       | int       |
| liabilityTransfer    | double    |
| ifFee                | int       |

#### liquidateBorrowForPerpPnl

| Field                | Data Type |
| -------------------- | --------- |
| perpMarketIndex      | int       |
| marketOraclePrice    | int       |
| pnlTransfer          | double    |
| liabilityMarketIndex | int       |
| liabilityPrice       | int       |
| liabilityTransfer    | double    |

#### liquidatePerpPnlForDeposit

| Field             | Data Type |
| ----------------- | --------- |
| perpMarketIndex   | int       |
| marketOraclePrice | int       |
| pnlTransfer       | double    |
| assetMarketIndex  | int       |
| assetPrice        | int       |
| assetTransfer     | double    |

#### perpBankruptcy

| Filed                      | Data Type |
| -------------------------- | --------- |
| marketIndex                | int       |
| pnl                        | double    |
| ifPayment                  | int       |
| clawbackUser               | string    |
| clawbackUserPayment        | double    |
| cumulativeFundingRateDelta | double    |

#### spotBankruptcy

| Filed                          | Data Type |
| ------------------------------ | --------- |
| marketIndex                    | int       |
| borrowAmount                   | double    |
| ifPayment                      | double    |
| cumulativeDepositInterestDelta | double    |


# Tulip Protocol

Tulip Protocol is the first yield aggregation platform built on Solana with auto-compounding vault strategies.

#### tuli&#x70;**.txns**

This table has similar schema as of Solana [transactions](/data-tables/solana-data/transactions) table

#### tuli&#x70;**.vault**

The table contains the parsed instructions data for [Tulip V2 Vault](https://tulip-protocol.gitbook.io/tulip-protocol/tulip-autovaults/v2-vaults). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                        | Column Type    | Description                                                                                            |
| ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                        | date           | Event date                                                                                             |
| block\_time                        | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                        | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                               | string         | Solana program address                                                                                 |
| inner\_instruction\_index          | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                 | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                  | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction             | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                             | string         | The first signature in the transaction                                                                 |
| args                               | string         | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Data Type</th></tr></thead><tbody><tr><td>authority</td><td>string</td></tr><tr><td>management</td><td>string</td></tr><tr><td>vault</td><td>string</td></tr><tr><td>vaultPda</td><td>string</td></tr><tr><td>vaultStakerAccount</td><td>string</td></tr><tr><td>farmAccount</td><td>string</td></tr><tr><td>farmStakeTokenAccount</td><td>string</td></tr><tr><td>cropAccount</td><td>string</td></tr><tr><td>cropRewardTokenAccount</td><td>string</td></tr><tr><td>vaultHarvesterAccount</td><td>string</td></tr><tr><td>vaultRewardTokenAccount</td><td>string</td></tr><tr><td>underlyingCompoundQueue</td><td>string</td></tr><tr><td>feeCollectorTokenAccount</td><td>string</td></tr><tr><td>sharesMint</td><td>string</td></tr><tr><td>atrixFarmProgram</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>clock</td><td>string</td></tr></tbody></table>

#### tuli&#x70;**.farming**

The table contains the parsed instructions data for [Tulip Farming](https://tulip-protocol.gitbook.io/tulip-protocol/leveraged-yield-farming/opening-a-position). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Field                                | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-1) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args)                        | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

#### input accounts

| Field                                  | Data Type |
| -------------------------------------- | --------- |
| ammAuthority                           | string    |
| ammId                                  | string    |
| ammOpenOrders                          | string    |
| ammQuantitiesOrTargetOrders            | string    |
| aquaFarmProgram                        | string    |
| authority                              | string    |
| authorityTokenAccount                  | string    |
| authorityTulipTokenAccount             | string    |
| baseTokenAccount                       | string    |
| borrowAuthorizer                       | string    |
| clock                                  | string    |
| coinDepositReserveAccount              | string    |
| coinDestinationTokenAccount            | string    |
| coinReserveLiquidityFeeReceiver        | string    |
| coinReserveLiquidityOracle             | string    |
| coinSourceReserveLiquidityTokenAccount | string    |
| coinSourceTokenAccount                 | string    |
| coinWallet                             | string    |
| convertAuthority                       | string    |
| convertAuthorityDd                     | string    |
| derivedLendingMarketAuthority          | string    |
| dexProgram                             | string    |
| farmDdTokenMint                        | string    |
| farmTokenMint                          | string    |
| fundingTokenAccount                    | string    |
| global                                 | string    |
| globalBaseDdTokenVault                 | string    |
| globalBaseTokenVault                   | string    |
| globalFarm                             | string    |
| globalFarmDd                           | string    |
| globalRewardDdTokenVault               | string    |
| globalRewardTokenVault                 | string    |
| lendingMarket                          | string    |
| lendingMarketAccount                   | string    |
| lendingProgram                         | string    |
| levFarmCoinTokenAccount                | string    |
| levFarmPcTokenAccount                  | string    |
| leveragedFarm                          | string    |
| leveragedUserFarm                      | string    |
| liquidatorBaseAccount                  | string    |
| liquidatorLpAccount                    | string    |
| liquidatorQuoteAccount                 | string    |
| liquidityProgramId                     | string    |
| lpMintAddress                          | string    |
| lpPythPriceAccount                     | string    |
| lpTokenAccount                         | string    |
| market                                 | string    |
| obligationLiquidity                    | string    |
| obligationVaultAddress                 | string    |
| orcaUserFarm                           | string    |
| pcDepositReserveAccount                | string    |
| pcDestinationTokenAccount              | string    |
| pcReserveLiquidityFeeReceiver          | string    |
| pcReserveLiquidityOracle               | string    |
| pcSourceReserveLiquidityTokenAccount   | string    |
| pcSourceTokenAccount                   | string    |
| pcWallet                               | string    |
| poolAuthority                          | string    |
| poolCoinTokenAccount                   | string    |
| poolId                                 | string    |
| poolLpTokenAccount                     | string    |
| poolPcTokenAccount                     | string    |
| poolRewardATokenAccount                | string    |
| poolRewardBTokenAccount                | string    |
| pythPriceAccount                       | string    |
| quoteTokenAccount                      | string    |
| raySwap                                | string    |
| receivingTokenAccount                  | string    |
| removeLiquidity                        | string    |
| rent                                   | string    |
| reserveLiquidityFeeReceiver            | string    |
| serumAsks                              | string    |
| serumBids                              | string    |
| serumCoinVaultAccount                  | string    |
| serumEventQueue                        | string    |
| serumMarket                            | string    |
| serumPcVaultAccount                    | string    |
| serumProgramId                         | string    |
| serumVaultSigner                       | string    |
| solfarmVaultProgram                    | string    |
| sourceReserveLiquidityTokenAccount     | string    |
| stakeProgramId                         | string    |
| swapOrLiquidityProgramId               | string    |
| systemProgram                          | string    |
| tokenProgram                           | string    |
| tokenProgramId                         | string    |
| userBalanceAccount                     | string    |
| userBalanceMetadata                    | string    |
| userBaseTokenAccount                   | string    |
| userFarm                               | string    |
| userFarmDd                             | string    |
| userFarmDdTokenAccount                 | string    |
| userFarmObligation                     | string    |
| userFarmOwner                          | string    |
| userFarmTokenAccount                   | string    |
| userInfoAccount                        | string    |
| userLpTokenAccount                     | string    |
| userObligationLiquidation              | string    |
| userRewardATokenAccount                | string    |
| userRewardBTokenAccount                | string    |
| userRewardDdTokenAccount               | string    |
| userRewardTokenAccount                 | string    |
| userTransferAuthority                  | string    |
| userTulipRewardMetadata                | string    |
| userTulipTokenAccount                  | string    |
| vault                                  | string    |
| vaultAccount                           | string    |
| vaultPda                               | string    |
| vaultPdaAccount                        | string    |
| vaultProgram                           | string    |
| vaultSigner                            | string    |
| vaultTulipTokenAccount                 | string    |
| vaultUserAccount                       | string    |
| withdrawFarm                           | string    |

#### args

| Field                       | Data Type      |
| --------------------------- | -------------- |
| borrowAmount                | double         |
| borrowToken                 | double         |
| coinAmount                  | double         |
| coinBorrowAmount            | double         |
| [depositArgs](#depositargs) | STRUCT         |
| farmProgramId               | string         |
| [harvestArgs](#harvestargs) | STRUCT         |
| metaNonce                   | int            |
| nonce                       | int            |
| obligationIndex             | int            |
| order                       | int            |
| pcAmount                    | double         |
| pcBorrowAmount              | double         |
| queueAuthority              | string         |
| reserves                    | array\<string> |

#### depositArgs

| Field        | Data Type |
| ------------ | --------- |
| accountNonce | int       |
| metaNonce    | int       |
| nonce        | int       |

#### harvestArgs

| Field       | Data Type |
| ----------- | --------- |
| metaNonce   | int       |
| nonce       | int       |
| rewardNonce | int       |

#### tuli&#x70;**.lending**

The table contains the parsed instructions data for [Tulip Lending](https://tulip-protocol.gitbook.io/tulip-protocol/lending/lending-reserves). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-2) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args-1)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input accounts

| Field                                  | Data Type |
| -------------------------------------- | --------- |
| authority                              | string    |
| derivedLendingMarketAuthority          | string    |
| destinationCollateralTokenAccount      | string    |
| destinationLiquidityTokenAccount       | string    |
| lendingMarketAccount                   | string    |
| reserveAccount                         | string    |
| reserveCollateralSPLTokenMint          | string    |
| reserveLiquidityOracleAccount          | string    |
| reserveLiquiditySupplySPLTokenAccount  | string    |
| reserveLiquiditySupplySPLTokenAccount. | string    |
| sourceCollateralTokenAccount           | string    |
| sourceLiquidityTokenAccount            | string    |
| sysvar                                 | string    |
| tokenProgramId                         | string    |

#### args

| Field              | Data Type |
| ------------------ | --------- |
| collateral\_amount | double    |
| liquidity\_amount  | double    |

#### tuli&#x70;**.staking**

The table contains the parsed instructions data for [Tulip Staking.](https://tulip-protocol.gitbook.io/tulip-protocol/tulip-dao/staking) Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-3) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args-2)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input accounts

| Field                 | Data Type |
| --------------------- | --------- |
| rent                  | string    |
| sTokenFrom            | string    |
| sTokenFromAuthority   | string    |
| sTokenMint            | string    |
| sTokenTo              | string    |
| stakingAccount        | string    |
| systemProgram         | string    |
| tokenFrom             | string    |
| tokenFromAuthority    | string    |
| tokenLockVault        | string    |
| tokenMint             | string    |
| tokenProgram          | string    |
| tokenTo               | string    |
| tokenToAuthority      | string    |
| tokenVault            | string    |
| userStakingAccount    | string    |
| userTulipTokenAccount | string    |

#### args

| Field            | Data Type |
| ---------------- | --------- |
| amount           | double    |
| index            | int       |
| nonceLockVault   | int       |
| nonceStaking     | int       |
| nonceUserStaking | int       |
| nonceVault       | int       |

#### tuli&#x70;**.info**

The table contains the info data for [Tulip Lending](https://github.com/sol-farm/solfarm-sdk/blob/84f4c49d427ec71b597488f76ec1eac305c2b17a/src/constants/lending_info.json). Data related to loan\_to\_value\_ratio, liquidation\_threshold, liquidity\_supply\_token\_mint, collateral\_token\_mint, etc. is available here.

| Column Name                             | Data Type |
| --------------------------------------- | --------- |
| name                                    | string    |
| account                                 | string    |
| liquidity\_supply\_token\_mint          | string    |
| liquidity\_supply\_token\_account       | string    |
| liquidity\_fee\_receiver                | string    |
| collateral\_token\_mint                 | string    |
| collateral\_token\_supply               | string    |
| destination\_collateral\_token\_account | string    |
| quote\_token\_mint                      | string    |
| platform\_fees                          | bigint    |
| [config](#config)                       | STRUCT    |

#### config

| Field                      | Data Type |
| -------------------------- | --------- |
| degen\_borrow\_rate        | bigint    |
| degen\_utilization\_rate   | bigint    |
| [fees](#fees)              | STRUCT    |
| liquidation\_bonus         | bigint    |
| liquidation\_threshold     | bigint    |
| loan\_to\_value\_ratio     | bigint    |
| max\_borrow\_rate          | bigint    |
| min\_borrow\_rate          | bigint    |
| optimal\_borrow\_rate      | bigint    |
| optimal\_utilization\_rate | bigint    |

#### fees

| Field                 | Data Type |
| --------------------- | --------- |
| borrow\_fee\_wad      | bigint    |
| flash\_loan\_fee\_wad | bigint    |
| host\_fee\_percentage | bigint    |


# AllDomains

The Decentralized Protocol for Your Web3 ID Create and Collect Domains With Ease!

#### alldomain&#x73;**.txns**

This table has similar schema as of Solana [transactions](/data-tables/solana-data/transactions) table

#### alldomain&#x73;**.**&#x6E;ame\_house

The table contains the parsed instructions data for AllDomains name house program. Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                        | Column Type    | Description                                                                                            |
| ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                        | date           | Event date                                                                                             |
| block\_time                        | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                        | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                               | string         | Solana program address                                                                                 |
| inner\_instruction\_index          | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                 | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                  | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction             | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                             | string         | The first signature in the transaction                                                                 |
| [args](#args)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Data Type</th></tr></thead><tbody><tr><td>nameParentAccount</td><td>string</td></tr><tr><td>collectionMint</td><td>string</td></tr><tr><td>mintAtaAccount</td><td>string</td></tr><tr><td>reverseNameAccount</td><td>string</td></tr><tr><td>nftOwner</td><td>string</td></tr><tr><td>owner</td><td>string</td></tr><tr><td>nameClassAccount</td><td>string</td></tr><tr><td>authority</td><td>string</td></tr><tr><td>nameClass</td><td>string</td></tr><tr><td>tokenDestination</td><td>string</td></tr><tr><td>nameOwner</td><td>string</td></tr><tr><td>tokenSource</td><td>string</td></tr><tr><td>nameHouseNftAta</td><td>string</td></tr><tr><td>ataAccount</td><td>string</td></tr><tr><td>tokenMetadataProgram</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>nftRecord</td><td>string</td></tr><tr><td>metadataAccount</td><td>string</td></tr><tr><td>instructionSysvarAccount</td><td>string</td></tr><tr><td>tldHouse</td><td>string</td></tr><tr><td>nameHouse</td><td>string</td></tr><tr><td>tldState</td><td>string</td></tr><tr><td>collectionMetadata</td><td>string</td></tr><tr><td>altNameServiceProgram</td><td>string</td></tr><tr><td>splTokenProgram</td><td>string</td></tr><tr><td>mintAccount</td><td>string</td></tr><tr><td>edition</td><td>string</td></tr><tr><td>collectionMasterEditionAccount</td><td>string</td></tr><tr><td>nameParent</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>ataProgram</td><td>string</td></tr><tr><td>editionAccount</td><td>string</td></tr><tr><td>feePayer</td><td>string</td></tr><tr><td>nameAccount</td><td>string</td></tr></tbody></table>

#### args

| Field                 | Data Type      |
| --------------------- | -------------- |
| collectionName        | string         |
| tld                   | string         |
| collectionUri         | string         |
| collectionMintBump    | int            |
| nameHouseBump         | int            |
| [creators](#creators) | array\<STRUCT> |
| sfbp                  | int            |
| tsBump                | int            |
| thBump                | int            |
| shdwAccount           | string         |
| mintBump              | int            |
| hashedName            | array\<int>    |
| nameAccountBump       | int            |
| nftRecordBump         | int            |
| offset                | int            |
| data                  | array\<int>    |

#### creators

| Field           |         |
| --------------- | ------- |
| address         | string  |
| verified        | boolean |
| percentageShare | int     |

#### alldomains.name\_service

The table contains the parsed instructions data for AllDomains name service program. Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Field                                | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-1) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args)                        | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

#### input accounts

|                   |        |
| ----------------- | ------ |
| refundTarget      | string |
| nameOwner         | string |
| parentNameAccount | string |
| nameAccount       | string |
| payerAccount      | string |
| systemProgram     | string |
| owner             | string |
| parentNameOwner   | string |
| nameClassAccount  | string |

#### args

| Field           | Data Type   |
| --------------- | ----------- |
| hashedName      | array\<int> |
| space           | int         |
| expiresAt       | int         |
| offset          | int         |
| data            | array\<int> |
| nameAccountBump | int         |
| newOwner        | string      |
| newSize         | int         |

#### alldomains.tld\_house

The table contains the parsed instructions data for AllDomains tld house program. Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-2) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args-1)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input accounts

| Field                    | Data Type |
| ------------------------ | --------- |
| payer                    | string    |
| treasuryManager          | string    |
| ataProgram               | string    |
| allValidationProgram     | string    |
| refundTarget             | string    |
| nameClass                | string    |
| systemProgram            | string    |
| reverseNameAccount       | string    |
| nameOwner                | string    |
| authority                | string    |
| splTokenProgram          | string    |
| nameServiceProgram       | string    |
| tokenMint                | string    |
| mainDomain               | string    |
| feePayer                 | string    |
| tldHouse                 | string    |
| instructionSysvarAccount | string    |
| newAuthority             | string    |
| nameParent               | string    |
| fundsPubkey              | string    |
| tldState                 | string    |
| nameAccount              | string    |

#### args

| Field                 | Data Type   |
| --------------------- | ----------- |
| bump                  | int         |
| price                 | int         |
| tokenPrice            | int         |
| tldOrigin             | string      |
| tld                   | string      |
| thBump                | int         |
| tsBump                | int         |
| hashedName            | array\<int> |
| [settings](#settings) | struct      |
| name                  | string      |
| space                 | int         |
| reverseAccHashedName  | array\<int> |
| tmBump                | int         |
| rnaBump               | int         |
| nameParentBump        | int         |
| nameAccountBump       | int         |
| tokenMint             | string      |
| buyingPaused          | boolean     |
| initPaused            | boolean     |
| psLen                 | int         |
| zeroResize            | boolean     |
| pricingSchemes        | \<STRUCT>   |
| version               | string      |
| renewableConfigs      | \<STRUCT>   |
| durationRate          | int         |
| treasuryManager       | string      |
| tldRegistryPubkey     | string      |

&#x20;

**settings**

| Field                 | Data Type   |
| --------------------- | ----------- |
| isWeb2                | boolean     |
| reserved              | array\<int> |
| purchaseBasis         | string      |
| collectionMint        | string      |
| isRenewable           | boolean     |
| [creators](#creators) | \<STRUCT>   |
| isNonTransferable     | boolean     |

**creators**

<table><thead><tr><th width="374">Field </th><th>Data Type</th></tr></thead><tbody><tr><td>address</td><td>string</td></tr><tr><td>share</td><td>int</td></tr></tbody></table>

####

**pricingSchemes**

| Field   | Data Type   |
| ------- | ----------- |
| mint    | string      |
| pricing | array\<int> |

**renewableConfigs**

|             |     |
| ----------- | --- |
| minDuration | int |
| maxDuration | int |

#### alldomains.tld\_manager

The table contains the parsed instructions data for AllDomains tld manager program. Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-3) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args-2)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input accounts

| Field                          | Data Type |
| ------------------------------ | --------- |
| newAuthority                   | string    |
| nameHouse                      | string    |
| nameHouseNftAta                | string    |
| tldManagerState                | string    |
| tldHouseProgram                | string    |
| mintAccount                    | string    |
| collectionMetadata             | string    |
| editionAccount                 | string    |
| tldManagerConfig               | string    |
| tokenMint                      | string    |
| nftOwner                       | string    |
| rent                           | string    |
| tldState                       | string    |
| splTokenProgram                | string    |
| instructionSysvarAccount       | string    |
| restrictedTld                  | string    |
| metadataAccount                | string    |
| mintAtaAccount                 | string    |
| nameAccount                    | string    |
| nameServiceProgram             | string    |
| systemProgram                  | string    |
| allMintAta                     | string    |
| collectionAta                  | string    |
| fundsPubkey                    | string    |
| nameClass                      | string    |
| allMintAccount                 | string    |
| collectionMint                 | string    |
| treasuryManager                | string    |
| edition                        | string    |
| nameHouseProgram               | string    |
| ataProgram                     | string    |
| collectionMasterEditionAccount | string    |
| tldPool                        | string    |
| authority                      | string    |
| tokenMetadataProgram           | string    |
| nameParent                     | string    |
| tldHouse                       | string    |
| payer                          | string    |

#### args

| Field              | Data Type      |
| ------------------ | -------------- |
| collectionUri      | string         |
| tld                | string         |
| tlds               | array\<string> |
| nftCreators        | \<STRUCT>      |
| pricingPlans       | array\<STRUCT> |
| initIsPaused       | boolean        |
| mintingIsPaused    | boolean        |
| fundsPubkey        | string         |
| nftShdwStorage     | string         |
| uri                | string         |
| ncLen              | int            |
| ppLen              | int            |
| zeroResize         | boolean        |
| newAuthority       | string         |
| pricingPlan        | \<STRUCT>      |
| urlPrefix          | string         |
| tsBump             | int            |
| thBump             | int            |
| hashedName         | array\<int>    |
| settings           | \<STRUCT>      |
| collectionName     | string         |
| collectionMintBump | int            |
| nameHouseBump      | int            |
| creators           | \<STRUCT>      |
| sfbp               | int            |
| shdwAccount        | string         |

**nftCreators**

| Field           | Data Type |
| --------------- | --------- |
| address         | string    |
| percentageShare | double    |

**pricingPlans**

|              |           |
| ------------ | --------- |
| mintingPrice | int       |
| tokenMint    | string    |
| planType     | \<STRUCT> |

**planType**

|        |           |
| ------ | --------- |
| name   | string    |
| fields | \<STRUCT> |

#### fields

|                     |     |
| ------------------- | --- |
| platform\_share     | int |
| tld\_creator\_share | int |

**pricingPlan**

|              |           |
| ------------ | --------- |
| mintingPrice | int       |
| tokenMint    | string    |
| planType     | \<STRUCT> |

**planType**

|        |           |
| ------ | --------- |
| name   | string    |
| fields | \<STRUCT> |

#### fields

|                     |     |
| ------------------- | --- |
| platform\_share     | int |
| tld\_creator\_share | int |

**settings**

|                   |           |
| ----------------- | --------- |
| fixedFee          | int       |
| purchaseBasis     | string    |
| verifiedCreator   | string    |
| collectionMint    | string    |
| isRenewable       | boolean   |
| creators          | \<STRUCT> |
| isNonTransferable | boolean   |

**creators**

|         |        |
| ------- | ------ |
| address | string |
| share   | int    |

#### alldomain&#x73;**.tld\_pool**

The table contains the info data for AllDomains tld pool program. Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                        | Column Type    | Description                                                                                            |
| ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                        | date           | Event date                                                                                             |
| block\_time                        | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                        | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                               | string         | Solana program address                                                                                 |
| inner\_instruction\_index          | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                 | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                  | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction             | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                             | string         | The first signature in the transaction                                                                 |
| [args](#args)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>tldManagerState</td><td>string</td></tr><tr><td>allMintAta</td><td>string</td></tr><tr><td>tldHouse</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>authority</td><td>string</td></tr><tr><td>allMintAccount</td><td>string</td></tr><tr><td>platformTreasury</td><td>string</td></tr><tr><td>tokenMetadataProgram</td><td>string</td></tr><tr><td>tldManagerProgram</td><td>string</td></tr><tr><td>metadataAccount</td><td>string</td></tr><tr><td> restrictedTld</td><td>string</td></tr><tr><td>nameClass</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>splTokenProgram</td><td>string</td></tr><tr><td>signer</td><td>string</td></tr><tr><td>allBuyBackAccount</td><td>string</td></tr><tr><td>collectionMetadata</td><td>string</td></tr><tr><td>collectionMasterEditionAccount</td><td>string</td></tr><tr><td>nameParent</td><td>string</td></tr><tr><td>collectionMint</td><td>string</td></tr><tr><td>contributor</td><td>string</td></tr><tr><td>treasuryManager</td><td>string</td></tr><tr><td>poolContributor</td><td>string</td></tr><tr><td>nameAccount</td><td>string</td></tr><tr><td>tokenMint</td><td>string</td></tr><tr><td>distributor</td><td>string</td></tr><tr><td>tldPoolsState</td><td>string</td></tr><tr><td>nameServiceProgram</td><td>string</td></tr><tr><td>tldManagerConfig</td><td>string</td></tr><tr><td>authorityAta</td><td>string</td></tr><tr><td>poolAta</td><td>string</td></tr><tr><td>tldState</td><td>string</td></tr><tr><td>mintAccount</td><td>string</td></tr><tr><td>contributorAta</td><td>string</td></tr><tr><td>instructionSysvarAccount</td><td>string</td></tr><tr><td>associatedTokenProgram</td><td>string</td></tr><tr><td>tldPoolState</td><td>string</td></tr><tr><td>tldHouseProgram</td><td>string</td></tr><tr><td>tldPoolConfig</td><td>string</td></tr></tbody></table>

#### args

| Field                    | Data Type   |
| ------------------------ | ----------- |
| isPaused                 | boolean     |
| tokenMint                | string      |
| platformTreasury         | string      |
| distributor              | string      |
| poolLockingAmount        | int         |
| unlockingUnsettledPeriod | int         |
| unlockingPeriod          | int         |
| softEntryLimit           | int         |
| settleLimit              | int         |
| lowerLimit               | int         |
| upperLimit               | int         |
| newAuthority             | string      |
| tld                      | string      |
| lockedAmount             | int         |
| pricingScheme            | \<STRUCT>   |
| thBump                   | int         |
| tsBump                   | int         |
| tmBump                   | int         |
| hashedName               | array\<int> |
| totalPayouts             | int         |

**pricingScheme**

| Field   | Data Type   |
| ------- | ----------- |
| mint    | string      |
| pricing | array\<int> |


# Whirlpool

Whirpool is an open-source concentrated liquidity AMM contract on the Solana blockchain.

#### whirlpool.parsed

The table contains the parsed instructions data for orca's [whirlpools](https://www.orca.so/whirlpools). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name               | Column Type    | Description                                                                                            |
| ------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date               | date           | Event date                                                                                             |
| block\_time               | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot               | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                      | string         | Solana program address                                                                                 |
| inner\_instruction\_index | int            | The order of inner instruction of an instruction in a txns                                             |
| input\_accounts           | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index        | int            | The order of the instruction in a txns                                                                 |
| instruction\_type         | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction    | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                    | string         | The first signature in the transaction                                                                 |
| args                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>associatedTokenProgram</td><td>string</td></tr><tr><td>funder</td><td>string</td></tr><tr><td>metadataProgram</td><td>string</td></tr><tr><td>metadataUpdateAuth</td><td>string</td></tr><tr><td>oracle</td><td>string</td></tr><tr><td>owner</td><td>string</td></tr><tr><td>position</td><td>string</td></tr><tr><td>positionAuthority</td><td>string</td></tr><tr><td>positionMetadataAccount</td><td>string</td></tr><tr><td>positionMint</td><td>string</td></tr><tr><td>positionTokenAccount</td><td>string</td></tr><tr><td>receiver</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>rewardOwnerAccount</td><td>string</td></tr><tr><td>rewardVault</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>tickArray0</td><td>string</td></tr><tr><td>tickArray1</td><td>string</td></tr><tr><td>tickArray2</td><td>string</td></tr><tr><td>tickArrayLower</td><td>string</td></tr><tr><td>tickArrayUpper</td><td>string</td></tr><tr><td>tokenAuthority</td><td>string</td></tr><tr><td>tokenOwnerAccountA</td><td>string</td></tr><tr><td>tokenOwnerAccountB</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>tokenVaultA</td><td>string</td></tr><tr><td>tokenVaultB</td><td>string</td></tr><tr><td>whirlpool</td><td>string</td></tr></tbody></table>

#### args

| Field                  | Data Type |
| ---------------------- | --------- |
| aToB                   | boolean   |
| amount                 | bigint    |
| amountSpecifiedIsInput | boolean   |
| bumps                  | \<struct> |
| liquidityAmount        | bigint    |
| otherAmountThreshold   | double    |
| rewardIndex            | int       |
| sqrtPriceLimit         | double    |
| tickLowerIndex         | bigint    |
| tickUpperIndex         | bigint    |
| tokenMaxA              | bigint    |
| tokenMaxB              | bigint    |
| tokenMinA              | bigint    |
| tokenMinB              | bigint    |

#### bumps

| Field        | Data Type |
| ------------ | --------- |
| metadataBump | int       |
| positionBump | int       |


# GooseFX

A full suite DeFi platform to trade crypto, derivatives, NFTs, and single sided liquidity pools with yield farming.

#### goose.parsed

The table contains the parsed instructions data for [goosefx](https://www.goosefx.io/). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name               | Column Type    | Description                                                                                            |
| ------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date               | date           | Event date                                                                                             |
| block\_time               | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot               | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                      | string         | Solana program address                                                                                 |
| inner\_instruction\_index | int            | The order of inner instruction of an instruction in a txns                                             |
| input\_accounts           | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index        | int            | The order of the instruction in a txns                                                                 |
| instruction\_type         | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction    | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                    | string         | The first signature in the transaction                                                                 |
| args                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>accounts</td><td>array&#x3C;string></td></tr><tr><td>controller</td><td>string</td></tr><tr><td>feeCollector</td><td>string</td></tr><tr><td>feeCollectorAta</td><td>string</td></tr><tr><td>liabilityVaultIn</td><td>string</td></tr><tr><td>liabilityVaultOut</td><td>string</td></tr><tr><td>liquidityAccount</td><td>string</td></tr><tr><td>pair</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>rtVault</td><td>string</td></tr><tr><td>ssl</td><td>string</td></tr><tr><td>sslIn</td><td>string</td></tr><tr><td>sslOut</td><td>string</td></tr><tr><td>swappedLiabilityVaultIn</td><td>string</td></tr><tr><td>swappedLiabilityVaultOut</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>userInAta</td><td>string</td></tr><tr><td>userOutAta</td><td>string</td></tr><tr><td>userRtAta</td><td>string</td></tr><tr><td>userWallet</td><td>string</td></tr></tbody></table>

#### args

| Field           | Data Type |
| --------------- | --------- |
| amount          | bigint    |
| amountIn        | bigint    |
| minOut          | bigint    |
| withdrawPercent | bigint    |


# Invariant

The Invariant protocol is a peer-to-peer system for exchanging assets on the Solana blockchain.

#### invarian&#x74;**.txns**

This table has similar schema as of Solana [transactions](/data-tables/solana-data/transactions) table

#### invariant.parsed

The table contains the parsed instructions data for [invariant](https://invariant.app/swap). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name               | Column Type    | Description                                                                                            |
| ------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date               | date           | Event date                                                                                             |
| block\_time               | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot               | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                      | string         | Solana program address                                                                                 |
| inner\_instruction\_index | int            | The order of inner instruction of an instruction in a txns                                             |
| input\_accounts           | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index        | int            | The order of the instruction in a txns                                                                 |
| instruction\_type         | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction    | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                    | string         | The first signature in the transaction                                                                 |
| args                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>accountX</td><td>string</td></tr><tr><td>accountY</td><td>string</td></tr><tr><td>admin</td><td>string</td></tr><tr><td>feeTier</td><td>string</td></tr><tr><td>lastPosition</td><td>string</td></tr><tr><td>lowerTick</td><td>string</td></tr><tr><td>owner</td><td>string</td></tr><tr><td>payer</td><td>string</td></tr><tr><td>pool</td><td>string</td></tr><tr><td>position</td><td>string</td></tr><tr><td>positionList</td><td>string</td></tr><tr><td>programAuthority</td><td>string</td></tr><tr><td>removedPosition</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>reserveX</td><td>string</td></tr><tr><td>reserveY</td><td>string</td></tr><tr><td>state</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>tick</td><td>string</td></tr><tr><td>tickmap</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>tokenX</td><td>string</td></tr><tr><td>tokenY</td><td>string</td></tr><tr><td>upperTick</td><td>string</td></tr></tbody></table>

#### args

| Field                                     | Data Type |
| ----------------------------------------- | --------- |
| amount                                    | bigint    |
| byAmountIn                                | bool      |
| index                                     | bigint    |
| [liquidityDelta](#liquiditydelta)         | STRUCT    |
| lowerTickIndex                            | int       |
| [slippageLimitLower](#slippagelimitlower) | STRUCT    |
| [slippageLimitUpper](#slippagelimitupper) | STRUCT    |
| sqrtPriceLimit                            | double    |
| tickSpacing                               | int       |
| upperTickIndex                            | int       |
| xToY                                      | bool      |

#### liquidityDelta

| Field | Data Type |
| ----- | --------- |
| v     | double    |

#### slippageLimitLower

| Field | Data Type |
| ----- | --------- |
| v     | double    |

#### slippageLimitUpper

| Field | Data Type |
| ----- | --------- |
| v     | double    |


# Squads Protocol

The multisig standard you were looking for on Solana.

#### squads.txns

This table has similar schema as of Solana [transactions](/data-tables/solana-data/transactions) table

#### squads.parsed

The table contains the parsed instructions data for [squads](https://squads.so/). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name               | Column Type    | Description                                                                                            |
| ------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date               | date           | Event date                                                                                             |
| block\_time               | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot               | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                      | string         | Solana program address                                                                                 |
| inner\_instruction\_index | int            | The order of inner instruction of an instruction in a txns                                             |
| input\_accounts           | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index        | int            | The order of the instruction in a txns                                                                 |
| instruction\_type         | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction    | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                    | string         | The first signature in the transaction                                                                 |
| args                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>creator</td><td>string</td></tr><tr><td>instruction</td><td>string</td></tr><tr><td>member</td><td>string</td></tr><tr><td>multisig</td><td>string</td></tr><tr><td>multisigAuth</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>transaction</td><td>string</td></tr></tbody></table>

#### args

| Field                                       | Data Type      |
| ------------------------------------------- | -------------- |
| accountList                                 | double         |
| authorityIndex                              | int            |
| createKey                                   | string         |
| [incomingInstruction](#incominginstruction) | \<STRUCT>      |
| members                                     | array\<string> |
| meta                                        | string         |
| newMember                                   | string         |
| oldMember                                   | string         |
| threshold                                   | int            |

#### incomingInstruction

| Field         | Data Type |
| ------------- | --------- |
| [keys](#keys) | \<STRUCT> |
| programId     | string    |
|               |           |

#### keys

| Field      | Data Type |
| ---------- | --------- |
| isSigner   | bool      |
| isWritable | bool      |
| pubkey     | string    |


# xNFT Backpack

The multisig standard you were looking for on Solana.

#### squads.txns

This table has similar schema as of Solana [transactions](/data-tables/solana-data/transactions) table

#### squads.parsed

The table contains the parsed instructions data for [squads](https://squads.so/). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name               | Column Type    | Description                                                                                            |
| ------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date               | date           | Event date                                                                                             |
| block\_time               | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot               | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                      | string         | Solana program address                                                                                 |
| inner\_instruction\_index | int            | The order of inner instruction of an instruction in a txns                                             |
| input\_accounts           | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index        | int            | The order of the instruction in a txns                                                                 |
| instruction\_type         | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction    | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                    | string         | The first signature in the transaction                                                                 |
| args                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>creator</td><td>string</td></tr><tr><td>instruction</td><td>string</td></tr><tr><td>member</td><td>string</td></tr><tr><td>multisig</td><td>string</td></tr><tr><td>multisigAuth</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>transaction</td><td>string</td></tr></tbody></table>

#### args

| Field                                       | Data Type      |
| ------------------------------------------- | -------------- |
| accountList                                 | double         |
| authorityIndex                              | int            |
| createKey                                   | string         |
| [incomingInstruction](#incominginstruction) | \<STRUCT>      |
| members                                     | array\<string> |
| meta                                        | string         |
| newMember                                   | string         |
| oldMember                                   | string         |
| threshold                                   | int            |

#### incomingInstruction

| Field         | Data Type |
| ------------- | --------- |
| [keys](#keys) | \<STRUCT> |
| programId     | string    |
|               |           |

#### keys

| Field      | Data Type |
| ---------- | --------- |
| isSigner   | bool      |
| isWritable | bool      |
| pubkey     | string    |


# Sharky

Borrow and lend against your NFTs Instantly.

#### sharkyfi.txns

This table has similar schema as of Solana [transactions](/data-tables/solana-data/transactions) table

#### sharkyfi.parsed

The table contains the parsed instructions data for [sharky](https://sharky.fi/). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                        | Column Type    | Description                                                                                            |
| ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                        | date           | Event date                                                                                             |
| block\_time                        | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                        | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                               | string         | Solana program address                                                                                 |
| inner\_instruction\_index          | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                 | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                  | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction             | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                             | string         | The first signature in the transaction                                                                 |
| [args](#args)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>associatedTokenProgram</td><td>string</td></tr><tr><td>authority</td><td>string</td></tr><tr><td>borrower</td><td>string</td></tr><tr><td>borrowerCollateralAccount</td><td>string</td></tr><tr><td>collateralMint</td><td>string</td></tr><tr><td>collector</td><td>string</td></tr><tr><td>escrow</td><td>string</td></tr><tr><td>escrowCollateralTokenAccount</td><td>string</td></tr><tr><td>escrowTokenAccount</td><td>string</td></tr><tr><td>feeAuthority</td><td>string</td></tr><tr><td>instructionSysvarAccount</td><td>string</td></tr><tr><td>issuer</td><td>string</td></tr><tr><td>issuerCollateralTokenAccount</td><td>string</td></tr><tr><td>lender</td><td>string</td></tr><tr><td>lenderCollateralAccount</td><td>string</td></tr><tr><td>lenderValueTokenAccount</td><td>string</td></tr><tr><td>loan</td><td>string</td></tr><tr><td>metadata</td><td>string</td></tr><tr><td>mintCounter</td><td>string</td></tr><tr><td>mplTokenMetadataProgram</td><td>string</td></tr><tr><td>newEscrow</td><td>string</td></tr><tr><td>newEscrowCollateralTokenAccount</td><td>string</td></tr><tr><td>newLender</td><td>string</td></tr><tr><td>newLoan</td><td>string</td></tr><tr><td>nftList</td><td>string</td></tr><tr><td>orderBook</td><td>string</td></tr><tr><td>payer</td><td>string</td></tr><tr><td>programVersion</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>tokenManager</td><td>string</td></tr><tr><td>tokenManagerProgram</td><td>string</td></tr><tr><td>tokenManagerTokenAccount</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>valueMint</td><td>string</td></tr></tbody></table>

#### args

| Field                           | Data Type |
| ------------------------------- | --------- |
| [orderBookType](#orderbooktype) | \<STRUCT> |
| [apy](#apy)                     | \<STRUCT> |
| [loanTerms](#loanterms)         | \<STRUCT> |
| feePermillicentage              | int       |
| feeAuthority                    | string    |
| escrowBump                      | int       |
| principalLamports               | int       |
| [termsChoice](#termschoice)     | \<STRUCT> |
| expectedLoan                    | string    |
| nftListIndex                    | int       |
| editionNumber                   | int       |
| isProgrammable                  | bool      |
| isCollateralFrozen              | bool      |
| collectionName                  | string    |
| [mints](#mints)                 | \<STRUCT> |
| version                         | int       |

#### **orderBookType**&#x20;

| Field             | Data Type |
| ----------------- | --------- |
| name              | string    |
| [fields](#fields) | \<STRUCT> |

#### **fields**

| Field           | Data Type |
| --------------- | --------- |
| collection\_key | string    |
| list\_account   | \<STRUCT> |

#### **apy**

| Field             | Data Type |
| ----------------- | --------- |
| name              | string    |
| [fields](#fields) | \<STRUCT> |

#### **fields**

| Field | Data Type |
| ----- | --------- |
| apy   | int       |

#### **loanTerms**

| Field             | Data Type |
| ----------------- | --------- |
| name              | string    |
| [fields](#fields) | \<STRUCT> |

#### **fields**

| Field           | Data Type |
| --------------- | --------- |
| [terms](#terms) | \<STRUCT> |

#### **terms**

| Field             | Data Type |
| ----------------- | --------- |
| name              | string    |
| [fields](#fields) | \<STRUCT> |

#### fields

| Field    | Data Type |
| -------- | --------- |
| duration | string    |

#### **termsChoice**

| Field             | Data Type |
| ----------------- | --------- |
| name              | string    |
| [fields](#fields) | \<STRUCT> |

#### fields

| Field    | Data Type |
| -------- | --------- |
| duration | string    |

#### mints

| Field | Data Type |
| ----- | --------- |
| index | int       |
| mint  | string    |


# Frakt

Lending and borrowing for NFTs on Solana. Your bags + frakt = instant liquidity.

**frakt.txns**

This table has similar schema as of Solana [transactions](/data-tables/solana-data/transactions) table

#### frakt.bonds

The bonds table contains the parsed instructions data for [frakt-bonds](https://docs.frakt.xyz/frakt/) . Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                        | Column Type    | Description                                                                                            |
| ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                        | date           | Event date                                                                                             |
| block\_time                        | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                        | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                               | string         | Solana program address                                                                                 |
| inner\_instruction\_index          | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                 | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                  | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction             | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                             | string         | The first signature in the transaction                                                                 |
| [args](#args)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>adapterProgramSigner</td><td>string</td></tr><tr><td>admin</td><td>string</td></tr><tr><td>assetReceiver</td><td>string</td></tr><tr><td>assetReceiverTokenAccount</td><td>string</td></tr><tr><td>associatedTokenProgram</td><td>string</td></tr><tr><td>authorityAdapter</td><td>string</td></tr><tr><td>authorityAdapter</td><td>string</td></tr><tr><td>bondCollateralOrSolReceiverTokenAccount</td><td>string</td></tr><tr><td>bondProgramAuthority</td><td>string</td></tr><tr><td>collateralBox</td><td>string</td></tr><tr><td>collateralTokenAccount</td><td>string</td></tr><tr><td>collateralTokenMint</td><td>string</td></tr><tr><td>crossMintAmmPairFundsSolVault</td><td>string</td></tr><tr><td>editionInfo</td><td>string</td></tr><tr><td>fbond</td><td>string</td></tr><tr><td>fbondTokenMint</td><td>string</td></tr><tr><td>feeSolVault</td><td>string</td></tr><tr><td>feeTokenAccount</td><td>string</td></tr><tr><td>fraktMarket</td><td>string</td></tr><tr><td>fundsSolVault</td><td>string</td></tr><tr><td>fundsTokenAccount</td><td>string</td></tr><tr><td>hadeswapNftPairBox</td><td>string</td></tr><tr><td>hadeswapPair</td><td>string</td></tr><tr><td>hadeswapPairAssetReceiver</td><td>string</td></tr><tr><td>hadeswapPairFeeSolVault</td><td>string</td></tr><tr><td>hadeswapPairFundsSolVault</td><td>string</td></tr><tr><td>hadeswapPairNftsOwner</td><td>string</td></tr><tr><td>hadeswapPairVaultNftTokenAccount</td><td>string</td></tr><tr><td>hadeswapProgram</td><td>string</td></tr><tr><td>hadeswapProtocolFeeReceiver</td><td>string</td></tr><tr><td>hadoMarket</td><td>string</td></tr><tr><td>hadoRegistry</td><td>string</td></tr><tr><td>instructions</td><td>string</td></tr><tr><td>metadataInfo</td><td>string</td></tr><tr><td>metadataProgram</td><td>string</td></tr><tr><td>newVaultTokenAccount</td><td>string</td></tr><tr><td>nftMint</td><td>string</td></tr><tr><td>nftMintFirst</td><td>string</td></tr><tr><td>nftMintSecond</td><td>string</td></tr><tr><td>nftPairBox</td><td>string</td></tr><tr><td>nftPairBoxFirst</td><td>string</td></tr><tr><td>nftPairBoxSecond</td><td>string</td></tr><tr><td>nftUserTokenAccount</td><td>string</td></tr><tr><td>nftUserTokenAccountFirst</td><td>string</td></tr><tr><td>nftUserTokenAccountSecond</td><td>string</td></tr><tr><td>nftValidationAdapter</td><td>string</td></tr><tr><td>nftsOwner</td><td>string</td></tr><tr><td>oracleFloor</td><td>string</td></tr><tr><td>pair</td><td>string</td></tr><tr><td>pairAuthorityAdapterProgram</td><td>string</td></tr><tr><td>pairTokenMint</td><td>string</td></tr><tr><td>partialAdapterProgram</td><td>string</td></tr><tr><td>partialAssetReceiver</td><td>string</td></tr><tr><td>pool</td><td>string</td></tr><tr><td>poolFundsSolVault</td><td>string</td></tr><tr><td>protocolFeeReceiver</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>returnFundsOwner</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>tokenMint</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>user</td><td>string</td></tr><tr><td>userFbondTokenAccount</td><td>string</td></tr><tr><td>userTokenAccount</td><td>string</td></tr><tr><td>validation</td><td>string</td></tr><tr><td>validationAdapterProgram</td><td>string</td></tr><tr><td>validationWhitelist</td><td>string</td></tr><tr><td>vaultNftTokenAccount</td><td>string</td></tr><tr><td>vaultNftTokenAccountFirst</td><td>string</td></tr><tr><td>vaultNftTokenAccountSecond</td><td>string</td></tr><tr><td>vaultTokenAccount</td><td>string</td></tr><tr><td>whitelistEntry</td><td>string</td></tr><tr><td>whitelistedAddress</td><td>string</td></tr></tbody></table>

#### args

| Field                         | Data Type |
| ----------------------------- | --------- |
| [bumps](#bumps)               | \<STRUCT> |
| amountToDeposit               | int       |
| [params](#params)             | \<STRUCT> |
| newAmountToReturn             | int       |
| loanToValueFilter             | int       |
| durationFilter                | int       |
| maxReturnAmountFilter         | int       |
| bondFeatures                  | string    |
| bondingCurveType              | string    |
| pairType                      | string    |
| amountOfTokensToBuy           | int       |
| [marketParams](#marketparams) | \<STRUCT> |
| whitelistType                 | string    |
| maxAmountToPay                | string    |
| skipFailed                    | bool      |
| amountToBuy                   | int       |
| minAmountToGet                | int       |
| amountToSell                  | int       |
| amountOfTokensToWithdraw      | int       |
| amountToWithdraw              | int       |
| duration                      | int       |
| nftValidationWhitelistType    | string    |
| scopeType                     | string    |
| proof                         | int       |
| loanFeePoints                 | int       |
| solAmountToDeposit            | int       |
| solAmountToWithdraw           | int       |
| solAmountToBorrow             | int       |
| solAmountToRepay              | int       |

#### bumps

| Field                    | Data Type |
| ------------------------ | --------- |
| bondProgramAuthoritySeed | int       |
| returnFundsOwnerSeed     | int       |
| fundsSolVaultSeed        | int       |
| feeVaultSeed             | int       |
| nftsSeed                 | int       |

#### params

| Field          | Data Type |
| -------------- | --------- |
| amountToReturn | int       |
| bondDuration   | int       |
| delta          | string    |
| spotPrice      | int       |
| fee            | int       |

#### marketParams

| Field          | Data Type |
| -------------- | --------- |
| minBidCap      | int       |
| marketDecimals | int       |

#### frakt.lending

The bonds table contains the parsed instructions data for [frakt-lending](https://docs.frakt.xyz/frakt/) . Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-1) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args-1)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input accounts

| Fields                     |        |
| -------------------------- | ------ |
| admin                      | string |
| associatedTokenProgram     | string |
| attemptsNftMint            | string |
| authority                  | string |
| bank                       | string |
| collectionInfo             | string |
| communityPoolsAuthority    | string |
| creatorAddress             | string |
| deposit                    | string |
| editionInfo                | string |
| farm                       | string |
| farmAuthority              | string |
| farmTreasury               | string |
| farmer                     | string |
| feeAcc                     | string |
| fraktNftStakeAccount       | string |
| gemBank                    | string |
| gemBox                     | string |
| gemDepositReceipt          | string |
| gemFarm                    | string |
| gemMint                    | string |
| gemRarity                  | string |
| gemSource                  | string |
| identity                   | string |
| lendingStake               | string |
| liqOwner                   | string |
| liquidationLot             | string |
| liquidator                 | string |
| liquidityPool              | string |
| loan                       | string |
| lotTicket                  | string |
| metadataProgram            | string |
| nftAdminTokenAccount       | string |
| nftAttempts                | string |
| nftMint                    | string |
| nftUserTokenAccount        | string |
| pricingLookupAddress       | string |
| rent                       | string |
| rewardADestination         | string |
| rewardADestinationIdentity | string |
| rewardAMint                | string |
| rewardAPot                 | string |
| rewardBDestination         | string |
| rewardBDestinationIdentity | string |
| rewardBMint                | string |
| rewardBPot                 | string |
| royaltyAddress             | string |
| systemProgram              | string |
| tokenProgram               | string |
| user                       | string |
| vault                      | string |
| vaultNftTokenAccount       | string |

#### args

| Fields                | Data Type |
| --------------------- | --------- |
| bumpPoolsAuth         | int       |
| isPriceBased          | bool      |
| originalPriceFromUser | double    |
| loanToValue           | int       |
| nftPrice              | int       |
| discount              | int       |
| amount                | int       |
| [params](#params-1)   | \<STRUCT> |
| depositBump           | int       |
| gracePeriod           | int       |
| isWinning             | bool      |
| nftAttemptsBump       | int       |
| bumpAuth              | int       |

#### params

| Fields                  | Data Type |
| ----------------------- | --------- |
| loanToValue             | int       |
| collaterizationRate     | int       |
| royaltyFeeTime          | int       |
| royaltyFeePrice         | int       |
| expirationTime          | int       |
| isPriceBased            | bool      |
| id                      | int       |
| baseBorrowRate          | int       |
| variableSlope1          | int       |
| variableSlope2          | int       |
| utilizationRateOptimal  | int       |
| reserveFactor           | int       |
| borrowCommission        | int       |
| depositCommission       | int       |
| rewardInterestRateTime  | int       |
| rewardInterestRateTime  | int       |
| rewardInterestRatePrice | int       |
| feeInterestRatePrice    | int       |
| period                  | int       |
| bumpPoolsAuth           | int       |
| bumpAuth                | int       |
| bumpAuthVaultAuthority  | int       |
| bumpRarity              | int       |
| bumpFarmer              | int       |
| bumpGdr                 | int       |
| bumpGemBox              | int       |
| bumpVault               | int       |
| isDegod                 | bool      |
| bumpAuthAuthority       | int       |
| bumpTreasury            | int       |
| bumpPotA                | int       |
| bumpPotB                | int       |

#### frakt.raffle

The bonds table contains the parsed instructions data for [frakt-raffle](https://docs.frakt.xyz/frakt/) . Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-2) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args-2)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

#### input accounts

| Fields                    | Data Type |
| ------------------------- | --------- |
| admin                     | string    |
| adminNftTokenAccount      | string    |
| associatedTokenProgram    | string    |
| auction                   | string    |
| authorizationRulesProgram | string    |
| bondsProgramId            | string    |
| destTokenRecord           | string    |
| editionInfo               | string    |
| fbond                     | string    |
| instructions              | string    |
| liquidatingPda            | string    |
| metadataProgram           | string    |
| nftMetadata               | string    |
| nftMint                   | string    |
| nftOwner                  | string    |
| nftOwnerTokenAccount      | string    |
| ownerTokenRecord          | string    |
| participation             | string    |
| raffle                    | string    |
| receiver                  | string    |
| rent                      | string    |
| returnFundsOwner          | string    |
| solHandler                | string    |
| systemProgram             | string    |
| tokenProgram              | string    |
| user                      | string    |
| userNftTokenAccount       | string    |

#### args

| Fields                                  | Data Type |
| --------------------------------------- | --------- |
| raffleTime                              | int       |
| depositAmount                           | double    |
| [authorizationData](#authorizationdata) | \<STRUCT> |
| tickets                                 | int       |
| startPrice                              | int       |
| delta                                   | int       |
| deltaType                               | string    |
| denominator                             | int       |

#### **authorizationData**

| Fields              | Data Type |
| ------------------- | --------- |
| [payload](#payload) | \<STRUCT> |

#### payload

| Fields  | Data Type |
| ------- | --------- |
| name    | string    |
| payload | string    |

#### frakt.registry

The bonds table contains the parsed instructions data for [frakt-registry](https://docs.frakt.xyz/frakt/) . Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-3) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args-3)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input accounts

| Fields             | Data Type |
| ------------------ | --------- |
| admin              | string    |
| fraktMarket        | string    |
| oracle             | string    |
| rent               | string    |
| systemProgram      | string    |
| user               | string    |
| whitelistEntry     | string    |
| whitelistedAddress | string    |

#### args

| Fields             | Data Type   |
| ------------------ | ----------- |
| whitelistType      | string      |
| root               | array\<int> |
| oracleAuthority    | string      |
| oracleInfo         | string      |
| floor              | bigint      |
| newOracleAuthority | string      |
| newFloor           | bigint      |

#### fract.system.txns

The bonds table contains the parsed instructions data for [frakt-system-txns](https://docs.frakt.xyz/frakt/) . Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-4) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args-4)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input accounts

| Fields                    | Data Type |
| ------------------------- | --------- |
| allocated\_account        | string    |
| assigned\_account         | string    |
| base\_account             | string    |
| created\_account          | string    |
| funding\_account          | string    |
| new\_account              | string    |
| nonce\_account            | string    |
| nonce\_authority          | string    |
| recent\_blockhash\_sysvar | string    |
| recipient\_account        | string    |
| rent\_sysvar              | string    |

#### args

|             |        |
| ----------- | ------ |
| lamports    | int    |
| space       | int    |
| owner       | string |
| base        | string |
| seed        | string |
| authority   | string |
| from\_seed  | string |
| from\_owner | string |


# Flash

Asset backed trading with zero price impact & upto 100x leverage

**flash.txns**

This table has similar schema as of Solana [transactions](/data-tables/solana-data/transactions) table

#### flash.perpetuals

The perpetual table contains the parsed instructions data for [flash perpetuals](https://beast.flash.trade/). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                        | Column Type    | Description                                                                                            |
| ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                        | date           | Event date                                                                                             |
| block\_time                        | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                        | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                               | string         | Solana program address                                                                                 |
| inner\_instruction\_index          | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                 | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                  | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction             | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                             | string         | The first signature in the transaction                                                                 |
| [args](#args)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>dispensingCustody</td><td>string</td></tr><tr><td>feepayer</td><td>string</td></tr><tr><td>program</td><td>string</td></tr><tr><td>collateralOracleAccount</td><td>string</td></tr><tr><td>custody</td><td>string</td></tr><tr><td>transferAuthority</td><td>string</td></tr><tr><td>ixSysvar</td><td>string</td></tr><tr><td>receivingCustodyTokenAccount</td><td>string</td></tr><tr><td>feeCustodyTokenAccount</td><td>string</td></tr><tr><td>eventAuthority</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>custodyTokenMint</td><td>string</td></tr><tr><td>receivingFlpTokenAccount</td><td>string</td></tr><tr><td>receivingTokenAccount</td><td>string</td></tr><tr><td>flpStakeAccount</td><td>string</td></tr><tr><td>custodyOracleAccount</td><td>string</td></tr><tr><td>feeCustody</td><td>string</td></tr><tr><td>receivingCustody</td><td>string</td></tr><tr><td>pool</td><td>string</td></tr><tr><td>position</td><td>string</td></tr><tr><td>custodyTokenAccount</td><td>string</td></tr><tr><td>collectionMint</td><td>string</td></tr><tr><td>oracleAccount</td><td>string</td></tr><tr><td>targetOracleAccount</td><td>string</td></tr><tr><td>rewardCustody</td><td>string</td></tr><tr><td>nftMint</td><td>string</td></tr><tr><td>receivingAccount</td><td>string</td></tr><tr><td>fundingAccount</td><td>string</td></tr><tr><td>signer</td><td>string</td></tr><tr><td>targetCustody</td><td>string</td></tr><tr><td>feeDistributionTokenAccount</td><td>string</td></tr><tr><td>lpTokenAccount</td><td>string</td></tr><tr><td>market</td><td>string</td></tr><tr><td>perpetuals</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>stakedLpTokenAccount</td><td>string</td></tr><tr><td>authorizationRulesProgram</td><td>string</td></tr><tr><td>admin</td><td>string</td></tr><tr><td>dispensingCustodyOracleAccount</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>dispensingCustodyTokenAccount</td><td>string</td></tr><tr><td>perpetualsProgramData</td><td>string</td></tr><tr><td>upgradeAuthority</td><td>string</td></tr><tr><td>metadataAccount</td><td>string</td></tr><tr><td>collateralCustody</td><td>string</td></tr><tr><td>nftTokenAccount</td><td>string</td></tr><tr><td>authorizationRulesAccount</td><td>string</td></tr><tr><td>poolFlpTokenAccount</td><td>string</td></tr><tr><td>referralAccount</td><td>string</td></tr><tr><td>metadataProgram</td><td>string</td></tr><tr><td>multisig</td><td>string</td></tr><tr><td>fundingFlpTokenAccount</td><td>string</td></tr><tr><td>lpTokenMint</td><td>string</td></tr><tr><td>tradingAccount</td><td>string</td></tr><tr><td>perpetualsProgram</td><td>string</td></tr><tr><td>collateralCustodyTokenAccount</td><td>string</td></tr><tr><td>receivingCustodyOracleAccount</td><td>string</td></tr><tr><td>oracleAuthority</td><td>string</td></tr><tr><td>owner</td><td>string</td></tr></tbody></table>

#### args

| Field  | Data Type |
| ------ | --------- |
| Params | \<STRUCT> |

params

| Field               | Data Type      |
| ------------------- | -------------- |
| minSignatures       | int            |
| permissions         | \<STRUCT>      |
| name                | string         |
| maxAumUsd           | int            |
| metadataTitle       | string         |
| metadataSymbol      | string         |
| metadataUri         | string         |
| isStable            | bool           |
| depegAdjustment     | bool           |
| isVirtual           | bool           |
| oracle              | \<STRUCT>      |
| pricing             | \<STRUCT>      |
| fees                | \<STRUCT>      |
| borrowRate          | \<STRUCT>      |
| ratios              | array\<STRUCT> |
| side                | string         |
| correlation         | bool           |
| maxPayoffBps        | int            |
| customOracleAccount | string         |
| maxDivergenceBps    | int            |
| maxConfBps          | int            |
| maxPriceAgeSec      | int            |
| rewardThreshold     | int            |
| allowUngatedTrading | bool           |
| tradingDiscount     | list\<int>     |
| referralRebate      | list\<int>     |
| referralDiscount    | int            |
| voltageMultiplier   | \<STRUCT>      |
| oracleAuthority     | string         |
| stakingFeeShareBps  | int            |
| feeShareBps         | int            |
| amount              | int            |
| price               | int            |
| expo                | int            |
| conf                | int            |
| ema                 | int            |
| publishTime         | int            |
| time                | int            |
| amountIn            | int            |
| minAmountOut        | int            |
| useFeesPool         | bool           |
| minLpAmountOut      | int            |
| lpAmountIn          | int            |
| depositAmount       | int            |
| unstakeAmount       | int            |
| collectionIndex     | int            |
| priceWithSlippage   | \<STRUCT>      |
| collateralAmount    | int            |
| sizeAmount          | int            |
| privilege           | string         |
| collateralDelta     | int            |
| sizeDelta           | int            |
| collateral          | int            |
| size                | int            |
| useFeePool          | bool           |
| event\_name         | string         |
| fields              | \<STRUCT>      |

#### permissions

| Field                     | Data Type |
| ------------------------- | --------- |
| allowSwap                 | bool      |
| allowAddLiquidity         | bool      |
| allowRemoveLiquidity      | bool      |
| allowOpenPosition         | bool      |
| allowClosePosition        | bool      |
| allowCollateralWithdrawal | bool      |
| allowSizeChange           | bool      |
| allowLiquidation          | bool      |
| allowFlpStaking           | bool      |
| allowFeeDistribution      | bool      |
| allowUngatedTrading       | bool      |
| allowFeeDiscounts         | bool      |
| allowReferralRebates      | bool      |

#### oracle

| Field               | Data Type |
| ------------------- | --------- |
| oracleAccount       | string    |
| customOracleAccount | string    |
| oracleType          | string    |
| maxDivergenceBps    | int       |
| maxConfBps          | int       |
| maxPriceAgeSec      | int       |

#### pricing

| Field                | Data Type |
| -------------------- | --------- |
| tradeSpreadLong      | int       |
| tradeSpreadShort     | int       |
| swapSpread           | int       |
| minInitialLeverage   | int       |
| maxInitialLeverage   | int       |
| maxLeverage          | int       |
| minCollateralUsd     | int       |
| delaySeconds         | int       |
| maxUtilization       | int       |
| maxPositionLockedUsd | int       |
| maxTotalLockedUsd    | int       |

####

#### fees

| Field            | Data Type |
| ---------------- | --------- |
| mode             | string    |
| swapIn           | \<STRUCT> |
| swapOut          | \<STRUCT> |
| stableSwapIn     | \<STRUCT> |
| stableSwapOut    | \<STRUCT> |
| addLiquidity     | \<STRUCT> |
| removeLiquidity  | \<STRUCT> |
| openPosition     | int       |
| closePosition    | int       |
| removeCollateral | int       |

#### swapIn

| Field     | Data Type |
| --------- | --------- |
| minFee    | int       |
| targetFee | int       |
| maxFee    | int       |

####

#### swapOut

| Field     | Data Type |
| --------- | --------- |
| minFee    | int       |
| targetFee | int       |
| maxFee    | int       |

####

#### stableSwapIn

| Field     | Data Type |
| --------- | --------- |
| minFee    | int       |
| targetFee | int       |
| maxFee    | int       |

#### stableSwapOut

| Field     | Data Type |
| --------- | --------- |
| minFee    | int       |
| targetFee | int       |
| maxFee    | int       |

#### addLiquidity

| Field     | Data Type |
| --------- | --------- |
| minFee    | int       |
| targetFee | int       |
| maxFee    | int       |

#### removeLiquiduty

| Field     | Data Type |
| --------- | --------- |
| minFee    | int       |
| targetFee | int       |
| maxFee    | int       |

#### borrowRate

| Field              | Data Type |
| ------------------ | --------- |
| baseRate           | int       |
| slope1             | int       |
| slope2             | int       |
| optimalUtilization | int       |

#### ratios

| Field  | Data Type |
| ------ | --------- |
| target | int       |
| min    | int       |
| max    | int       |

**voltageMultiplier**

| Field   | Data Type |
| ------- | --------- |
| volume  | int       |
| rewards | int       |
| rebates | int       |

**priceWithSlippage**

| Field    | Data Type |
| -------- | --------- |
| price    | int       |
| exponent | int       |

#### fields

Whenever there is instruction type of 'events\_log' then events are getting emitted in instruction itself and the event type can be known from args.params.event\_name and the argument in the event can be fetched from args.params.field.

| Field            | Data Type |
| ---------------- | --------- |
| activated        | int       |
| owner            | string    |
| market           | string    |
| collateralAmount | int       |
| poolName         | string    |
| custodyId        | string    |
| amountIn         | string    |
| lpAmountOut      | int       |
| priceUsd         | int       |
| sizeAmount       | int       |
| sizeUsd          | int       |
| profitUsd        | int       |
| lossUsd          | int       |
| feeCollected     | int       |
| deactivated      | int       |
| sizeDelta        | int       |
| sizeDeltaUsd     | int       |
| settledReturns   | int       |
| deltaProfitUsd   | int       |
| deltaLossUsd     | int       |
| lpTokens         | int       |
| feeAmount        | int       |
| collateralUsd    | int       |
| lpAmountIn       | int       |
| custodyIdIn      | int       |
| custodyIdOut     | int       |
| amountOut        | int       |
| feeInAmount      | int       |
| feeOutAmount     | int       |

#### flash.perp\_composability

The perp\_composability table contains the parsed instructions data for [perpetual composability](https://beast.flash.trade/) . Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-1) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args-1)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input accounts

| Fields                         |        |
| ------------------------------ | ------ |
| tokenProgram                   | string |
| dispensingCustodyTokenAccount  | string |
| perpProgram                    | string |
| market                         | string |
| owner                          | string |
| perpetuals                     | string |
| transferAuthority              | string |
| positionPool                   | string |
| collateralCustodyTokenAccount  | string |
| eventAuthority                 | string |
| dispensingCustody              | string |
| ixSysvar                       | string |
| receivingAccount               | string |
| collateralCustody              | string |
| receivingCustodyTokenAccount   | string |
| targetOracleAccount            | string |
| dispensingCustodyOracleAccount | string |
| collateralOracleAccount        | string |
| fundingAccount                 | string |
| fundingAccount                 | string |
| receivingCustody               | string |
| position                       | string |
| systemProgram                  | string |
| swapPool                       | string |

#### args

| Field  | Data Type |
| ------ | --------- |
| params | \<STRUCT> |

#### params

| Fields                 | Data Type |
| ---------------------- | --------- |
| amountIn               | int       |
| minAmountOut           | bool      |
| openPriceWithSlippage  | \<STRUCT> |
| openSizeAmount         | int       |
| privilege              | string    |
| closePriceWithSlippage | \<STRUCT> |
| collateralDelta        | int       |

#### openPriceWiithSlippage

| Field    | Data Type |
| -------- | --------- |
| price    | int       |
| exponent | int       |

#### closePriceWithSlippage

| Field    | Data Type |
| -------- | --------- |
| price    | int       |
| exponent | int       |

####

####

####


# Helium

This People's Network represents a paradigm shift for decentralized wireless infrastructure.

**helium.txns**

This table has similar schema as of Solana [transactions](/data-tables/solana-data/transactions) table

#### helium.ciruit\_breaker

The table contains the parsed instructions data for helium [circuit breaker](https://www.helium.com/). Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                        | Column Type    | Description                                                                                            |
| ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                        | date           | Event date                                                                                             |
| block\_time                        | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                        | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                               | string         | Solana program address                                                                                 |
| inner\_instruction\_index          | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                 | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                  | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction             | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                             | string         | The first signature in the transaction                                                                 |
| [args](#args)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>mint</td><td>string</td></tr><tr><td>payer</td><td>string</td></tr><tr><td>mintAuthority</td><td>string</td></tr><tr><td>owner</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>to</td><td>string</td></tr><tr><td>authority</td><td>string</td></tr><tr><td>syatemProgram</td><td>string</td></tr><tr><td>circuitBreaker</td><td>string</td></tr><tr><td>tokenAccount</td><td>string</td></tr><tr><td>from</td><td>string</td></tr></tbody></table>

#### args

| Field         | Data Type |
| ------------- | --------- |
| authority     | string    |
| mintAuthority | string    |
| config        | \<STRUCT> |
| owner         | string    |
| amount        | int       |
| newAuthority  | int       |

#### config

| Field             | Data Type |
| ----------------- | --------- |
| windowSizeSeconds | int       |
| thresholdType     | string    |
| threshold         | int       |

#### helium.data\_credits

The  table contains the parsed instructions data for [data credits](https://www.helium.com/) on helium . Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-1) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args-1)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input accounts

| Fields                              |        |
| ----------------------------------- | ------ |
| burner                              | string |
| burnAccounts                        | string |
| destinationDelegatedDataCredits     | string |
| from                                | string |
| freezeAuthority                     | string |
| recipientTokenAccount               | string |
| burnAccounts.systemProgram          | string |
| accountPayer                        | string |
| burnAccounts.owner                  | string |
| registrar                           | string |
| subDaoEpochInfo                     | string |
| burnAccounts.burner                 | string |
| associatedTokenProgram              | string |
| circuitBreakerProgram               | string |
| fromAccount                         | string |
| escrowAccount                       | string |
| mintAuthority                       | string |
| dataCredits                         | string |
| circuitBreaker                      | string |
| dcMint                              | string |
| delegatedDataCredits                | string |
| burnAccounts.dcMint                 | string |
| hntMint                             | string |
| dao                                 | string |
| burnAccounts.associatedTokenProgram | string |
| payer                               | string |
| recipient                           | string |
| burnAccounts.tokenProgram           | string |
| tokenProgram                        | string |
| destinationSubDao                   | string |
| dcBurnAuthority                     | string |
| systemProgram                       | string |
| authority                           | string |
| hntPriceOracle                      | string |
| subDao                              | string |
| lazySigner                          | string |
| to                                  | string |
| heliumSubDaosProgram                | string |
| destinationEscrowAccount            | string |

#### args

| Fields         | Data Type |
| -------------- | --------- |
| authority      | string    |
| config         | \<STRUCT> |
| hntAmount      | int       |
| dcAmount       | int       |
| amount         | int       |
| routerKey      | string    |
| newAuthority   | string    |
| hntPriceOracle | string    |

#### config

| Field             | Data Type |
| ----------------- | --------- |
| windowSizeSeconds | int       |
| thresholdType     | string    |
| threshold         | int       |

#### helium.entity\_manager

The table contains the parsed instructions data for [entity manager](https://www.helium.com/) on helium . Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-1) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args-1)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### **input accounts**

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>authority</td><td>string</td></tr><tr><td>dcMint</td><td>string</td></tr><tr><td>updateAuthority</td><td>string</td></tr><tr><td>info</td><td>string</td></tr><tr><td>instruction</td><td>string</td></tr><tr><td>makerApproval</td><td>string</td></tr><tr><td>dataCreditsProgram</td><td>string</td></tr><tr><td>bubblegumSigner</td><td>string</td></tr><tr><td>refund</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>newTreeAuthority</td><td>string</td></tr><tr><td>dcFeePayer</td><td>string</td></tr><tr><td>hotspotOwner</td><td>string</td></tr><tr><td>payer</td><td>string</td></tr><tr><td>oldTreeAuthority</td><td>string</td></tr><tr><td>noEmitProgram</td><td>string</td></tr><tr><td>treeAuthority</td><td>string</td></tr><tr><td>tokenMetadataProgram</td><td>string</td></tr><tr><td>logWrapper</td><td>string</td></tr><tr><td>collection</td><td>string</td></tr><tr><td>dcBurner</td><td>string</td></tr><tr><td>eccVerifier</td><td>string</td></tr><tr><td>bubblegumProgram</td><td>string</td></tr><tr><td>dntBurner</td><td>string</td></tr><tr><td>masterEdition</td><td>string</td></tr><tr><td>newMerkleTree</td><td>string</td></tr><tr><td>maker</td><td>string</td></tr><tr><td>issuingAuthority</td><td>string</td></tr><tr><td>signer</td><td>string</td></tr><tr><td>recipientAccount</td><td>string</td></tr><tr><td>tokenAccount</td><td>string</td></tr><tr><td>subDao</td><td>string</td></tr><tr><td>metadata</td><td>string</td></tr><tr><td>programApproval</td><td>string</td></tr><tr><td>programApprover</td><td>string</td></tr><tr><td>keyToAsset</td><td>string</td></tr><tr><td>heliumSubDaosProgram</td><td>string</td></tr><tr><td>dao</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>activeDeviceAuthority</td><td>string</td></tr><tr><td>escrow</td><td>string</td></tr><tr><td>iotInfo</td><td>string</td></tr><tr><td>associatedTokenProgram</td><td>string</td></tr><tr><td>mint</td><td>string</td></tr><tr><td>entityCreator</td><td>string</td></tr><tr><td>dataOnlyConfig</td><td>string</td></tr><tr><td>collectionAuthority</td><td>string</td></tr><tr><td>dc</td><td>string</td></tr><tr><td>recipient</td><td>string</td></tr><tr><td>lazySigner</td><td>string</td></tr><tr><td>collectionMetadata</td><td>string</td></tr><tr><td>mobileInfo</td><td>string</td></tr><tr><td>rewardableEntityConfig</td><td>string</td></tr><tr><td>dataOnlyEscrow</td><td>string</td></tr><tr><td>dntPrice</td><td>string</td></tr><tr><td>collectionMasterEdition</td><td>string</td></tr><tr><td>compressionProgram</td><td>string</td></tr><tr><td>rent</td><td>string</td></tr><tr><td>merkleTree</td><td>string</td></tr><tr><td>dntMint</td><td>string</td></tr></tbody></table>

#### args

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>symbol</td><td>&#x3C;STRUCT></td></tr><tr><td>programId</td><td>string</td></tr><tr><td>issuingAuthority</td><td>string</td></tr><tr><td>name</td><td>string</td></tr><tr><td>metadataUrl</td><td>string</td></tr><tr><td>entityKey</td><td>array&#x3C;int></td></tr><tr><td>keySerialization</td><td>string</td></tr><tr><td>approverSeeds</td><td>array&#x3C;int></td></tr><tr><td>location</td><td>int</td></tr><tr><td>elevation</td><td>int</td></tr><tr><td>gain</td><td>int</td></tr><tr><td>isFullHotspot</td><td>bool</td></tr><tr><td>numLocationAsserts</td><td>int</td></tr><tr><td>dataHash</td><td>array&#x3C;int></td></tr><tr><td>creatorHash</td><td>array&#x3C;int></td></tr><tr><td>root</td><td>array&#x3C;int></td></tr><tr><td>index</td><td>int</td></tr><tr><td>newAuthority</td><td>string</td></tr><tr><td>maxDepth</td><td>int</td></tr><tr><td>maxBufferSize</td><td>int</td></tr><tr><td>authority</td><td>string</td></tr><tr><td>newTreeDepth</td><td>int</td></tr><tr><td>newTreeBufferSize</td><td>int</td></tr><tr><td>newTreeSpace</td><td>int</td></tr><tr><td>newTreeFeeLamports</td><td>int</td></tr><tr><td>isActive</td><td>bool</td></tr></tbody></table>

#### symbol

| Field    | Data Type |
| -------- | --------- |
| settings | \<STRUCT> |

#### settings

| Field | Data Type |
| ----- | --------- |
| name  | \<STRUCT> |

#### name

| Field | Data Type |
| ----- | --------- |
| field | \<STRUCT> |

#### field

| Fields                           | Data Type |
| -------------------------------- | --------- |
| min\_gain                        | string    |
| max\_gain                        | \<STRUCT> |
| full\_location\_staking\_fee     | int       |
| dataonly\_location\_staking\_fee | int       |

#### helium.lazy\_transactions

The  table contains the parsed instructions data for [lazy transactions](https://www.helium.com/) on helium . Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-1) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args-1)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input accounts

| Fields           | Data Type |
| ---------------- | --------- |
| block            | string    |
| payer            | string    |
| lazyTransactions | string    |
| systemProgram    | string    |
| authority        | string    |
| refund           | string    |
| canopy           | string    |
| lazySigner       | string    |

#### args

| Fields       | Data Type   |
| ------------ | ----------- |
| root         | array\<int> |
| name         | string      |
| authority    | string      |
| maxDepth     | int         |
| instructions | \<struct>   |
| signerSeeds  | array\<int> |
| index        | int         |
| offset       | int         |
| bytes        | array\<int> |

#### instructions

| Fields         | Data Type   |
| -------------- | ----------- |
| programIdIndex | int         |
| accounts       | array\<int> |
| data           | array\<int> |

#### helium.sub\_daos

The table contains the parsed instructions data for [sub doas](https://www.helium.com/) on helium . Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-1) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args-1)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input accounts

<table><thead><tr><th width="321">Fields</th><th></th></tr></thead><tbody><tr><td>threadPayer</td><td>string</td></tr><tr><td>treasuryManagementProgram</td><td>string</td></tr><tr><td>hntFreezeAuthority</td><td>string</td></tr><tr><td>mint</td><td>string</td></tr><tr><td>delegatorPoolCircuitBreaker</td><td>string</td></tr><tr><td>circuitBreaker</td><td>string</td></tr><tr><td>circuitBreakerProgram</td><td>string</td></tr><tr><td>targetVault</td><td>string</td></tr><tr><td>dntMint</td><td>string</td></tr><tr><td>treasuryCircuitBreaker</td><td>string</td></tr><tr><td>rewardsEscrow</td><td>string</td></tr><tr><td>registrar</td><td>string</td></tr><tr><td>positionAuthority</td><td>string</td></tr><tr><td>treasuryManagement</td><td>string</td></tr><tr><td>vsrProgram</td><td>string</td></tr><tr><td>clockwork</td><td>string</td></tr><tr><td>dao</td><td>string</td></tr><tr><td>daoEpochInfo</td><td>string</td></tr><tr><td>hntMint</td><td>string</td></tr><tr><td>issueThread</td><td>string</td></tr><tr><td>delegatorPool</td><td>string</td></tr><tr><td>dcMint</td><td>string</td></tr><tr><td>subDaoEpochInfo</td><td>string</td></tr><tr><td>targetDelegatedPosition</td><td>string</td></tr><tr><td>sourceDelegatedPosition</td><td>string</td></tr><tr><td>depositMint</td><td>string</td></tr><tr><td>dntCircuitBreaker</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>targetPosition</td><td>string</td></tr><tr><td>calculateThread</td><td>string</td></tr><tr><td>sourceVault</td><td>string</td></tr><tr><td>positionTokenAccount</td><td>string</td></tr><tr><td>payer</td><td>string</td></tr><tr><td>delegatorAta</td><td>string</td></tr><tr><td>position</td><td>string</td></tr><tr><td>genesisEndSubDaoEpochInfo</td><td>string</td></tr><tr><td>dntMintAuthority</td><td>string</td></tr><tr><td>associatedTokenProgram</td><td>string</td></tr><tr><td>treasury</td><td>string</td></tr><tr><td>sourcePosition</td><td>string</td></tr><tr><td>subDaoFreezeAuthority</td><td>string</td></tr><tr><td>hntCircuitBreaker</td><td>string</td></tr><tr><td>historyBuffer</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>authority</td><td>string</td></tr><tr><td>prevDaoEpochInfo</td><td>string</td></tr><tr><td>closingTimeSubDaoEpochInfo</td><td>string</td></tr><tr><td>subDao</td><td>string</td></tr><tr><td>accountPayer</td><td>string</td></tr><tr><td>activeDeviceAggregator</td><td>string</td></tr><tr><td>delegatedPosition</td><td>string</td></tr><tr><td>hntMintAuthority</td><td>string</td></tr><tr><td>hstPool</td><td>string</td></tr><tr><td>thread</td><td>string</td></tr></tbody></table>

#### args

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>emissionSchedule</td><td>&#x3C;STRUCT></td></tr><tr><td>authority</td><td>string</td></tr><tr><td>hstEmissionSchedule</td><td>&#x3C;STRUCT></td></tr><tr><td>netEmissionsCap</td><td>int</td></tr><tr><td>registrar</td><td>int</td></tr><tr><td>treasuryCurve</td><td>&#x3C;STRUCT></td></tr><tr><td>onboardingDcFee</td><td>int</td></tr><tr><td>dcBurnAuthority</td><td>string</td></tr><tr><td>delegatorRewardsPercent</td><td>int</td></tr><tr><td>onboardingDataOnlyDcFee</td><td>int</td></tr><tr><td>hstPool</td><td>string</td></tr><tr><td>activeDeviceAggregator</td><td>string</td></tr><tr><td>vehntDelegated</td><td>double</td></tr><tr><td>vehntLastCalculatedTs</td><td>float</td></tr><tr><td>vehntFallRate</td><td>float</td></tr><tr><td>dcBurned</td><td>int</td></tr><tr><td>bump</td><td>int</td></tr><tr><td>newAuthority</td><td>string</td></tr><tr><td>epoch</td><td>int</td></tr><tr><td>amount</td><td>int</td></tr><tr><td>kind</td><td>string</td></tr><tr><td>periods</td><td>int</td></tr></tbody></table>

#### emissionSchedule

| Fields            | Data Type |
| ----------------- | --------- |
| startUnixTime     | int       |
| emissionsPerEpoch | int       |

#### hstEmissionSchedule

| Fields        | Data Type |
| ------------- | --------- |
| startUnixTime | int       |
| percent       | int       |

#### treasuryCurve

| Fields | Data Type |
| ------ | --------- |
| name   | int       |
| fields | \<struct> |

#### fields

| Fields | Data Type |
| ------ | --------- |
| k      | float     |

#### helium.treasury\_management

The table contains the parsed instructions data for [treasury management](https://www.helium.com/) on helium . Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-1) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| [args](#args-1)                      | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input accounts

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>owner</td><td>string</td></tr><tr><td>circuitBreaker</td><td>string</td></tr><tr><td>treasuryManagement</td><td>string</td></tr><tr><td>associatedTokenProgram</td><td>string</td></tr><tr><td>payer</td><td>string</td></tr><tr><td>circuitBreakerProgram</td><td>string</td></tr><tr><td>authority</td><td>string</td></tr><tr><td>from</td><td>string</td></tr><tr><td>treasuryMint</td><td>string</td></tr><tr><td>supplyMint</td><td>string</td></tr><tr><td>treasury</td><td>string</td></tr><tr><td>mintAuthority</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>destTreasury</td><td>string</td></tr><tr><td>to</td><td>string</td></tr><tr><td>admin</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr></tbody></table>

#### args

| Fields               | Data Type |
| -------------------- | --------- |
| authority            | string    |
| curve                | \<struct> |
| freezeUnixTime       | int       |
| windowConfig         | \<struct> |
| amount               | int       |
| expectedOutputAmount | int       |

#### curve

| Fields | Data Type |
| ------ | --------- |
| name   | int       |
| fields | \<struct> |

#### fields

| Fields | Data Type |
| ------ | --------- |
| k      | float     |

#### windowConfig

| Fields            | Data Type |
| ----------------- | --------- |
| windowSizeSeconds | int       |
| thresholdType     | string    |
| threshold         | int       |

#### helium.voter\_stake\_registry

The table contains the parsed instructions data for [voter staking](https://www.helium.com/) on helium . Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-1) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| agrs\_fields                         | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input accounts

| Fields                  | Data Type |
| ----------------------- | --------- |
| tokenMetadataProgram    | string    |
| beneficiary             | string    |
| maxVoterWeightRecord    | string    |
| associatedTokenProgram  | string    |
| mint                    | string    |
| recipient               | string    |
| solDestination          | string    |
| metadata                | string    |
| realm                   | string    |
| tokenProgram            | string    |
| positionUpdateAuthority | string    |
| positionTokenAccount    | string    |
| sourcePosition          | string    |
| voterAuthority          | string    |
| sourceVault             | string    |
| voteRecord              | string    |
| voteRecord              | string    |
| vault                   | string    |
| tokenAccount            | string    |
| payer                   | string    |
| registrar               | string    |
| targetVault             | string    |
| governance              | string    |
| approver                | string    |
| proposal                | string    |
| depositMint             | string    |
| collection              | string    |
| fromTokenAccount        | string    |
| to                      | string    |
| masterEdition           | string    |
| positionAuthority       | string    |
| voterWeightRecord       | string    |
| destination             | string    |
| voterTokenOwnerRecord   | string    |
| realmGoverningTokenMint | string    |
| realmAuthority          | string    |
| position                | string    |
| depositToken            | string    |
| governanceProgramId     | string    |
| depositAuthority        | string    |
| toTokenAccount          | string    |
| collectionMetadata      | string    |
| from                    | string    |
| collectionMasterEdition | string    |
| targetPosition          | string    |
| rent                    | string    |

#### agrs\_fields

| Field      |           |
| ---------- | --------- |
| args       | \<struct> |
| timeOffset | int       |

#### args

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>positionUpdateAuthority</td><td>string</td></tr><tr><td>idx</td><td>string</td></tr><tr><td>digitShift</td><td>string</td></tr><tr><td>baselineVoteWeightScaledFactor</td><td>string</td></tr><tr><td>maxExtraLockupVoteWeightScaledFactor</td><td>string</td></tr><tr><td>genesisVotePowerMultiplier</td><td>string</td></tr><tr><td>genesisVotePowerMultiplierExpirationTs</td><td>string</td></tr><tr><td>lockupSaturationSecs</td><td>string</td></tr><tr><td>kind</td><td>string</td></tr><tr><td>periods</td><td>string</td></tr><tr><td>amount</td><td>string</td></tr><tr><td>owner</td><td>string</td></tr><tr><td>voterWeightAction</td><td>string</td></tr><tr><td>proposal</td><td>string</td></tr></tbody></table>

#### helium.lazy\_distributor

The table contains the parsed instructions data for [lazy distributor ](https://www.helium.com/)on helium . Data related to instruction type, executing account, account arguments, arguments, etc. is available here.

| Column Name                          | Column Type    | Description                                                                                            |
| ------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------ |
| block\_date                          | date           | Event date                                                                                             |
| block\_time                          | timestamp      | The (estimated) time this block was produced                                                           |
| block\_slot                          | bigint         | This block’s slot index in the ledger                                                                  |
| dapp                                 | string         | Solana program address                                                                                 |
| inner\_instruction\_index            | int            | The order of inner instruction of an instruction in a txns                                             |
| [input\_accounts](#input-accounts-1) | array\<string> | Ordered list of accounts to pass to the program                                                        |
| instruction\_index                   | int            | The order of the instruction in a txns                                                                 |
| instruction\_type                    | string         | Name of the function of a Solana program invoked via an instruction                                    |
| is\_inner\_instruction               | boolean        | Whether the respective instruction of a txns has an inner instruction                                  |
| tx\_id                               | string         | The first signature in the transaction                                                                 |
| agrs\_fields                         | \<STRUCT>      | The arguments passed to the invoked function. Generated after decoding the instructions data parameter |

Some columns in the above table needs to be explained a bit for better understanding. Let's go into what each one of them contains.

#### input accounts

<table><thead><tr><th width="374.3333333333333">Field</th><th>Column Type</th></tr></thead><tbody><tr><td>mint</td><td>string</td></tr><tr><td>recipientMintAccount</td><td>string</td></tr><tr><td>common.rewardsMint</td><td>string</td></tr><tr><td>oracle</td><td>string</td></tr><tr><td>recipient</td><td>string</td></tr><tr><td>merkleTree</td><td>string</td></tr><tr><td>common.rewardsEscrow</td><td>string</td></tr><tr><td>common.associatedTokenProgram</td><td>string</td></tr><tr><td>common.tokenProgram</td><td>string</td></tr><tr><td>circuitBreaker</td><td>string</td></tr><tr><td>payer</td><td>string</td></tr><tr><td>common.circuitBreaker</td><td>string</td></tr><tr><td>common.owner</td><td>string</td></tr><tr><td>common.destinationAccount</td><td>string</td></tr><tr><td>owner</td><td>string</td></tr><tr><td>systemProgram</td><td>string</td></tr><tr><td>common.circuitBreakerProgram</td><td>string</td></tr><tr><td>circuitBreakerProgram</td><td>string</td></tr><tr><td>rewardsMint</td><td>string</td></tr><tr><td>common.lazyDistributor</td><td>string</td></tr><tr><td>targetMetadata</td><td>string</td></tr><tr><td>lazyDistributor</td><td>string</td></tr><tr><td>associatedTokenProgram</td><td>string</td></tr><tr><td>tokenProgram</td><td>string</td></tr><tr><td>common.systemProgram</td><td>string</td></tr><tr><td>compressionProgram</td><td>string</td></tr><tr><td>common.payer</td><td>string</td></tr><tr><td>rewardsEscrow</td><td>string</td></tr><tr><td>common.recipient</td><td>string</td></tr></tbody></table>

#### args

| Fields         | Data Type   |
| -------------- | ----------- |
| authority      | string      |
| oracles        | \<struct>   |
| approver       | string      |
| windowConfig   | \<struct>   |
| dataHash       | array\<int> |
| root           | array\<int> |
| index          | int         |
| oracleIndex    | int         |
| currentRewards | int         |
|                |             |

#### oracles

| Field  | Data Type |
| ------ | --------- |
| oracle | string    |
| url    | string    |

#### windowConfig

| Fields            | Data Type |
| ----------------- | --------- |
| windowSizeSeconds | int       |
| thresholdType     | string    |
| threshold         | int       |


# Sample Dashboard

This page will help you understand and create a dashboard using the Top Ledger platform.

## Introduction

Top Ledger allows Web3 growth, analytics & data science teams to create powerful dashboards from decoded solana program data. Our backend infra pulls in raw data from the Solana blockchain and labels and indexes them into different tables on a daily basis.&#x20;

Let’s take an example of a project called ‘Project X’. Project X is a major DeFi project on Solana. We will calculate some important metrics for Project X and add them in a dashboard.

## Sample SQL Query

```sql
with cte_markets as (
    select 
        pd.input_accounts.market, 
        pd.input_accounts.baseMint,
        pd.input_accounts.quoteMint, 
        ts_base.symbol as baseMintName,
        ts_quote.symbol as quoteMintName,
        ts_quote.decimals
    from phoenix.parsed pd
    join token.solana_token ts_base on ts_base.address = pd.input_accounts.baseMint
    join token.solana_token ts_quote on ts_quote.address = pd.input_accounts.quoteMint
    where 1=1
    and pd.instruction_type = 'InitializeMarket'
)
, 
market_names as (
    select 
        market,
        baseMint,
        quoteMint,
        baseMintName || ' - ' || quoteMintName as marketName,
        decimals
    from cte_markets
)

select block_date,market, marketName, trades, sum(trades) over(order by block_date) as cum_trades
from 
(
select block_date,market, marketName,  count(distinct tx_id) as trades
from phoenix.parsed as p 
cross join unnest(args.market_events) as market_event
join market_names as m on p.args.header_fields.header.market = m.market
where 1=1
and instruction_type = 'Log'
and market_event = 'FillSummary'
and p.args.header_fields.header.market = '{{market}}'
and market_event.fields.total_quote_lots_filled > 0
group by 1,2,3
) as a 
order by 1 desc


```

## Trades

We will start with calculating number of trades on daily basis and weekly top five pools based on number of trades. The below widget shows total number of trades for project X.

<figure><img src="/files/sPqd7RUoLwpnLqg1ThLq" alt=""><figcaption><p>Total Number of Trades for Project X</p></figcaption></figure>

Also, in the widgets shown below you can see Trade trends along with weekly top 5 pools based on the number of trades for the project. On 11th Dec there was a spike in user activity which could be related to some internal or external event.&#x20;

It also shows all time top 5 pools based on number of trades.

<figure><img src="/files/hRAgYy2casLyNTez1931" alt=""><figcaption><p>Number of Trades and Top Pools for Project X.</p></figcaption></figure>

Let's go through the SQL code for the widgets you have seen so far. The query runs on parsed table available in the TL platform.

```sql
with cte_markets as (
    select 
        pd.input_accounts.market, 
        pd.input_accounts.baseMint,
        pd.input_accounts.quoteMint, 
        ts_base.symbol as baseMintName,
        ts_quote.symbol as quoteMintName,
        ts_quote.decimals
    from phoenix.parsed pd
    join token.solana_token ts_base on ts_base.address = pd.input_accounts.baseMint
    join token.solana_token ts_quote on ts_quote.address = pd.input_accounts.quoteMint
    where 1=1
    and pd.instruction_type = 'InitializeMarket'
)
,


market_names as (
    select 
        market,
        baseMint,
        quoteMint,
        baseMintName || ' - ' || quoteMintName as marketName,
        decimals
    from cte_markets
)
, 

daily_volumes_fees as (
    select  
        p.partition_0,
        p.args.header_fields.header.market as market,
        mn.marketName,
        mn.baseMint,
        mn.quoteMint,
        count(tx_id) as trades,
        sum(market_event.fields.total_quote_lots_filled / pow(10, mn.decimals)) as daily_volume,
        sum(market_event.fields.total_fee_in_quote_lots / pow(10, mn.decimals)) as daily_fees
    from phoenix.parsed as p
    cross join unnest(p.args.market_events) as market_event
    join market_names mn on mn.market = p.args.header_fields.header.market
    where 1=1
    and instruction_type =  'Log' 
    and market_event = 'FillSummary'
    and market_event.fields.total_quote_lots_filled > 0
    group by 1, 2, 3, 4,5
), 
volume_fees_in_usd as (
    select 
        date(dv.partition_0) as block_date,
        dv.market,
        dv.marketName,
        dv.baseMint,
        dv.quoteMint,
        trades,
        dv.daily_volume,
        dv.daily_fees,
        case 
            when dv.quoteMint in ('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB') then dv.daily_volume
            else dv.daily_volume * tp.price_in_usd
        end as daily_volume_usd,
        case 
            when dv.quoteMint in ('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB') then dv.daily_fees
            else dv.daily_fees * tp.price_in_usd
        end as daily_fees_usd
    from daily_volumes_fees dv
    left join tl_solana.prices tp on dv.quoteMint = tp.mint and date(dv.partition_0) = tp.block_date
), 

weekly as 
(
select date_trunc('week', block_date) as week,
       market, marketName,
       sum(trades) as weekly_trades,
       sum(daily_volume_usd) as weekly_volume_usd,
       sum(daily_fees_usd) as weekly_fees_usd
from volume_fees_in_usd
group by 1,2,3
)
,
ranked_markets as 
(
    select *,
        rank() over (partition by week order by weekly_volume_usd desc) as rank
    from weekly
)

select * 
from ranked_markets
where rank <= 5
order by week desc, weekly_volume_usd desc


```

We need to begin with extracting and organizing market details, such as base and quote tokens. Subsequently, it concatenates token names for clarity. Then we calculates daily trading volumes and fees for each market, considering the associated token decimals. These daily metrics are further converted into USD values based on token prices.&#x20;

The data is then aggregated on a weekly basis, summing up trades, volume, and fees. Finally, the markets are ranked weekly by trading volume in USD, and the top 5 markets are selected and displayed. This comprehensive analysis offers a snapshot of the most active markets on Solana, providing valuable insights into their weekly performance.

## Trade Volume and Fees

Now let’s calculate how much trade volume Project X is making. We will check the total volume and fees for trades per day and cumulative amount of the two metrics.  We can infer a lot of insights by relating this metric with real world events and can measure the impact.

<figure><img src="/files/Frhll7sXmGi1ULNNzbDG" alt=""><figcaption><p>Trade volume and Fees for ProjectX</p></figcaption></figure>

Here, we see 6 widgets. 1) Total trade volume, 2) daily trade volume, 3) cumulative trade volume,  4) total trade fees, 5) daily fees for trades, and 6)cumulative fees for trades. We can infer that the volume of fees is quite high and which in a way is a sign of good health and profits for the liquidity provider and for the projectX.

```sql
with cte_markets as (
    select 
        pd.input_accounts.market, 
        pd.input_accounts.baseMint,
        pd.input_accounts.quoteMint, 
        ts_base.symbol as baseMintName,
        ts_quote.symbol as quoteMintName,
        ts_quote.decimals
    from phoenix.parsed pd
    join token.solana_token ts_base on ts_base.address = pd.input_accounts.baseMint
    join token.solana_token ts_quote on ts_quote.address = pd.input_accounts.quoteMint
    where 1=1
    and pd.instruction_type = 'InitializeMarket'
)
, 
market_names as (
    select 
        market,
        baseMint,
        quoteMint,
        baseMintName || ' - ' || quoteMintName as marketName,
        decimals
    from cte_markets
), 

volumes_fees as (
    select  
        p.partition_0,
        quoteMint,
        count(tx_id) as trades,
        sum(market_event.fields.total_quote_lots_filled / pow(10, mn.decimals)) as daily_volume,
        sum(market_event.fields.total_fee_in_quote_lots / pow(10, mn.decimals)) as daily_fees
    from phoenix.parsed p
    cross join unnest(p.args.market_events) as market_event
    join market_names mn on mn.market = p.args.header_fields.header.market
    where 1=1
    and p.instruction_type = 'Log'
    and market_event = 'FillSummary'
    group by 1,2
), 
volume_fees_in_usd as (
    select 
        dv.partition_0,
        trades,
        dv.daily_volume,
        dv.daily_fees,
        case 
            when dv.quoteMint in ('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB') then dv.daily_volume
            else dv.daily_volume * tp.price_in_usd
        end as daily_volume_usd,
        case 
            when dv.quoteMint in ('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB') then dv.daily_fees
            else dv.daily_fees * tp.price_in_usd
        end as daily_fees_usd
    from volumes_fees dv
    left join tl_solana.prices tp on dv.quoteMint = tp.mint and date(dv.partition_0) = tp.block_date
)
,
daily_volume_fee_usd as 
(
select partition_0, 
      sum(trades) as trades,
      sum(daily_volume_usd) as daily_volume_usd,
      sum(daily_fees_usd) as daily_fees_usd
from volume_fees_in_usd
group by 1 
)



    select 
        partition_0,
        trades,
        daily_volume_usd,
        daily_fees_usd,
        sum(trades) over(order by partition_0) as cumulative_trades,
        sum(daily_volume_usd) over (order by partition_0) as cumulative_volume_usd,
        sum(daily_fees_usd) over (order by partition_0) as cumulative_fees_usd
    from daily_volume_fee_usd
    order by 1 desc
    
    

```

Here we starts with extracting and processing data related to ProjectX  markets. It involves several common table expressions (CTEs) to organize and aggregate the information. Then it calculates daily trade metrics, including the number of trades, daily volume, and daily fees in both native and USD denominations. Additionally, it computes cumulative metrics over time, providing a comprehensive view of market activity. The query draws data from various tables, such as phoenix.parsed, token.solana\_token, and tl\_solana.prices, utilizing their relationships to derive meaningful insights into ProjectX market performance.

## Market Analysis

As many platforms wants, here we will add some key metrics regarding specific markets provided to users by the ProjectX. This includes total number of trades, trade volume, fees generated, users participated in a particular market. As shown in the widget below are the numbers for SOL-USDC market on the ProjectX.

<figure><img src="/files/l23EQaxWIaecmiKrARSp" alt=""><figcaption><p>Various Numbers for SOL-USDC market on ProjectX</p></figcaption></figure>

Let’s go through the SQL code for how to calculate volume for Project X.

```sql
WITH
  buys AS (
        SELECT
        id,
        block_date,
        pre_balances,
        post_balances, 
        account_keys[1] as unique_wallet
        FROM "tl-solana-merged-data"."transactions"
            CROSS JOIN UNNEST(instructions) AS instruction
        WHERE 1=1
            AND success = True
            AND block_date >= date_trunc('day', now() - interval '30' day) 
            AND ( 
                    instruction.executing_account = 'JUP4Fb2cqiRUcaTHdrPC8h2gNsA2ETXiPDD33WcGuJB' -- program address of project X
        
                    --check in inner_instructions
                    OR  contains(transform(CAST(instruction.inner_instructions AS array<JSON>), x -> json_extract_scalar(x, '$.executing_account')), 'JUP4Fb2cqiRUcaTHdrPC8h2gNsA2ETXiPDD33WcGuJB') 
            )
        GROUP BY 1,2,3,4,5
    ),
buys_summed AS (
    SELECT
        id,
        block_date,
        SUM(IF(
            post_balances[i] - pre_balances[i] > 0,
            post_balances[i] - pre_balances[i],
            0
        )) * 1.0 / 1e9 AS sol_approx, -- 1 SOL = 10^9 lamports
        unique_wallet
    FROM buys
        CROSS JOIN UNNEST(pre_balances) WITH ORDINALITY AS b (pre_balance, i)
    GROUP BY id, block_date, unique_wallet
    ), vol_raw AS (
                    SELECT
                      date_trunc('day', block_date)  AS day,
                      SUM(sol_approx) AS sol,
                      COUNT(distinct unique_wallet) as unique_wallets
                    FROM buys_summed 
                    GROUP BY 1
        )
SELECT day
     , sol
     , unique_wallets
     , SUM(sol) over (order by day asc rows between unbounded preceding and current row) 
       AS cumulative_sol
FROM vol_raw
ORDER BY 1 DESC
```

Once again we will start with extracting and processing data related to ProjectX markets. It begins by identifying markets and their associated details, including base and quote tokens. Subsequently, it calculates daily trading volumes and fees for each market, converting them into USD based on token prices. The final result provides a comprehensive summary of daily and cumulative trading metrics for the specified markets, offering insights into market activity over time.

Here is the link to the detailed dashboard for your reference -

{% embed url="<https://analytics.topledger.xyz/tl/public/dashboards/knoPmkT1W0deT8txVQYw1daqqepjITZRZbvz1oft>" %}


# Integrate Topledger dashboards

Our new React dashboard, With a simple and easy-to-customize user interface to seamlessly blend into your existing layout, can be integrated easily on any platform.

### Introduction

`tl-dashboards` is a <mark style="color:blue;">npm</mark> package for integrating customized dashboards on front-end.

### Required Libraries

* react (`>=16.8.0`)
* react-dom (`>=16.8.0`)

### Using npm&#x20;

```
npm install tl-dashboards
```

### Using yarn&#x20;

```
yarn add tl-dashboards
```

### Add a few dependencies

```
yarn add @ant-design/icons
```

```
yarn add d3 d3-cloud
```

### Copy required fonts to `public/fonts` directory

1. fontawesome-webfont.woff2: <https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/fonts/fontawesome-webfont.woff2>
2. Material-Design-Iconic-Font.woff2: <https://cdnjs.cloudflare.com/ajax/libs/material-design-iconic-font/2.2.0/fonts/Material-Design-Iconic-Font.woff2>

The public font directory should look like this:

```
public
└── fonts
    ├── fontawesome-webfont.woff2
    └── Material-Design-Iconic-Font.woff2
```

### Usage

You can use render the dashboard component anywhere inside react dom.

You can follow the basic example given below:

```javascript
import TLDashboards from "tl-dashboards";

function App() {
  return (
    <div className="App">
      <TLDashboards
        client="switchboard"
        token="puWU5mljkjOTxHLoaaVM7rFpxhrm7lQw3SkphtLV"
      />
    </div>
  );
}

export default App;
```

### Dashboard Output

<figure><img src="/files/OL0Ty3ezNEc490CofN4M" alt=""><figcaption></figcaption></figure>

### Important classes

Below classes refer to different elements in dashboard component. You can add style to change the background, border, etc.

1. **`.public-dashboard-page`** Refers to the main component container div.
2. **`.widget-visualization`** Refers to the widget component container div. You can add style to change the background, border, etc.
3. **`.query-link > .visualization-name`** Refers to the name of widget in bold.
4. **`.query-link > :nth-child(2)`** Refers to sub-text for widget name.


# Supported DBs

Add Customer, Marketing, Product Usage, and Social Media Data to Seamlessly Combine with         On-Chain Insights.

<div align="left"><figure><img src="/files/NFqyDFuA2nQs5X4je1gg" alt=""><figcaption></figcaption></figure></div>


