# GraphQL Schema

## Basic Entiies

### Jetton Entity

```
    type Jetton {
        "Raw address of the jetton on the blockchain"
        address: String!
        "Bounceable address of the jetton on the blockchain"
        bounceableAddress: String!
        "Jetton symbol"
        symbol: String!
        "Jetton name"
        name: String!
        "Jetton decimals"
        decimals: Int!
        "Jetton image"
        image: String!
        "Jetton description"
        description: String!
        "Jetton wallet"
        wallet: String!
        "Jetton total supply across all pools that include this token"
        totalSupply: Float!
        "Transactions across all pools that include this token"
        txCount: Int!
        "Jetton volume across all pools that include this token in token units"
        volume: Float!
        "Jetton volume across all pools that include this token in USD"
        volumeUsd: Float!
        "Jetton fees across all pools that include this token in USD"
        feesUsd: Float!
        "Jetton TVL across all pools that include this token"
        totalValueLocked: Float!
        "Jetton TVL across all pools that include this token in USD"
        totalValueLockedUsd: Float!
        "Jetton price derived in TON"
        derivedTon: Float!
        "Jetton price derived in USD"
        derivedUsd: Float!
    }
```

### Pool Entity

```
    type Pool {
        "Raw address of the pool on the blockchain"
        address: String!
        "Pool name"
        name: String!
        "Pool internal ID"
        id: String!
        "Pool all time positions count"
        positionsCount: Int!
        "Pool Jetton 0"
        jetton0: Jetton!
        "Pool Jetton 1"
        jetton1: Jetton!
        "Pool creation unix"
        creationUnix: Int!
        "Pool admin address"
        adminAddress: String!
        "Pool last update time"
        lastUpdateTime: Date!
        "Was pool initialized"
        isInitialized: Boolean!
        "Pool last update unix"
        unix: Date!
        "Pool address"
        poolInfo: String!
        "Fee amount, where 1 = 0.001%"
        fee: Int!
        "In range liquidity"
        liquidity: String!
        "Current tick"
        tick: Int!
        "Pool tick spacing"
        tickSpacing: Int!
        "Pool current tick"
        priceSqrt: String!
        "Pool current APR"
        apr: Float
        "Tracker for global fee growth"
        feeGrowthGlobal0X128: String!
        "Tracker for global fee growth"
        feeGrowthGlobal1X128: String!
        "Jetton 0 per token1"
        jetton0Price: Float!
        "Jetton 1 per token0"
        jetton1Price: Float!
        "All time Jetton 0 swapped"
        volumeJetton0: Float!
        "All time Jetton 1 swapped"
        volumeJetton1: Float!
        "All time Jetton 0 fees generated"
        feesJetton0: Float!
        "All time Jetton 1 fees generated"
        feesJetton1: Float!
        "All time volume in USD"
        volumeUsd: Float!
        "All time fees generated in USD"
        feesUsd: Float!
        "24H Volume"
        volume24HUsd: Float!
        "24H generated fees"
        fees24HUsd: Float!
        "48H Volume"
        volume48HUsd: Float!
        "48H generated fees"
        fees48HUsd: Float!
        "All time transactions count"
        txCount: Int!
        "All time Jetton 0 collected fees"
        collectedFeesJetton0: Float!
        "All time Jetton 1 collected fees"
        collectedFeesJetton1: Float!
        "All time collected fees in USD"
        collectedFeesUsd: Float!
        "All time Jetton 0 TVL"
        totalValueLockedJetton0: Float!
        "All time Jetton 1 TVL"
        totalValueLockedJetton1: Float!
        "All time TVL in USD"
        totalValueLockedUsd: Float!
        "All time TVL in Ton"
        totalValueLockedTon: Float!
    }
```

### Position Entity

```
    type Position {
        "Position ID <position index in pool>:<pool adddress>"
        id: String!
        "Position owner"
        owner: String!
        "Position pool address"
        pool: String!
        "Position Jetton 0 entity"
        jetton0: Jetton!
        "Position Jetton 1 entity"
        jetton1: Jetton!
        "Position tick lower"
        tickLower: Int!
        "Position tick upper"
        tickUpper: Int!
        "Position current liquidity"
        liquidity: String!
        "Position current Jetton 0 amount"
        amount0: String!
        "Position current Jetton 1 amount"
        amount1: String!
        "Position initially deposited Jetton 0"
        depositedJetton0: String!
        "Position initially deposited Jetton 1"
        depositedJetton1: String!
        "Position all time withdrawn Jetton 0"
        withdrawnJetton0: String!
        "Position all time withdrawn Jetton 1"
        withdrawnJetton1: String!
        "Position all time collected Jetton 0"
        collectedJetton0: String!
        "Position all time collected Jetton 1"
        collectedJetton1: String!
        "Position all time collected fees in Jetton 0"
        collectedFeesJetton0: String!
        "Position all time collected fees in Jetton 1"
        collectedFeesJetton1: String!
        "Var needed for fee computation"
        feeGrowthInside0LastX128: String!
        "Var needed for fee computation"
        feeGrowthInside1LastX128: String!
        "NFT address in blockchain"
        nftAddress: String!
        "NFT image"
        nftImage: String!
        "Was position migrated from Stonfi or Dedust or no"
        migratedFrom: String
    }
```

## Historical Data Entities

### Historical DEX Data Entity

```
    type DexData {
        "Record time"
        time: Date!
        "Pool count at given time"
        poolCount: Int!
        "Transaction count at given time"
        txCount: Int!
        "All time volume in USD at given time"
        totalVolumeUsd: Float!
        "All time volume in TON at given time"
        totalVolumeTon: Float!
        "All time fees in USD at given time"
        totalFeesUsd: Float!
        "All time fees in TON at given time"
        totalFeesTon: Float!
        "TVL across all pools in USD at given time"
        totalValueLockedUsd: Float!
        "TVL across all pools in TON at given time"
        totalValueLockedTon: Float!
        "TON price in USD at given time"
        tonPriceUsd: Float!
    }
```

### Historical Jetton Data Entity

```
    type JettonData {
        "Record time"
        time: Date!
        "Jetton address in blockchain"
        jettonInfo: String!
        "Jetton total supply at given time"
        totalSupply: Float!
        "Jetton transactions count at given time"
        txCount: Int!
        "Jetton all time volume in jetton units at given time"
        volume: Float!
        "Jetton all time volume in USD at given time"
        volumeUsd: Float!
        "Jetton all time generated fees in USD at given time"
        feesUsd: Float!
        "Jetton TVL in jetton units at given time"
        totalValueLocked: Float!
        "Jetton TVL in USD at given time"
        totalValueLockedUsd: Float!
        "Jetton derived TON at given time"
        derivedTon: Float!
        "Jetton derived USD at given time"
        derivedUsd: Float!
    }
```

### Historical Pool Data Entity

```
    type PoolData {
        "Record time"
        unix: Date!
        "Pool address in blockchain"
        poolInfo: String!
        "Pool internal ID"
        id: String!
        "Pool positions count at given time"
        positionsCount: Int!
        "Pool all time fees at given time"
        fee: Int!
        "Pool in range liquidity at given time"
        liquidity: String!
        "Pool tick at given time"
        tick: Int!
        "Pool tick spacing at given time"
        tickSpacing: Int!
        "Pool price at given time"
        priceSqrt: String!
        "Var needed for fee computation"
        feeGrowthGlobal0X128: String!
        "Var needed for fee computation"
        feeGrowthGlobal1X128: String!
        "Jetton 0 per token1 at given time"
        jetton0Price: Float!
        "Jetton 1 per token0 at given time"
        jetton1Price: Float!
        "All time Jetton 0 swapped at given time"
        volumeJetton0: Float!
        "All time Jetton 1 swapped at given time"
        volumeJetton1: Float!
        "All time Jetton 0 fees generated at given time"
        feesJetton0: Float!
        "All time Jetton 1 fees generated at given time"
        feesJetton1: Float!
        "Pool all time volume in USD at given time"
        volumeUsd: Float!
        "Pool all time fees generated in USD at given time"
        feesUsd: Float!
        "Pool all time transacitions count at given time"
        txCount: Int!
        "All time Jetton 0 collected fees at given time"
        collectedFeesJetton0: Float!
        "All time Jetton 1 collected fees at given time"
        collectedFeesJetton1: Float!
        "All time collected fees in USD at given time"
        collectedFeesUsd: Float!
        "Jetton 0 TVL at given time"
        totalValueLockedJetton0: Float!
        "Jetton 1 TVL at given time"
        totalValueLockedJetton1: Float!
        "Pool TVL in USD at given time"
        totalValueLockedUsd: Float!
        "Pool TVL in TON at given time"
        totalValueLockedTon: Float!
        "Pool APR at given time"
        apr: Float!
    }
```

### Historical Position Data Entity

```
    type PositionData {
        "Record time"
        time: Date!
        "Position ID"
        positionInfo: Int!
        "Position tick lower"
        tickLower: Int!
        "Position tick upper"
        tickUpper: Int!
        "Position liquidity at given time"
        liquidity: String!
        "Position initially deposited jetton 0 amount"
        depositedJetton0: String!
        "Position initially deposited jetton 1 amount"
        depositedJetton1: String!
        "Position withdrawn jetton 0 amount at given time"
        withdrawnJetton0: String!
        "Position withdrawn jetton 1 amount at given time"
        withdrawnJetton1: String!
        "Position collected jetton 0 amount at given time"
        collectedJetton0: String!
        "Position collected jetton 1 amount at given time"
        collectedJetton1: String!
        "Position collected fees jetton 0 amount at given time"
        collectedFeesJetton0: String!
        "Position collected fees jetton 1 amount at given time"
        collectedFeesJetton1: String!
        "Var needed for fee computation"
        feeGrowthInside0LastX128: String!
        "Var needed for fee computation"
        feeGrowthInside1LastX128: String!
        "Position TVL jetton 0 at given time" 
        totalValueLockedJetton0: Float!
        "Position TVL jetton 1 at given time"
        totalValueLockedJetton1: Float!
    }
```

## Transaction Entities

### Swap Transaction Enitity

```
    type Swap {
        "Transaction unix time"
        time: Date!
        "Transaction hash"
        hash: String!
        "Swap pool entity"
        pool: Pool!
        "Swap recipient address"
        to: String!
        "Swap sender address"
        from: String!
        "Swap input amount"
        amount: Float!
        "Swap price value"
        sqrtPriceLimitX96: String!
        "Jetton 0 entity"
        jetton0: Jetton!
        "Jetton 0 to refund"
        toRefund0: String!
        "Jetton 1 entity"
        jetton1: Jetton!
        "Jetton 1 to refund"
        toRefund1: String!
        "Is swap being Jetton 0 to Jetton 1 or Jetton 1 to Jetton 0"
        isZeroToOne: Boolean!
    }
```

### Mint Transaction Entity

```
    type Mint {
        "Transaction unix time"
        time: Date!
        "Transaction hash"
        hash: String!
        "Mint pool entity"
        pool: Pool!
        "Mint Jetton 0 amount"
        amount0: String!
        "Mint Jetton 1 amount"
        amount1: String!
        "NFT position recipient"
        recipient: String!
        "Position liquidity"
        liquidity: String!
        "Position tick lower"
        tickLower: Int!
        "Position tick upper"
        tickUpper: Int!
        "Var needed for fee computation"
        feeGrowthInside0X128: String!
        "Var needed for fee computation"
        feeGrowthInside1X128: String!
    }
```

### Burn Transaction Entity

```
    type Burn {
        "Transaction hash"
        hash: String!
        "Transaction unix time"
        time: Date!
        "Burn pool entity"
        pool: Pool!
        "Burn jettons recipient"
        recipient: String!
        "Position ID to burn"
        positionId: Int!
        "Position current liquidity"
        liquidity: String!
        "Position tick lower"
        tickLower: Int!
        "Position tick upper"
        tickUpper: Int!
        "Position liquidity to burn"
        liquidity2Burn: String!
        "Var needed for fee computation"
        feeGrowthInside0LastX128: String!
        "Var needed for fee computation"
        feeGrowthInside1LastX128: String!
        "Burn Jetton 0 amount"
        amount0: String!
        "Burn Jetton 1 amount"
        amount1: String!
    }
```

### Collect Transaction Entity

```
    type Collect {
        "Transaction hash"
        hash: String!
        "Transaction unix time"
        time: Date!
        "Collect pool entity"
        pool: Pool!
        "Collect jettons recipient"
        recipient: String!
        "Position ID"
        positionId: Int!
        "Var needed for fee computation"
        feeGrowthInside0LastX128: String!
        "Var needed for fee computation"
        feeGrowthInside1LastX128: String!
        "Collect Jetton 0 amount"
        amount0: String!
        "Collect Jetton 1 amount"
        amount1: String!
    }
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tonco.io/technical-reference/graphql-schema.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
