{
  "openapi": "3.0.0",
  "info": {
    "description": "OpenAPI specification for the entire Messari API",
    "title": "Messari API - Ai V1",
    "version": "1.0.0"
  },
  "servers": [
    {
      "description": "Messari API",
      "url": "https://api.messari.io"
    }
  ],
  "security": [],
  "paths": {
    "/ai/v1/agent/compute": {
      "post": {
        "description": "Runs Messari's Compute agent standalone over Messari's quantitative datasets. Returns each executed SQL query in `results`, with `query_result` rows, the `columns` naming each row position, and `truncated` reporting that the row cap was reached. `error` carries the agent's explanation when a run produces no usable result. There is no synthesized answer: this endpoint computes, and the caller writes the answer. The SQL and column names reflect Messari's internal schema, which may change without notice: read them, do not parse them. Requires an authenticated Enterprise user holding the `ai_toolkit_permission` API permission. Limited to 30 requests per minute per user.",
        "operationId": "postComputeAgent",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComputeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/ComputeResponse"
                    },
                    "error": {
                      "type": "string"
                    },
                    "metadata": {
                      "$ref": "#/components/schemas/ComputeResponseMetadata"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                },
                "example": {
                  "error": null,
                  "data": {
                    "results": [
                      {
                        "dataset": "asset",
                        "query": "SELECT asset.name, asset.symbol, asset.circulating_marketcap_usd, asset.latest_price_time FROM asset WHERE asset.asset_id = '1e31218a-e44e-4285-820c-8282ee222035' LIMIT 1;",
                        "columns": [
                          "NAME",
                          "SYMBOL",
                          "CIRCULATING_MARKETCAP_USD",
                          "LATEST_PRICE_TIME"
                        ],
                        "query_result": "[[\"Bitcoin\",\"BTC\",\"1285476589284\",\"2026-08-17\"]]"
                      }
                    ]
                  },
                  "metadata": {
                    "trace_id": "9e741d30-e05a-496d-a409-f87856aef133"
                  }
                }
              }
            },
            "description": "Default response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Forbidden"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ],
        "summary": "Run the Compute agent"
      }
    },
    "/ai/v1/agent/search": {
      "post": {
        "description": "Runs Messari's Search agent standalone over Messari research and news. Returns the retrieved documents in `sources`. There is no synthesized answer and no citation numbering: this endpoint retrieves, and the caller writes the answer. Requires an authenticated Enterprise user holding the `ai_toolkit_permission` API permission. Limited to 30 requests per minute per user.",
        "operationId": "postSearchAgent",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/SearchResponse"
                    },
                    "error": {
                      "type": "string"
                    },
                    "metadata": {
                      "$ref": "#/components/schemas/SearchResponseMetadata"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                },
                "example": {
                  "error": null,
                  "data": {
                    "sources": [
                      {
                        "domain": "research",
                        "title": "EigenLayer and Securing New Middleware",
                        "url": "https://messari.io/report/eigenlayer-and-securing-new-middleware",
                        "published_at": "2023-02-28T15:30:59Z",
                        "content": "TITLE:\nEigenLayer and Securing New Middleware\n\nHOOK:\nEigenLayer is a restaking primitive that enables Ethereum stakers to use their staked ETH to secure additional networks, thus effectively securing multiple services with the same initial capital. The team recently released the public version of their whitepaper.\n\nASSET SLUGS:\nethereum, eigenlayer\n\nPUBLISHED:\n2023-02-28T15:30:59.879000Z\n\nCONTENT: \u2026"
                      },
                      {
                        "domain": "research",
                        "title": "EigenLayer and Securing New Middleware",
                        "url": "https://messari.io/report/eigenlayer-and-securing-new-middleware",
                        "published_at": "2023-02-28T15:30:59Z",
                        "content": "TITLE:\nEigenLayer and Securing New Middleware\n\nHOOK:\nEigenLayer is a restaking primitive that enables Ethereum stakers to use their staked ETH to secure additional networks, thus effectively securing multiple services with the same initial capital. The team recently released the public version of their whitepaper.\n\nASSET SLUGS:\nethereum, eigenlayer\n\nPUBLISHED:\n2023-02-28T15:30:59.879000Z\n\nCONTENT: \u2026"
                      }
                    ]
                  },
                  "metadata": {
                    "trace_id": "43efbf4c-e3c7-4d64-8892-9e8dc4c7a85a"
                  }
                }
              }
            },
            "description": "Default response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Forbidden"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Too Many Requests"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ],
        "summary": "Run the Search agent"
      }
    },
    "/ai/v1/agent/signal": {
      "post": {
        "description": "Provides crypto market and social signals by processing user queries through an LLM that accesses Messari's research and data. Consumes 1 credit per request.",
        "operationId": "postSignal",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/SignalResponse"
                    },
                    "error": {
                      "type": "string"
                    },
                    "metadata": {
                      "$ref": "#/components/schemas/SignalResponseMetadata"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                },
                "example": {
                  "error": null,
                  "data": {
                    "answer": "[\"Trending Topic Title: Trump Pardons Binance Founder CZ \\n\\t\\tTopic Description: President Donald Trump pardoned Binance founder Changpeng Zhao (CZ) on October 23, 2025, following CZ's earlier guilty plea and prison sentence for violating anti-money laundering laws. The pardon appears connected to business relationships between Binance and Trump family crypto ventures, triggering a positive market reaction for BNB while drawing both praise from crypto supporters and criticism from those concerned about regulatory enforcement.\\n \\n\\t\\tKey Aspects: \u2022 President Donald Trump pardoned Changpeng Zhao (CZ), founder of cryptocurrency exchange Binance, on October 23, 2025. CZ had previously pleaded guilty in November 2023 to violating the Bank Secrecy Act by failing to implement adequate anti-money laundering controls at Binance, serving a four-month prison sentence in 2024.\\n\\n\u2022 The pardon appears connected to business relationships between Binance and Trump family ventures. Reports indicate Binance backed Trump family crypto projects, including involvement with a stablecoin called USD1 launched by Trump WLFI in March 2025. A timeline shared in the content suggests a $2B investment into Binance by MGX in March 2025 was paid for in USD1, followed by CZ applying for a pardon in May 2025.\\n\\n\u2022 Market reaction to the news was positive for Binance's native token BNB, which reportedly surged 5% following the announcement. Many crypto community members celebrated the decision as bullish for the broader cryptocurrency ecosystem, particularly for tokens in the Binance Smart Chain ecosystem.\\n\\n\u2022 The pardon is being framed politically as ending what some called the Biden administration's \\\"war on crypto.\\\" CZ expressed gratitude for the pardon, stating he \\\"will do everything we can to help make America the Capital of Crypto.\\\" Some speculate this could lead to Binance returning to operations in the United States.\\n\\n\u2022 Reactions to the pardon were mixed, with supporters viewing it as a victory for crypto innovation and critics characterizing it as an abuse of power. Critics pointed to Binance's deliberate violations of sanctions and anti-money laundering laws, while crypto detective Coffeezilla was quoted saying \\\"crime is legal\\\" after the announcement.\\n \\n\\t\\tTopic Avg Timestamp: 2025-10-23 00:00:00 +0000 UTC \\n\\t\\tTrending Rank: 1\\n\",\"Trending Topic Title: Bitcoin Consolidates at $110K Amid Mixed Predictions \\n\\t\\tTopic Description: Bitcoin is trading in the $106K-$111K range in October 2025, having dropped from recent highs of $125K, with analysts divided on near-term direction. While Standard Chartered predicts a temporary dip below $100K, Eric Trump forecasts $200K by year-end, and technical analysts identify key support at $107K and resistance at $112K-$116K that will determine the next major move.\\n \\n\\t\\tKey Aspects: \u2022 Bitcoin is trading in the $106K-$111K range in October 2025, having recently dropped from highs near $125K, with key support at $107K-$108K and resistance at $112K-$116K. The Fear and Greed Index shows \\\"Fear\\\" with values between 25-27, indicating market uncertainty despite prices remaining above $100K.\\n\\n\u2022 Standard Chartered analysts predict Bitcoin could temporarily dip below $100K by the weekend, potentially marking \\\"the last time $BTC trades sub-$100K,\\\" while Eric Trump has made headlines by forecasting Bitcoin could reach $200K by year-end 2025 and eventually $1 million per coin. Other notable predictions include Cathie Wood's $650K-$1.5 million target by 2030.\\n\\n\u2022 Market analysis reveals concentrated selling in the $109K-$115K range, with traders positioning defensively during consolidation. Some analysts describe the current situation as a \\\"mid-cycle reset\\\" rather than a bear market, with VanEck citing strong fundamentals and rising adoption to support this view.\\n\\n\u2022 Macro factors influencing Bitcoin include the US national debt exceeding $38 trillion, anticipated CPI data releases, and tariffs on Chinese tech. Some traders are watching for Trump's announcement at 3pm ET as a potential market catalyst, with speculation it could trigger either a \\\"flash pump\\\" to $120K or a dip to the $104K zone.\\n\\n\u2022 Technical analysts highlight the importance of the $102K level (representing the weekly MA50 support band), while noting that Bitcoin has maintained this support trend since the $20K level. For bullish continuation, Bitcoin needs to break above $112K-$117K, with some suggesting a decisive move above this resistance could quickly lead to $130K+.\\n \\n\\t\\tTopic Avg Timestamp: 2025-10-23 00:00:00 +0000 UTC \\n\\t\\tTrending Rank: 2\\n\",\"Trending Topic Title: Hyperliquid's $1B Raise and Robinhood Listing \\n\\t\\tTopic Description: Hyperliquid Strategies has filed with the SEC to raise $1 billion for potential $HYPE token purchases while the token gets listed on Robinhood, marking its first major exchange debut. The decentralized perpetual exchange built on its own L1 blockchain is generating significant revenue, with its CEO stating it \\\"can get as big as finance as a whole\\\" as it expands its ecosystem with new token listings and developer tools.\\n \\n\\t\\tKey Aspects: \u2022 Hyperliquid Strategies has filed an S-1 registration statement with the SEC to raise up to $1 billion through a 160 million share offering via Chardan Capital Markets, with part of the proceeds intended for potential purchases of $HYPE tokens, signaling a strategic move to strengthen the project's treasury and bridge traditional finance with crypto markets.\\n\\n\u2022 $HYPE has been listed on Robinhood, marking a significant milestone as the first major centralized exchange to offer trading of the token, which many supporters view as validation of Hyperliquid's execution and a breakthrough in the \\\"CEX embargo\\\" that had previously limited accessibility to the token.\\n\\n\u2022 Hyperliquid has demonstrated impressive performance metrics, generating $2.4 million in fees over a 24-hour period (surpassing BNB Chain's $1.6 million), with CEO Jeff (@chameleon_jeff) expressing ambitious vision that \\\"Hyperliquid can get as big as finance as a whole,\\\" highlighting the project's goal to become a comprehensive financial infrastructure.\\n\\n\u2022 The platform is built as a dedicated L1 blockchain with its own consensus engine (HyperBFT), created in response to the FTX collapse to emphasize decentralization and self-custody, positioning itself as a purpose-built chain for decentralized perpetual trading rather than just another DEX.\\n\\n\u2022 Hyperliquid has expanded its ecosystem by listing MegaETH ($MEGA) on its pre-market, allowing users to long or short the unlaunched token with up to 3x leverage at approximately $4.5B fully diluted valuation, demonstrating the platform's role as a venue for price discovery of new crypto assets.\\n\\n\u2022 The project is actively growing its team and infrastructure, hiring for engineering positions in Singapore and launching a self-service developer API portal with 20,000 credits for builders, while also developing USDH, a Hyperliquid-aligned stablecoin that offers benefits like 20% lower taker fees and 50% better maker rebates.\\n \\n\\t\\tTopic Avg Timestamp: 2025-10-23 00:00:00 +0000 UTC \\n\\t\\tTrending Rank: 3\\n\",\"Trending Topic Title: Meteora Airdrop Launch and Crypto Distribution Strategies \\n\\t\\tTopic Description: Cryptocurrency users are actively discussing several major token airdrops, with particular focus on the newly launched Meteora ($MET) distribution to Jupiter Exchange stakers, the successful Limitless airdrop on Wallchain that delivered 5-figure rewards to some users, and the imminent idOS Network airdrop generating significant anticipation. The community is sharing strategies for qualifying for airdrops, debating whether to sell or hold received tokens, and warning about security risks associated with fraudulent claim links.\\n \\n\\t\\tKey Aspects: \u2022 The Meteora ($MET) airdrop launched with significant attention, featuring a unique claiming mechanism that required users to interact with the platform's technology. Some users reported smooth claiming experiences, while others noted substantial claims including one entity that reportedly received $10M worth of tokens. The airdrop targeted Jupiter Exchange ($JUP) stakers and liquidity providers.\\n\\n\u2022 The Limitless airdrop on Wallchain platform has delivered substantial value to eligible users, with multiple reports of 5-figure rewards. This airdrop was praised for its distribution mechanics, featuring 100% unlocked tokens at TGE (Token Generation Event) with no cliff, allowing recipients immediate access to their rewards.\\n\\n\u2022 The idOS Network airdrop appears imminent with users actively discussing a countdown of approximately 18 hours remaining. This has sparked increased social media engagement as users attempt to position themselves for eligibility, with some speculating it could be \\\"the next 4-5 figure airdrop\\\" following Limitless.\\n\\n\u2022 Airdrop eligibility remains a significant concern across the community, with many users expressing disappointment about missing qualifications for certain distributions while actively positioning themselves for upcoming opportunities through various \\\"farming\\\" activities including social media engagement, platform usage, and liquidity provision.\\n\\n\u2022 Strategic discussions around airdrop management are prevalent, with users debating whether to immediately sell tokens (often referred to as \\\"paperhanding\\\") or hold them for potential appreciation. Some users also highlighted tax implications of airdrops, noting that taxation methods vary by country and can significantly impact the effective value of distributions.\\n\\n\u2022 Security concerns were raised regarding airdrops, with at least one warning about a compromised account (Noble) posting fake airdrop claim links, emphasizing the importance of verification across multiple official channels before interacting with any airdrop claims.\\n \\n\\t\\tTopic Avg Timestamp: 2025-10-23 00:00:00 +0000 UTC \\n\\t\\tTrending Rank: 4\\n\",\"Trending Topic Title: Wallchain Quacks Reward System \\n\\t\\tTopic Description: Wallchain is a crypto engagement platform rewarding users with \\\"Quacks\\\" for creating quality content about featured projects like idOS Network, HeyElsaAI, and Kloutgg. The community of self-described \\\"Quackers\\\" share strategies for maximizing daily earnings, compete on leaderboards, and anticipate future value through potential token events and airdrops.\\n \\n\\t\\tKey Aspects: \u2022 Wallchain is a crypto engagement platform that rewards users with \\\"Quacks\\\" for creating quality content and meaningful interactions about specific crypto projects, transforming social media activity into quantifiable value through its mindshare leaderboard system.\\n\\n\u2022 Users earn varying amounts of Quacks daily (ranging from 0.11 to over 20) by engaging with featured projects including idOS Network, HeyElsaAI, Kloutgg, Limitless, OneAnalog, and Covalent, with successful strategies focusing on authentic engagement, regular posting, and thoughtful replies rather than spam.\\n\\n\u2022 The platform operates on an epoch-based system, with tweets indicating Epoch 1 was ending and Epoch 2 beginning soon, while also noting allocation increases for certain projects (such as idOS Network's allocation increasing from 0.8% to 1%).\\n\\n\u2022 A community culture has developed around Wallchain with users referring to themselves as \\\"Quackers,\\\" greeting each other with \\\"gQuack,\\\" sharing earnings updates, and competing for leaderboard positions while helping others maximize their earnings.\\n\\n\u2022 Multiple indicators suggest Quacks hold potential future value, including references to a Token Generation Event (TGE), upcoming airdrops, Genesis NFTs, and allocation percentages for top creators (with one tweet mentioning \\\"Top 300 creators split 0.5% supply per epoch\\\").\\n\\n\u2022 The platform appears designed to reward authentic human behavior in the attention economy, with one user describing Quacks as \\\"micro-signals: proof you showed up, contributed, and engaged meaningfully\\\" rather than traditional engagement farming or impression buying.\\n \\n\\t\\tTopic Avg Timestamp: 2025-10-23 00:00:00 +0000 UTC \\n\\t\\tTrending Rank: 5\\n\"]"
                  },
                  "metadata": {
                    "trace_id": "b3360f71-18df-4de2-ae22-ba23a7d1869a"
                  }
                }
              }
            },
            "description": "Default response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Unauthorized"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ],
        "summary": "Generate crypto market and social signals"
      }
    },
    "/ai/v1/chat/completions": {
      "post": {
        "description": "Processes a conversation and returns an AI-generated response with Messari's standard format. Consumes 5 credits per request.",
        "operationId": "postChatCompletion",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChatCompletionRequest"
              },
              "example": {
                "messages": [
                  {
                    "role": "user",
                    "content": "What is Solana?"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/ChatCompletionResponse"
                    },
                    "error": {
                      "type": "string"
                    },
                    "metadata": {
                      "$ref": "#/components/schemas/ChatCompletionResponseMetadata"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                },
                "example": {
                  "error": null,
                  "data": {
                    "messages": [
                      {
                        "role": "assistant",
                        "content": "# Solana Overview\n\nSolana is a Layer-1 blockchain network optimized for **scalability** and designed to provide infrastructure for decentralized applications (dapps). Its primary goal is to offer a platform where developers can build applications without encountering common performance bottlenecks, such as high transaction fees and throughput limitations.\n\n## Key Features and Design Goals\n\nSolana's design emphasizes high performance and efficiency, aiming to minimize constraints typically faced by developers:\n\n*   **High Throughput:** The network is designed to handle a high volume of transactions, with the capacity to process up to 710,000 transactions per second (TPS) at peak load.\n*   **Low Costs:** It aims for low transaction costs and sub-second settlement times.\n*   **Scalability:** Solana achieves scalability without relying on second-layer or off-chain technologies.\n*   **Smart Contract Support:** It supports all LLVM-compatible smart contract languages, which is a collection of modular compiler and toolchain technologies.\n\nThe network utilizes a Proof of Stake (PoS) consensus mechanism combined with a unique component called Tower Consensus to achieve its high throughput.\n\n## The SOL Token\n\nThe native token of the Solana network is **SOL**, which was launched alongside the Mainnet Beta in March 2020. SOL serves several essential functions within the ecosystem:\n\n*   **Transaction Fees:** Users pay fees in SOL for sending transactions and executing smart contracts. These fees include a static base fee per signature and a variable fee based on the computational resources used. Transactions can also include an optional \"prioritization fee\" for faster processing.\n*   **Staking:** SOL is used for staking to secure the network.\n*   **Governance:** The token is used for on-chain governance.\n\n## Ecosystem and Applications\n\nSolana provides a robust environment for various decentralized applications and services:\n\n*   **Decentralized Finance (DeFi):** Projects like Phoenix, a spot limit order book implementation by Ellipsis Labs, are built on Solana to create efficient and scalable DeFi infrastructure.\n*   **Payments:** Solana Pay is a protocol for payments on Solana, designed to build new payment and commerce rails for merchants that utilize the blockchain for secure transactions without intermediaries.\n*   **Gaming and NFTs:** Solana offers tools like GameShift, an API that streamlines integration with Web3 features for development studios, handling interactions with Solana for self-custodied game assets and abstracted transaction fees.\n*   **Customer Engagement:** Platforms like Bond utilize Solana to drive customer engagement for brands through digital collectibles, luxury-good authentication, verified digital identities, and loyalty programs.\n\n## Company Background\n\nSolana was founded in 2017 and is headquartered in San Francisco, CA. It is a private company that has raised a total of $335 million in funding."
                      }
                    ]
                  },
                  "metadata": {
                    "status": "Completed",
                    "trace_id": "63c56f80-4ac7-4e24-8fb7-a896e8bc5100",
                    "cited_sources": [
                      {
                        "domain": "asset_profile",
                        "url": "https://messari.io/asset/solana"
                      },
                      {
                        "domain": "diligence",
                        "title": "Diligence Report: General Information",
                        "url": "https://messari.io/asset/solana/diligence-report#general_information"
                      },
                      {
                        "domain": "diligence",
                        "title": "Diligence Report: Token Economics",
                        "url": "https://messari.io/asset/solana/diligence-report#token_usage_and_economics"
                      },
                      {
                        "domain": "research_image",
                        "title": "Solana Ecosystem Overview",
                        "url": "https://cdn.sanity.io/images/2bt0j8lu/production/10299763330e60bae0a812764da7cbd1c3e3d153-1940x976.png?w=800"
                      },
                      {
                        "domain": "research_image",
                        "title": "Solana Deep Dive: Reframing The Narrative",
                        "url": "https://cdn.sanity.io/images/2bt0j8lu/production/7a725362c19ddb5f7b089a68dcc13d416fa6726d-2782x1508.png?w=800"
                      },
                      {
                        "domain": "news",
                        "title": "What Is Solana? A Scalable, Decentralized Network for Dapps",
                        "url": "https://decrypt.co/resources/what-is-solana-a-scalable-decentralized-network-for-dapps"
                      },
                      {
                        "domain": "webcrawl",
                        "url": "https://www.kraken.com/prices/solana"
                      },
                      {
                        "domain": "webcrawl",
                        "title": "Solana Company Profile 2025: Valuation, Funding & Investors | PitchBook",
                        "url": "https://pitchbook.com/profiles/company/227820-52"
                      },
                      {
                        "domain": "webcrawl",
                        "title": "Solana - Products, Competitors, Financials, Employees, Headquarters Locations",
                        "url": "https://www.cbinsights.com/company/solana-labs"
                      },
                      {
                        "domain": "webcrawl",
                        "title": "There are no bad questions about... blockchain payments | Solana",
                        "url": "https://solana.com/learn/payments"
                      }
                    ]
                  }
                }
              }
            },
            "description": "Default response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Unauthorized"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ],
        "summary": "Generate chat completions with Messari AI"
      }
    },
    "/ai/v1/classification/extraction": {
      "post": {
        "description": "Extract entities from a user message by calling an LLM and doing searches in the internal database. Consumes 1 credit per request.",
        "operationId": "postExtract",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/AIToolkitExtractResponse"
                    },
                    "error": {
                      "type": "string"
                    },
                    "metadata": {
                      "$ref": "#/components/schemas/AIToolkitExtractResponseMetadata"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Default response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Unauthorized"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ],
        "summary": "Extract entities from a user message"
      }
    },
    "/ai/v1/questions/trending": {
      "get": {
        "description": "Get questions for trending topics",
        "operationId": "getTrendingQuestions",
        "parameters": [
          {
            "description": "Maximum number of questions to return",
            "in": "query",
            "name": "limit",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer",
              "default": 5
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/TrendingQuestionsResponse"
                    },
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                },
                "example": {
                  "error": null,
                  "data": {
                    "questions": [
                      {
                        "question": "What implications does Trump's pardon of CZ have for cryptocurrency regulation and market sentiment?",
                        "topic_title": "Trump Pardons Binance Founder CZ",
                        "topic_id": "2faa9dc6-a855-54ed-865c-419a01fb1a8b"
                      },
                      {
                        "question": "Will Bitcoin break below $100K before surging to new highs, or is this consolidation just a mid-cycle reset before the next leg up?",
                        "topic_title": "Bitcoin Consolidates at $110K Amid Mixed Predictions",
                        "topic_id": "2f3ad098-1568-5b3f-86d3-1682ad8b36ba"
                      },
                      {
                        "question": "Tell me about Hyperliquid's strategic moves with its billion-dollar fundraising and first major exchange listing?",
                        "topic_title": "Hyperliquid's $1B Raise and Robinhood Listing",
                        "topic_id": "e95b2bd7-668a-5fb8-85df-fa328931fbaa"
                      },
                      {
                        "question": "What tactics are crypto users employing to maximize their eligibility for valuable airdrops like Meteora and idOS Network?",
                        "topic_title": "Meteora Airdrop Launch and Crypto Distribution Strategies",
                        "topic_id": "8f735ef8-4947-5797-b716-4f33aa132218"
                      },
                      {
                        "question": "How does Wallchain's \"Quacks\" system transform social media engagement into potential crypto rewards?",
                        "topic_title": "Wallchain Quacks Reward System",
                        "topic_id": "00f77b9b-b82c-5798-997a-3bab4cb49819"
                      }
                    ]
                  }
                }
              }
            },
            "description": "Default response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Unauthorized"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {},
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ],
        "summary": "Get trending questions"
      }
    }
  },
  "components": {
    "schemas": {
      "AIToolkitExtractResponseMetadata": {
        "properties": {
          "traceId": {
            "type": "string"
          }
        },
        "required": [
          "traceId"
        ],
        "type": "object"
      },
      "SignalResponseMetadata": {
        "properties": {
          "trace_id": {
            "format": "byte",
            "type": "string"
          }
        },
        "required": [
          "trace_id"
        ],
        "type": "object"
      },
      "ChatCompletionResponseMetadata": {
        "properties": {
          "charts": {
            "description": "Chart data referenced in the response",
            "items": {
              "$ref": "#/components/schemas/ChartSource"
            },
            "type": "array"
          },
          "cited_sources": {
            "description": "Sources cited in the response content",
            "items": {
              "$ref": "#/components/schemas/StandardSource"
            },
            "type": "array"
          },
          "related_questions": {
            "description": "Follow-up questions related to the original query",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "status": {
            "description": "Current status of the completion request",
            "type": "string"
          },
          "trace_id": {
            "description": "Unique identifier for tracing the request",
            "format": "byte",
            "type": "string"
          }
        },
        "required": [
          "status",
          "trace_id"
        ],
        "type": "object"
      },
      "TrendingQuestionsResponse": {
        "properties": {
          "questions": {
            "items": {
              "$ref": "#/components/schemas/TrendingTopicQuestion"
            },
            "type": "array"
          }
        },
        "required": [
          "questions"
        ],
        "type": "object"
      },
      "SignalResponse": {
        "properties": {
          "answer": {
            "type": "string"
          }
        },
        "required": [
          "answer"
        ],
        "type": "object"
      },
      "ChatCompletionRequest": {
        "properties": {
          "allow_clarification_query": {
            "description": "Whether the AI can ask for clarification when the query is ambiguous",
            "type": "boolean",
            "default": true
          },
          "generate_related_questions": {
            "description": "Adds AI generated related questions to use as follow up questions",
            "format": "int64",
            "type": "integer",
            "default": 2
          },
          "inline_citations": {
            "description": "Adds inline citation document references in the payload metadata",
            "type": "boolean",
            "default": true
          },
          "messages": {
            "description": "Array of messages in the conversation history",
            "items": {
              "$ref": "#/components/schemas/ChatCompletionMessage"
            },
            "type": "array"
          },
          "response_format": {
            "description": "Text format for the response. Values accepted are 'markdown' and 'plaintext'.",
            "type": "string",
            "default": "markdown"
          },
          "stream": {
            "description": "Stream the response through the API",
            "type": "boolean",
            "default": false
          },
          "verbosity": {
            "description": "Controls the length and detail level of the AI-generated response. Values accepted are 'succinct', 'balanced', and 'verbose'.",
            "type": "string",
            "default": "balanced"
          }
        },
        "required": [
          "messages"
        ],
        "type": "object"
      },
      "ChatCompletionResponse": {
        "properties": {
          "messages": {
            "description": "Array of response messages from the assistant",
            "items": {
              "$ref": "#/components/schemas/ChatCompletionResponseMessage"
            },
            "type": "array"
          }
        },
        "required": [
          "messages"
        ],
        "type": "object"
      },
      "AIToolkitExtractResponse": {
        "properties": {
          "extractedEntities": {
            "items": {
              "$ref": "#/components/schemas/ExtractedNameWithSimilarEntitiesV2"
            },
            "type": "array"
          }
        },
        "required": [
          "extractedEntities"
        ],
        "type": "object"
      },
      "ExtractedNameWithSimilarEntitiesV2": {
        "type": "object",
        "description": "Schema for ExtractedNameWithSimilarEntitiesV2",
        "properties": {},
        "additionalProperties": true
      },
      "StandardSource": {
        "type": "object",
        "description": "Schema for StandardSource",
        "properties": {},
        "additionalProperties": true
      },
      "ChatCompletionResponseMessage": {
        "type": "object",
        "description": "Schema for ChatCompletionResponseMessage",
        "properties": {},
        "additionalProperties": true
      },
      "ChartSource": {
        "type": "object",
        "description": "Schema for ChartSource",
        "properties": {},
        "additionalProperties": true
      },
      "TrendingTopicQuestion": {
        "type": "object",
        "description": "Schema for TrendingTopicQuestion",
        "properties": {},
        "additionalProperties": true
      },
      "ChatCompletionMessage": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "user",
              "assistant",
              "system"
            ],
            "default": "user",
            "description": "The role of the message author"
          },
          "content": {
            "type": "string",
            "default": "What is Solana?",
            "description": "The content of the message"
          }
        },
        "required": [
          "role",
          "content"
        ]
      },
      "SearchRequest": {
        "properties": {
          "query": {
            "description": "One natural language question. Ask one thing per call.",
            "type": "string",
            "example": "What is EigenLayer restaking?"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "SearchSource": {
        "properties": {
          "domain": {
            "description": "The corpus the document came from, for example research, news, external_news, diligence, governance, twitter or video_transcript.",
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "published_at": {
            "description": "When the document became current. Absent where the domain carries no date.",
            "format": "date-time",
            "type": "string"
          },
          "content": {
            "description": "The document text.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SearchResponse": {
        "properties": {
          "sources": {
            "description": "The retrieved documents.",
            "items": {
              "$ref": "#/components/schemas/SearchSource"
            },
            "type": "array"
          },
          "error": {
            "description": "Set only when the run finds no usable document. It explains why.",
            "type": "string"
          }
        },
        "required": [
          "sources"
        ],
        "type": "object"
      },
      "SearchResponseMetadata": {
        "properties": {
          "trace_id": {
            "format": "byte",
            "type": "string"
          }
        },
        "required": [
          "trace_id"
        ],
        "type": "object"
      },
      "ComputeRequest": {
        "properties": {
          "query": {
            "description": "One natural language question naming the metric, the entity, and the time range.",
            "type": "string",
            "example": "What is the market cap of Bitcoin?"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "ComputeResult": {
        "properties": {
          "dataset": {
            "description": "The dataset the query ran against.",
            "type": "string"
          },
          "query": {
            "description": "The SQL the agent executed.",
            "type": "string"
          },
          "columns": {
            "description": "Names the positions in each query_result row, which are otherwise unlabelled.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "query_result": {
            "description": "The rows, JSON-encoded as an array of arrays.",
            "type": "string"
          },
          "truncated": {
            "description": "The row cap was reached, so more rows may match.",
            "type": "boolean"
          },
          "query_error": {
            "description": "Why this query returned nothing.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ComputeResponse": {
        "properties": {
          "results": {
            "description": "The queries that ran.",
            "items": {
              "$ref": "#/components/schemas/ComputeResult"
            },
            "type": "array"
          },
          "error": {
            "description": "Set only when the run produces no usable result. It explains why.",
            "type": "string"
          }
        },
        "required": [
          "results"
        ],
        "type": "object"
      },
      "ComputeResponseMetadata": {
        "properties": {
          "trace_id": {
            "format": "byte",
            "type": "string"
          }
        },
        "required": [
          "trace_id"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "apiKey": {
        "in": "header",
        "name": "X-Messari-API-Key",
        "type": "apiKey"
      }
    }
  }
}
