- Brand
- Unknown
- Category
- Pending
- Primary Subcategory
- Pending
Integration details
Description
Ask Gina is a research assistant for crypto, prediction markets, perpetuals, and equities. Use it to fetch real-time prices and historical data for tokens, Hyperliquid markets, and Polymarket prediction markets, and to analyze your Gina wallet, positions, and accounts. Gina cannot place trades or transfer assets inside ChatGPT or Codex.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Category
- Pending
- Primary Subcategory
- Pending
- Secondary Subcategories
- None listed
- Brand
- Unknown
- Access
- Account required
- First tracked
- 2026-10-02
- Tool count
- 35
- Geography
- US
The broad Category that contains the Primary Subcategory.
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Get alerts for Ask Gina
Get updates when Ask Gina’s Discoverability Score or category rank changes.
Competitive lineup
35 tools agents can invoke
Get the user's Ethereum and Solana wallet addresses
Get the cross-chain portfolio balances for the user's Ethereum and Solana wallets
List scheduled prompts for the current user. • Shows active schedules by default • Can include disabled schedules • Can include recent execution history • Returns at most 50 schedules by default; limit accepts 1-50 • Supports continuation with page • Reports total, returned, and continuation metadata
Render one read-only Gina conversation artifact from verified source receipts. Use this presentation tool only after calling every data tool needed for a composite semantic answer. Pass those successful results as sourceReceipts. Never invent missing values, and never copy display strings into the plan. Call this renderer once for the final composite answer, with every required source receipt represented in one combined spec. Never call it once per source or category. If it returns INVALID_ARGUMENTS, correct the reported spec or receipt-set issue and make one corrective retry. Never retry after success. After it succeeds, do not duplicate the artifact as a Markdown table; add at most one short takeaway sentence. Do not use this tool for a simple fact or when one fixed widget already fits. In particular, call spot.getTokenChart directly for a spot chart, perps.fetchHyperliquidCandles directly for a perpetual chart, perps.getHyperliquidPositions directly for perpetual positions, and predictions.getPolymarketPositions directly for Polymarket positions. Select the canonical plan by the semantic view composed from the receipts, not by visual preference: - Use the portfolio plan for portfolio, holdings, positions, allocation, net-worth, or account-risk answers. - Use the asset signal plan for a current, non-temporal cross-source asset comparison or thesis check. - Use the asset timeline plan only when the question is explicitly temporal and asks for an observed sequence, history, or change over time. Copy the selected canonical plan's component names, element graph, props, and $state pointers unchanged except for the asset chrome and signal lead order described below. Never put a financial value in a literal. Do not combine plans or invent component types. Supported component types (exact, case-sensitive names): RootArticle, Stack, Disclosure, Caption, AnswerBlock, IncompleteBanner, ProvenanceStrip, SignalAlignmentRow, SpotLeadBlock, PerpsLeadBlock, OutcomeLeadBlock, OnchainSpotBlock, EvidenceList, CaveatsList, PairwiseList, MatrixHeader, ComparisonMatrixTable, TimelineMetricGrid, ThesisTimelineList, EvidenceAndCaveatsList, UrgentAlertsList, RiskMetrics, LedgerHeader, AssetRows, PerpRows, PredictionRows, VenueAllocationTape, VenueList, VenueCard. spec.root is an elements key, not a component type. Canonical plans use root "article" for a RootArticle element. Stack is layout-only; its props are gap and padded. Only those exact names are valid. Canonical portfolio plan: {"catalogueVersion":2,"root":"article","elements":{"article":{"type":"RootArticle","props":{},"children":["answer","banner","alerts","risk","ledger","assets","tape","perps-disclosure","predictions-disclosure","venues-disclosure","provenance"]},"answer":{"type":"AnswerBlock","props":{"eyebrow":"Portfolio","headline":{"$state":"/headlineAnswer"},"subtext":{"$state":"/headlineSubtext"}},"children":[]},"banner":{"type":"IncompleteBanner","props":{"text":{"$state":"/headlineSubtext"}},"visible":{"$state":"/netWorthComplete","eq":false},"children":[]},"alerts":{"type":"UrgentAlertsList","props":{"alerts":{"$state":"/riskSummary/urgentAlerts"}},"children":[]},"risk":{"type":"RiskMetrics","props":{"totalNetWorthUsd":{"$state":"/totalNetWorth"},"netWorthComplete":{"$state":"/netWorthComplete"},"riskSummary":{"$state":"/riskSummary"}},"visible":{"$state":"/riskSummary/showRisk"},"children":[]},"ledger":{"type":"LedgerHeader","props":{"totalNetWorthUsd":{"$state":"/totalNetWorth"},"totalPnl24hUsd":{"$state":"/pnl24h/usd"},"totalPnl24hPercent":{"$state":"/pnl24h/ratio"}},"children":[]},"assets":{"type":"AssetRows","props":{"assets":{"$state":"/assets"},"padded":true},"visible":{"$state":"/assets/0"},"children":[]},"tape":{"type":"VenueAllocationTape","props":{"venues":{"$state":"/venueAllocations"}},"visible":{"$state":"/venueAllocations/0"},"children":[]},"perps-disclosure":{"type":"Disclosure","props":{"title":"Perpetual positions","defaultOpen":false},"visible":{"$state":"/perpPositions/0"},"children":["perps"]},"perps":{"type":"PerpRows","props":{"positions":{"$state":"/perpPositions"}},"children":[]},"predictions-disclosure":{"type":"Disclosure","props":{"title":"Prediction positions","defaultOpen":false},"visible":{"$state":"/predictionPositions/0"},"children":["predictions"]},"predictions":{"type":"PredictionRows","props":{"positions":{"$state":"/predictionPositions"},"ruled":true},"children":[]},"venues-disclosure":{"type":"Disclosure","props":{"title":"Venues","defaultOpen":false},"visible":{"$state":"/venues/0"},"children":["venues"]},"venues":{"type":"VenueList","props":{},"children":["venue-card"],"repeat":{"statePath":"/venues"}},"venue-card":{"type":"VenueCard","props":{"venue":{"$item":"/venue"},"assets":{"$item":"/assets"},"perpPositions":{"$item":"/perpPositions"},"predictionPositions":{"$item":"/predictionPositions"}},"children":[]},"provenance":{"type":"ProvenanceStrip","props":{"rows":{"$state":"/provenance"}},"children":[]}}} For the asset signal or asset timeline plan only, Set AnswerBlock.eyebrow to the requested asset and view, such as "BTC comparison" or "SOL timeline". Do not copy an example heading that names a different asset. Keep the canonical portfolio plan eyebrow unchanged. You may also change disclosure titles; never put a financial value in a literal. For the asset signal plan, order body.children by the question's lead family. Keep alignment first; move perps ahead of spot and outcome for a perpetual-led question, or outcome ahead of spot and perps for a prediction-led question. Otherwise keep spot first. Preserve every node, prop, and $state pointer; only reorder those three lead blocks. Canonical asset signal plan: {"catalogueVersion":2,"root":"article","elements":{"article":{"type":"RootArticle","props":{},"children":["answer","banner","body","matrix","evidence","caveats","onchain","provenance"]},"answer":{"type":"AnswerBlock","props":{"eyebrow":"Asset comparison","headline":{"$state":"/comparison/headline"},"subtext":{"$state":"/comparison/subtext"}},"children":[]},"banner":{"type":"IncompleteBanner","props":{"text":{"$state":"/comparison/caveats/0"}},"visible":{"$state":"/incomplete"},"children":[]},"body":{"type":"Stack","props":{"gap":"normal","padded":true},"children":["alignment","spot","perps","outcome"]},"alignment":{"type":"SignalAlignmentRow","props":{"alignment":{"$state":"/comparison/alignment"}},"children":[]},"spot":{"type":"SpotLeadBlock","props":{"spot":{"$state":"/spot"}},"children":[]},"perps":{"type":"PerpsLeadBlock","props":{"perps":{"$state":"/perps"}},"children":[]},"outcome":{"type":"OutcomeLeadBlock","props":{"outcome":{"$state":"/outcome"}},"children":[]},"matrix":{"type":"ComparisonMatrixTable","props":{"spot":{"$state":"/spot"},"perps":{"$state":"/perps"},"outcome":{"$state":"/outcome"}},"children":[]},"evidence":{"type":"Disclosure","props":{"title":"Evidence","defaultOpen":true},"children":["evidence-list"]},"evidence-list":{"type":"EvidenceList","props":{"items":{"$state":"/comparison/evidence"}},"children":[]},"caveats":{"type":"Disclosure","props":{"title":"Caveats and pairwise"},"children":["caveats-list","pairwise"]},"caveats-list":{"type":"CaveatsList","props":{"items":{"$state":"/comparison/caveats"}},"children":[]},"pairwise":{"type":"PairwiseList","props":{"pairwise":{"$state":"/comparison/pairwise"}},"children":[]},"onchain":{"type":"OnchainSpotBlock","props":{"spot":{"$state":"/onchainSpot"}},"visible":{"$state":"/onchainSpot"},"children":[]},"provenance":{"type":"ProvenanceStrip","props":{"rows":{"$state":"/provenance"}},"children":[]}}} Canonical asset timeline plan: {"catalogueVersion":2,"root":"article","elements":{"article":{"type":"RootArticle","props":{},"children":["answer","metrics","timeline","evidence","provenance"]},"answer":{"type":"AnswerBlock","props":{"eyebrow":"Asset timeline","headline":{"$state":"/comparison/headline"},"subtext":{"$state":"/comparison/subtext"}},"children":[]},"metrics":{"type":"TimelineMetricGrid","props":{"spot":{"$state":"/spot"},"perps":{"$state":"/perps"},"outcome":{"$state":"/outcome"},"alignment":{"$state":"/comparison/alignment"}},"children":[]},"timeline":{"type":"ThesisTimelineList","props":{"timeline":{"$state":"/timeline"}},"children":[]},"evidence":{"type":"Disclosure","props":{"title":"Evidence and caveats"},"children":["evidence-list"]},"evidence-list":{"type":"EvidenceAndCaveatsList","props":{"evidence":{"$state":"/comparison/evidence"},"caveats":{"$state":"/comparison/caveats"}},"children":[]},"provenance":{"type":"ProvenanceStrip","props":{"rows":{"$state":"/provenance"}},"children":[]}}} The spec is a render plan against the Gina semantic catalogue. The model selects the plan and source receipts. The server authors every financial fact. Bound-data props must be { $state: "/json-pointer" } or { $item: "/field" } inside repeat. Do not use $template, slots, HTML, scripts, images, URLs, or CSS. Include catalogueVersion: 2. Keep the layout concise.
Create a DuckDB table from Hyperliquid data (trades, candles, order book) for SQL analysis. Omit providerContext for broad trade-history fills; pass providerContext plus coin for explicit HIP-3 venue-scoped tables. Signed-in tables are materialized under a per-user scoped name, so always pass the returned tableName to executeSqlQuery instead of the name you requested.
Execute a read-only SQL query on a DuckDB analysis table. Pass the exact tableName returned by the table-creation tool as tableName and use that same physical name in sqlQuery; authenticated tables may be per-user scoped and differ from the requested name.
Render an interactive Perps price chart by fetching historical candlesticks for a canonical Hyperliquid or HIP-3 market. Use this for chart, candlestick, OHLCV, or Perps price-history requests. For HIP-3 markets such as xyz, pass providerContext with the plain coin. Each candle row includes coin, interval, timestamp (legacy open-time alias for openTimestamp), openTimestamp, closeTimestamp, observedAt, isClosed, and OHLCV. isClosed is closeTimestamp < observedAt (provider T is inclusive; equality remains forming). Pass closedOnly for structural analysis that must exclude the forming bar.
Fetch a current canonical Hyperliquid order-book snapshot for one coin. Returns bounded bid and ask rows directly and does not support HIP-3 provider context or create a SQLite table. For aggregate SQL, use perps.createHyperliquidTable with dataset orderBook, then perps.executeSqlQuery with the returned tableName.
Fetch bounded recent fill rows for the authenticated user's canonical Hyperliquid account. Returns fills directly and does not support HIP-3 provider context or create a SQLite table. Use perps.getHyperliquidPositions for current exposure. For aggregate SQL, use perps.createHyperliquidTable with dataset tradeHistory, then perps.executeSqlQuery with the returned tableName.
Fetch a venue-scoped Hyperliquid account summary. Omit providerContext to return Main Hyperliquid balances plus separate hip3Venues balances for every enabled HIP-3 venue. Pass providerContext to return only that selected venue. Top-level withdrawable and unifiedAvailableValue belong only to the returned venue and never include HIP-3 collateral in Main balances.
Fetch authenticated leverage and trading-capacity state for one Hyperliquid venue and coin. Returns leverage, leverage type, mark price, maximum trade sizes, and available-to-trade values. This is not generic market metadata; use perps.getHyperliquidMarkets for discovery or perps.getHyperliquidPrice for a public midpoint.
List or search canonical Hyperliquid and enabled HIP-3 perpetual markets. Each row is one current snapshot, not OI history or a time series. change24hPct is a fractional 24h mark return (0.01 = 1%), not percentage points. funding is the hourly funding ratio. openInterest is current size in base-coin units, not USD. Omit providerContext for canonical markets, pass providerContext for one HIP-3 venue, or pass query without providerContext to search every enabled venue.
Fetch open orders on Hyperliquid for a user (perps). Returns both numeric `oid` and optional `cloid` for each order, plus normalized venue metadata for canonical or HIP-3 reads.
List available HIP-3 builder-deployed perpetual DEXes. TradeXYZ [xyz] is the enabled primary HIP-3 provider.
Fetch venue-scoped Hyperliquid performance history for the authenticated user. Returns PnL, volume, ROE, and account-value history for one optional period on canonical Hyperliquid or one selected HIP-3 venue. Use perps.getHyperliquidAccount for current balances and margin, and perps.getHyperliquidPositions for current exposure.
Fetch the authenticated user's open perpetual positions across canonical Hyperliquid and every enabled HIP-3 venue in one consolidated read. Use this once for generic current-position requests; do not fan out per-venue position reads to build the UI.
Fetch the current mid price for one canonical Hyperliquid or HIP-3 perpetual market. Omit providerContext for canonical Hyperliquid or pass the selected HIP-3 provider context.
Fetch current mid prices for multiple Hyperliquid markets.
Estimate the cost of a hypothetical Hyperliquid market order from the current order book on canonical Hyperliquid or one HIP-3 builder dex. Walks asks for a buy or bids for a sell and returns filled size, VWAP, worst fill, slippage versus mid, and estimated notional. This is an estimate from the current book snapshot, not a fill guarantee. Insufficient depth returns the same object with fullOrderCovered false and unfilledSize set. A snapshot stale at emit time returns SOURCE_STALE instead of a current quote. Supports HIP-3 builder dexes via the dex parameter (for example xyz) or a dex:coin namespaced coin; omit dex for canonical Hyperliquid. Fee fields carry the authenticated user's taker rate when a Hyperliquid address resolves for the session: the canonical-venue rate from userFees, or the HIP-3 all-in rate via the official deployerFeeScale/growthMode formula; null when unavailable. Does not create a SQLite table.
Fetch bounded public Polymarket market or event rows with optional tag, volume, liquidity, activity, and end-date filters. Returns rows directly for analysis or export; it does not create a SQLite table. Use predictions.searchPredictionMarkets for ordinary topic, URL, or slug discovery and predictions.getExpiringMarkets for deadline-window discovery.
Fetch bounded row-level Polymarket trades and closed positions for the authenticated user. Returns trades, positions, or both directly and does not create SQLite tables. Use predictions.getPolymarketPositions for current holdings or redeemability, and predictions.getPolymarketOrderHistory for the concise fills and realized-performance summary.
Find prediction markets expiring within a specific time window. USE THIS TOOL when user asks about: - "Markets ending today/tonight" - "What's expiring in the next few hours" - "Sports games ending soon" - "Crypto markets resolving today" - "Markets about to close" - Any query about markets with time-based filtering This tool is optimized for browsing/discovery of expiring markets by category. For specific topic searches (e.g., "Trump", "Lakers vs Celtics"), use searchPredictionMarkets instead. For scheduled league games over a future date range (e.g., "EPL games over the following 5 days"), use searchPredictionMarkets with the specific league and date filter instead. Examples: - "Sports markets ending today" → timeWindow: "today", category: "sports" - "NBA games in the next 6 hours" → timeWindow: "next_6_hours", category: "nba" - "EPL markets resolving in the next 5 days" → timeWindow: "next_5_days", category: "epl" - "High volume markets expiring soon" → timeWindow: "next_4_hours", minVolume: 10000 - "What crypto markets are resolving today" → timeWindow: "today", category: "crypto" - "Markets ending in the next hour" → timeWindow: "next_1_hour", category: "all"
Get the user's active-account Polymarket trading history and performance metrics. Returns trading statistics for the currently active Predictions trading account, including: - **Total Volume**: Sum of all USD traded (buys + sells) - **Realized PnL**: Profit/loss from closed/resolved positions - **Win Rate**: Percentage of winning predictions - **Trade History**: Recent executed fills plus redemption activity - **Closed Positions**: Positions the user has EXITED by selling (profit already taken) Account scope: - History and PnL are scoped to the user's currently active Predictions trading account. - Do not present this as aggregate inactive-account history unless a separate aggregate path is explicitly added. IMPORTANT DISTINCTION: - "Closed positions" here means positions the user SOLD - they already received their money from the sale. - These are NOT the same as "redeemable positions". If exitPrice=1 and isWin=true, the user sold at $1/share and already got paid. - To find positions that can be redeemed (shares still held in resolved markets), use getPolymarketPositions and look for isRedeemable=true. Use this tool when: - User asks "What's my Polymarket PnL?" - User asks "How much have I traded on Polymarket?" - User asks "What's my win rate?" - User asks "Show my prediction market performance" - User asks "How many predictions have I won?" - User wants to see trading volume or statistics Do NOT use this tool to check what can be redeemed - use getPolymarketPositions instead. The response includes a summary with key metrics, fill-only recentTrades for backwards compatibility, and recentActivities as the authoritative active-account executed history feed across fills and redeems. The client renders this using a rich UI component.
Get the user's current positions on Polymarket prediction markets. Shows all outcome shares the user currently HOLDS (not sold), including: - Market question and outcome held - Number of shares and average entry price - Current market price and estimated value - Unrealized profit/loss (PnL) - isRedeemable: true if shares can be redeemed for $1 (market resolved, user won) - isExpired/isResolved: market status - Links to view the market on Polymarket Use this tool when: - User asks "What are my Polymarket positions?" - User asks "Show my prediction market holdings" - User asks "How are my predictions doing?" - User asks "What can I redeem?" (look for isRedeemable=true) - After a trade to show updated holdings - User wants to see their portfolio performance IMPORTANT: This shows shares the user STILL HOLDS. - For trade history and closed (sold) positions, use getPolymarketOrderHistory. - Positions with isRedeemable=true can be redeemed using redeemPredictionMarket. Response includes a summary with total value and PnL across all positions. The client renders this data using a rich UI component. You do not need to repeat the data in a table.
Read one already-selected Polymarket market or event in full, with current odds for every outcome. This is a data-only compatibility and App drill-down helper. It does not open a widget. For every user-facing natural-language lookup, including one named event, market, URL, or slug, call predictions.searchPredictionMarkets first. If discovery recommends a presentation, call only its matching render tool. An event may contain many child outcomes. That is still ONE result and ONE call. Never call this once per candidate to produce several results. If more than one market could match, ask the user one focused question instead.
Fetch real-time orderbook data for a Polymarket prediction market outcome. **Use this tool when you need to:** - Analyze market depth and liquidity before trading - Understand the bid-ask spread for an outcome - Estimate slippage for different order sizes - Assess buying vs selling pressure **Prerequisites:** - Valid tokenId from a Polymarket market (use searchPredictionMarkets first) **Response includes:** - Best bid/ask prices and spread - Liquidity analysis (total volume, imbalance ratio) - Pre-computed slippage estimates for common sizes - Minimum order size for the market - Top N price levels on each side **Example prompt:** "Show me the orderbook for the Trump 2024 Yes shares" **Example prompt:** "What's the liquidity like for ETH above 4000 market?" **Example prompt:** "Can I buy 5000 shares without moving the price much?"
Select a specific market from a Polymarket recurring series by series id, series slug, or asset plus timeframe. This is a data-only compatibility and App drill-down helper. It does not open a widget. For a user-facing recurring-series request, call predictions.searchPredictionMarkets first. If discovery recommends a binary presentation, call predictions.renderPredictionBinaryMarket with its discoveryId. The helper supports current, next, or otherwise deterministic recurring-series selection: - current crypto, stock, index, or commodity Up/Down odds - a recipe or automation that needs the same series every run - an explicit series id or series slug - the NEXT market rather than the current one - multi-strikes or event-ladder series, which return several price levels When deterministic selection returns one market, this tool returns the same detailed widget payload as predictions.getPredictionMarketDetails. Multi-strike and event-ladder selections keep their multi-market series payload. For browsing or comparing several markets, use predictions.searchPredictionMarkets.
Render one exact binary prediction market with its probability history. Call predictions.searchPredictionMarkets first. When its presentation renderer is binary_market, pass only its discoveryId here. Do not copy the market payload or presentation fields. A recurring market must retain one current or next series identity. Never use for sparse history, multiple markets or windows, competitive fields, matches, multi-strike or ladder series, resolved markets, or broad results.
Render one approved visual collection from prediction-market discovery. Call predictions.searchPredictionMarkets first. When its presentation renderer is collection, pass only its discoveryId here, or pass { mode: "reference", sourceResultId, selection } to render a subset of that result's market, event, or sports_event ids. Do not copy items, context, or presentation fields. The server redeems the correlated discovery result and validates two to eight market cards or one to ten coherent sports fixtures. Never use this tool for focused details or recurring series.
Render one exact competitive-field prediction event as a podium. Call predictions.searchPredictionMarkets first. When its presentation renderer is podium, pass only its discoveryId here. Do not copy the market payload or presentation fields. Use only for one unresolved event classified as competitive_field with at least three mutually exclusive outcomes. Never use for matches, binary markets, series, unknown structures, resolved events, or broad results.
Use this natural-language entry point for every user-facing Polymarket lookup. Pass the user's original request unchanged. This includes one named market or event, a recurring series, an exact Polymarket URL or slug, scheduled sports fixtures, expiry windows, and general browsing. The server deterministically selects and runs the correct underlying read. Do not call predictions.getPredictionMarketDetails or predictions.getSeriesMarket directly for a user request. In App-capable hosts those are app-only drill-down helpers. After discovery, call at most one matching presentation tool when the result recommends one. For scheduled sports fixtures, preserve the user's league, sport, and play window so the server can resolve kickoff time independently of market expiry: - "get me EPL matches for this weekend" - "get me La Liga matches for next weekend" - "NBA games tomorrow" If the wording could mean scheduled games or markets expiring in a window, the tool returns one clarification question. Results include outcome token IDs where order-book inspection is applicable. This tool is data-only and never opens an App frame. After all discovery attempts, use only the matching App-only presentation tool when it is listed. A coherent scheduled-sports result requires predictions.renderPredictionCollection even when the user did not say cards or widget; other broad neutral searches remain prose unless their recommendation says otherwise.
Fetch bounded swap-history rows for the authenticated user. Filter by lookback, chain, status, and result limit. Returns rows directly for review or export; it does not create a SQLite table. Use a write-capable Ask Gina handoff for a new swap.
Get current price of multiple cryptocurrencies in any supported currency. Perfect for quick price checks like "What's the price of BTC, ETH, and SOL?" Supports both coin IDs (bitcoin, ethereum) and symbols (BTC, ETH).
Get a chart for a token or pool on a specific chain. Prefer passing the TOKEN CONTRACT address; if unavailable, pass the pool address. The slug will be the token or pool address. The provided slug will be placed in /pools/{slug}. Returns the chart plus compact start/end trend evidence for the requested day window.
Get token metadata for a given token symbol or address on a specified network. - Look up tokens by symbol (e.g., "ETH" on "eth" network) - Look up tokens by contract address (e.g., "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" on "eth") - If no network is provided, global coingecko search will be used rather than onchain geckoterminal pool search by network - If a contract address is found on coingecko, it will be used to search for the token on the correct network via geckoterminal - If a contract address is not found on coingecko, the token will be returned as a native token on the network it is found on - Returns metadata including: - address - name - symbol - decimals - image url - price in USD - market cap - fdv (fully diluted valuation) - total reserve in USD - total supply - 24 hour volume - top pools - If found, returns additional market data: - current_price: current token price in USD - ath: all-time high price - ath_change_percentage: percentage change from ATH - ath_date: date when ATH was reached - atl: all-time low price - atl_change_percentage: percentage change from ATL - atl_date: date when ATL was reached - market_cap: total market capitalization - fully_diluted_valuation: valuation at max supply - total_volume: 24h trading volume - high_24h/low_24h: highest/lowest price in last 24h - price_change_percentage metrics: price changes over various timeframes (1h, 24h, 7d, 14d, 30d, 60d, 200d, 1y) - market_cap_change metrics: market cap changes in last 24h - supply metrics: total, max, and circulating supply information
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.