# Quests

{% hint style="warning" %}
**Beta:** Quests API is currently in beta mode, and is only available for early access previews right now
{% endhint %}

## Introduction

This endpoint allows you to suggest quests based on the onchain state of an address across various chains. Suggestions will vary based on current and historic holdings, address history and previous quest interactions (if applicable).

## Get Quests for  a wallet

```
GET /quests/{address}
```

### Cache

The response of this endpoint is cached for 8 hours or until the request parameter **refresh** is being provided.

### Request Parameters

| Param   | Type                   | Description                                                                                                                                   |
| ------- | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| limit   | int                    | limit of max results. **default: 3. max: 5**                                                                                                  |
| refresh | Boolean                | Bust the cache. **default: false**                                                                                                            |
| network | String \| null         | any of: ethereum, polygon, polygon-zkevm, optimism, arbitrum, starknet, polygon, zora, taiko, solana, zksync, mantle, base. Default: \<empty> |
| type    | Array\<String> \| null | can be left empty. One or multiple values. **Values**: Earn, Hunt, Mint, Buy, Play. **Default**: Earn, Hunt, Mint, Buy, Play                  |

### Response Parameters

|                                                              |                 |                                              |
| ------------------------------------------------------------ | --------------- | -------------------------------------------- |
| \[].wallet                                                   | String          | Wallet this quest was suggested for          |
| \[].enables                                                  | Int             | Indicates the amount of quests this enables  |
| \[].id                                                       | Long            | Id of the quest                              |
| \[].type                                                     | String          | Hunt, Learn, Earn                            |
| \[].title                                                    | String          | Quest Title                                  |
| \[].minsToComplete                                           | Int             | Minutes to complete Quest                    |
| \[].ctaTitle                                                 |                 |                                              |
| \[].ctaLink                                                  |                 |                                              |
| \[].steps                                                    | Array\<String>  |                                              |
| \[].description                                              | String          |                                              |
| \[].prerequisites\[].type                                    | String          |                                              |
| \[].prerequisites\[].reason                                  | String          |                                              |
| \[].profile.id                                               | String          |                                              |
| \[].profile.title                                            | String          |                                              |
| \[].profile.link                                             | String          |                                              |
| \[].profile.imageUrl                                         | String          |                                              |
| \[].profile.slug                                             | String          |                                              |
| \[].profile.category                                         | String          |                                              |
| \[].profile.shortDescription                                 | String          |                                              |
| \[].profile.website                                          | URI             |                                              |
| \[].profile.twitter                                          | URI             |                                              |
| \[].profile.likelihood                                       | String          |                                              |
| \[].profile.telegram                                         | String          |                                              |
| \[].profile.networks                                         | Array\<Network> | list of associated networks                  |
| \[].profile.networks\[].network                              | String          |                                              |
| \[].profile.networks\[].averageGasPrices                     | Object          |                                              |
| \[].profile.networks\[].averageGasPrices.1h                  | Object          |                                              |
| \[].profile.networks\[].averageGasPrices.1h.amount.amount    | Double          | amount in gwei                               |
| \[].profile.networks\[].averageGasPrices.1h.amount.amountUsd | Double          | amount of gas in usd                         |
| \[].profile.networks\[].averageGasPrices.1h.percentageChange | double          | percentage of change compared to previous 1h |
| \[].profile.networks\[].averageGasPrices.1h.textIndicator    | String          | human readable format of gas                 |

### Example Request

```
curl 'https://api.bankless.com/quests/0x469b33E0B70725184175750920AfD81B4BD94619'
```

### Example Response

```json
[
    {
    id: 1,
    enables: 22,
    type: "Hunt",
    title: "Bridge Funds to Polygon zkEVM with Orbiter",
    minsToComplete: 2,
    ctaTitle: "Bridge Funds with Orbiter",
    ctaLink: "https://www.orbiter.finance/?source=Ethereum&dest=Polygon%20zkEVM",
    steps: [
        "Connect a wallet funded with ETH to Orbiter",
        "Select the origin chain and input the amount of ETH you want to send",
        "Select “Polygon zkEVM” as the destination chain",
        "Click “Send” and approve the associated transactions"
    ],
    description: "Bridging funds into Polygon will count as a transaction type and is necessary for the next step! Orbiter is a tokenless bridging and exchange protocol and one of the most popular bridge routes to Polygon zkEVM. ",
    prerequisites: [
        {
            type: "token-absence",
            reason: "The wallet doesn't hold any native currency on polygon-zkevm"
        }
    ],
    profile: {
        id: 2,
        title: "Polygon zkEVM",
        link: "https://www.bankless.com/airdrop-hunter/polygon-zkevm",
        imageURL: "https://www.bankless.com/assets/cdn/airdrops/2023-07-19/Polygon Logo.jpeg-3b1018d59fe7548b65c3bd40d0a71740.jpeg",
        slug: "polygon-zkevm",
        category: "L2",
        shortDescription: "EVM-equivalent zero-knowledge rollup",
        website: "https://polygon.technology/",
        twitter: "https://twitter.com/0xPolygonLabs",
        likelihood: "Medium",
        telegram: "",
        networks: [
        {
            network: "ETHEREUM",
            averageGasPrices: {
                1h: {
                    amount: {
                        amount: 6.059012229516667,
                        amountUsd: 0.437271702379659
                    },
                    percentageChange: 17.34,
                    textIndicator: "high"
                    }
                }
            }]
        }
    }
]
```

### Permissions

This endpoint requires you to have [the **QUESTS** permission](/bankless-api/authentication.md).

## Get Quests for multiple wallets

```
POST /quests
```

### Cache

The response of this endpoint is not cached.

### Request Body

| Param     | Type           | Description                                  |
| --------- | -------------- | -------------------------------------------- |
| addresses | Array\<String> | list of evm addresses to suggest quests for  |
| limit     | int            | limit of max results. **default: 3. max: 5** |
| refresh   | Boolean        | Bust the cache. **default: false**           |

### Response Parameters

|                                                              |                 |                                              |
| ------------------------------------------------------------ | --------------- | -------------------------------------------- |
| \[].wallet                                                   | String          | wallet this quest was suggested for          |
| \[].id                                                       | Long            | Id of the quest                              |
| \[].type                                                     | String          | Hunt, Learn, Earn                            |
| \[].title                                                    | String          | Quest Title                                  |
| \[].minsToComplete                                           | Int             | Minutes to complete Quest                    |
| \[].ctaTitle                                                 |                 |                                              |
| \[].ctaLink                                                  |                 |                                              |
| \[].steps                                                    | Array\<String>  |                                              |
| \[].description                                              | String          |                                              |
| \[].prerequisites\[].type                                    | String          |                                              |
| \[].prerequisites\[].reason                                  | String          |                                              |
| \[].profile.id                                               | String          |                                              |
| \[].profile.title                                            | String          |                                              |
| \[].profile.link                                             | String          |                                              |
| \[].profile.imageUrl                                         | String          |                                              |
| \[].profile.slug                                             | String          |                                              |
| \[].profile.category                                         | String          |                                              |
| \[].profile.shortDescription                                 | String          |                                              |
| \[].profile.website                                          | URI             |                                              |
| \[].profile.twitter                                          | URI             |                                              |
| \[].profile.likelihood                                       | String          |                                              |
| \[].profile.telegram                                         | String          |                                              |
| \[].profile.networks                                         | Array\<Network> | list of associated networks                  |
| \[].profile.networks\[].network                              | String          |                                              |
| \[].profile.networks\[].averageGasPrices                     | Object          |                                              |
| \[].profile.networks\[].averageGasPrices.1h                  | Object          |                                              |
| \[].profile.networks\[].averageGasPrices.1h.amount.amount    | Double          | amount in gwei                               |
| \[].profile.networks\[].averageGasPrices.1h.amount.amountUsd | Double          | amount of gas in usd                         |
| \[].profile.networks\[].averageGasPrices.1h.percentageChange | double          | percentage of change compared to previous 1h |
| \[].profile.networks\[].averageGasPrices.1h.textIndicator    | String          | human readable format of gas                 |

### Example Request

```
POST https://api.bankless.com/quests
content-type: application/json

{
  "addresses": ["0xA4D94019934D8333Ef880ABFFbF2FDd611C762BD", "0x623777Cc098C6058a46cF7530f45150ff6a8459D"],
  "limit": 5
}
```

### Example Response

```json
[
    {
    id: 1,
    type: "Hunt",
    title: "Bridge Funds to Polygon zkEVM with Orbiter",
    minsToComplete: 2,
    ctaTitle: "Bridge Funds with Orbiter",
    ctaLink: "https://www.orbiter.finance/?source=Ethereum&dest=Polygon%20zkEVM",
    steps: [
        "Connect a wallet funded with ETH to Orbiter",
        "Select the origin chain and input the amount of ETH you want to send",
        "Select “Polygon zkEVM” as the destination chain",
        "Click “Send” and approve the associated transactions"
    ],
    description: "Bridging funds into Polygon will count as a transaction type and is necessary for the next step! Orbiter is a tokenless bridging and exchange protocol and one of the most popular bridge routes to Polygon zkEVM. ",
    prerequisites: [
        {
            type: "token-absence",
            reason: "The wallet doesn't hold any native currency on polygon-zkevm"
        }
    ],
    profile: {
        id: 2,
        title: "Polygon zkEVM",
        link: "https://www.bankless.com/airdrop-hunter/polygon-zkevm",
        imageURL: "https://www.bankless.com/assets/cdn/airdrops/2023-07-19/Polygon Logo.jpeg-3b1018d59fe7548b65c3bd40d0a71740.jpeg",
        slug: "polygon-zkevm",
        category: "L2",
        shortDescription: "EVM-equivalent zero-knowledge rollup",
        website: "https://polygon.technology/",
        twitter: "https://twitter.com/0xPolygonLabs",
        likelihood: "Medium",
        telegram: "",
        networks: [
        {
            network: "ETHEREUM",
            averageGasPrices: {
                1h: {
                    amount: {
                        amount: 6.059012229516667,
                        amountUsd: 0.437271702379659
                    },
                    percentageChange: 17.34,
                    textIndicator: "high"
                    }
                }
            }]
        }
    }
]
```

### Permissions

This endpoint requires you to have [the **QUESTS** permission](/bankless-api/authentication.md).


---

# 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.bankless.com/bankless-api/endpoints/quests.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.
