# Castle Crush (Reward Share)

## Query On-chain data

We use The Graph's subgraph to index on-chain events. To obtain the Castle Crush subgraph URL reach out to the reNFT team directly. We shall not explore how to make GraphQL queries to the subgraph here. We will merely point out an important potential "gotcha". By default, the query will return at most `100` items in the return set. The maximum you can get is `1000`. To achieve this, you must add the `first: 1000` query variable and value in your query. For example,

<pre class="language-graphql"><code class="lang-graphql"><strong>query Query {
</strong>  rentings(first: 1000, orderBy: cursor, orderDirection: asc) {
    id
    cursor
    renterAddress
    rentDuration
    rentedAt
  }
}
</code></pre>

This is not all, however. If the full set of rentings exceeds `1000` items, we will miss all the other rentings. To remedy this, we must use `first` in conjunction with a where clause. For example,

```graphql
query Query {
  rentings(first: 1000, orderBy: cursor, orderDirection: asc, where: {cursor_gt: 1000}) {
    id
    renterAddress
    rentDuration
    rentedAt
  }
}
```

The above query will now pull the next `1000` items. Note that if there are more than `2000` items we are still in trouble. To pull the next `1000` you would use `first: 1000, where: {cursor_gt: 2000}.`

**PLEASE USE THIS TECHNIQUE ON EVERY QUERY YOU ARE MAKING TO THE SUBGRAPH (lendings, rentings, users).**
