# Subgraph

Idle uses a [subgraph](https://thegraph.com/docs/about/introduction#what-the-graph-is) for indexing and organizing data from the Yield Tranches `IdleCDO` smart contract. This subgraph can be found on The Graph hosted service and can be used to query Idle YTs data:

* **YTs subgraph** <https://thegraph.com/hosted-service/subgraph/samster91/idle-tranches>
* **Graphql endpoint**
  * Ethereum <https://api.thegraph.com/subgraphs/name/samster91/idle-tranches>
  * Polygon zkEVM [https://api.studio.thegraph.com/query/12583/idle-tranches-zkevm/version/latest ](https://api.studio.thegraph.com/query/12583/idle-tranches-zkevm/version/latest)
  * Optimism <https://api.thegraph.com/subgraphs/name/samster91/idle-tranches-optimism>
* **Code** <https://github.com/Idle-Labs/idle-tranches-subgraph>

<figure><img src="https://4022236167-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lw-v0NTae0RVW1spR9R%2Fuploads%2Fs3MiQTbkntfgCFfoszTg%2Fimage.png?alt=media&#x26;token=be978ffa-c14c-46e8-a2d3-d5b1608fdf24" alt=""><figcaption></figcaption></figure>

### Useful entities

* ***TrancheInfos*****:** contains the data of each YTs tranche (type, apr, `virtualPrice`, `totalSupply`) updated every hour
* ***Tranche*****:** all deployed YTs tranches (id, type)

### Querying YTs

{% hint style="info" %}
Subgraph is case-sensitive. Remember to use all lowercase when inputting tranches' addresses.&#x20;
{% endhint %}

#### Example 1

To obtain the latest *TrancheInfos* you can use the following query

```graphql
{ 
    trancheInfos(orderBy:"timeStamp", orderDirection:"desc") { 
        id
        apr
        Tranche { 
            id 
        }
        timeStamp
        blockNumber
        totalSupply
        virtualPrice
    }
}
```

#### Example 2

To obtain the latest *TrancheInfos* for a specific tranche add a `where` filter. Let's query for example the Clearpool Portofino DAI Senior tranche `0xfc96989b3df087c96c806318436b16e44c697102`

```graphql
{ 
    trancheInfos(orderBy:"timeStamp", orderDirection:"desc", 
                 where:{ Tranche:"0xfc96989b3df087c96c806318436b16e44c697102" }) { 
        id
        apr
        Tranche { 
            id 
            CDO {
              id
            }
        }
        timeStamp
        blockNumber
        totalSupply
        virtualPrice
    }
}
```

For more info about GraphQL API, check [TheGraph Documentation](https://thegraph.com/docs/en/developer/graphql-api/).
