API v1Endpoints

Assets (collection)

Search, curated lists, mint resolution, snapshots, and aggregate risk.

All endpoints on this page are Platform API endpoints unless noted otherwise.

GET /v1/assets/search

Search canonical assets by text query.

  • Auth: x-api-key
  • Scope: assets:read

Query params

  • q (required): search string
  • limit (optional): integer (1–50), default 20
  • category (optional): must be one of the supported asset categories

Response

interface AssetsSearchResponse {
  query: string;
  category: string | null;
  results: Array<{
    assetId: string;
    name?: string;
    symbol?: string;
    category: string;
    aliases: string[];
    symbols: string[];
    imageUrl: string | null;
    stats: null | {
      price: number;
      liquidity: number;
      volume24hUSD: number;
      marketCap: number;
      priceChange24hPercent: number;
      priceChange1hPercent?: number;
    };
    primaryVariant: null | {
      variantId: string;
      mint: string;
      kind: string;
      trustTier: string;
      tags: string[];
      issuer?: string;
      issuerUrl?: string;
      label?: string;
      symbol?: string;
      name?: string;
      market?: {
        price: number;
        liquidity: number;
        volume24hUSD: number;
        marketCap: number;
        priceChange24hPercent: number;
        priceChange1hPercent?: number;
        decimals: number;
        logoURI?: string;
        lastFetchedAt?: number;
      };
    };
  }>;
}

Example

curl -sS "$API_BASE_URL/v1/assets/search?q=bitcoin&limit=10" \
  -H "x-api-key: $API_KEY"

GET /v1/assets/resolve

Resolve a Solana mint to its canonical assetId + variant details.

  • Auth: x-api-key
  • Scope: assets:read

Query params

  • mint (required): Solana mint address (base58)

Response

interface AssetsResolveResponse {
  assetId: string;
  asset: {
    assetId: string;
    name: string | null;
    symbol: string | null;
    category: string;
    aliases: string[];
  };
  variant: {
    mint: string;
    chain: string;
    kind: string;
    trustTier: string;
    tags: string[];
    issuer?: string;
    issuerUrl?: string;
    label?: string;
  };
}
{
  "assetId": "solana",
  "asset": {
    "assetId": "solana",
    "name": "Solana",
    "symbol": "SOL",
    "category": "l1",
    "aliases": []
  },
  "variant": {
    "mint": "So11111111111111111111111111111111111111112",
    "chain": "solana",
    "kind": "native",
    "trustTier": "tier1",
    "tags": []
  }
}

Example

curl -sS "$API_BASE_URL/v1/assets/resolve?mint=$MINT" \
  -H "x-api-key: $API_KEY"

GET /v1/assets/curated

Get curated assets from a list.

  • Auth: x-api-key
  • Scope: assets:read

Query params

  • list (optional): curated list id, or all (default all)
  • groupBy (optional): asset (default) or mint

Notes

  • Results are sorted by stats.volume24hUSD descending when available.
  • groupBy=mint expands the response to one row per variant mint.

Response

interface AssetsCuratedResponse {
  listId: string;
  assets: Array<{
    assetId: string;
    name?: string;
    symbol?: string;
    category: string;
    aliases: string[];
    symbols: string[];
    imageUrl: string | null;
    stats: null | {
      price: number;
      liquidity: number;
      volume24hUSD: number;
      marketCap: number;
      priceChange24hPercent: number;
      priceChange1hPercent?: number;
    };
    primaryVariant: null | {
      variantId: string;
      mint: string;
      kind: string;
      trustTier: string;
      tags: string[];
      issuer?: string;
      issuerUrl?: string;
      label?: string;
      symbol?: string;
      name?: string;
      market?: {
        price: number;
        liquidity: number;
        volume24hUSD: number;
        marketCap: number;
        priceChange24hPercent: number;
        priceChange1hPercent?: number;
        decimals: number;
        logoURI?: string;
        lastFetchedAt?: number;
      };
    };
  }>;
}

Notes:

  • If groupBy=mint, assets[] becomes “one row per mint” and primaryVariant is always present for returned rows.

Example

curl -sS "$API_BASE_URL/v1/assets/curated?list=all&groupBy=asset" \
  -H "x-api-key: $API_KEY"

POST /v1/assets/market-snapshots

Batch lookup cached market snapshots for up to 250 mints.

  • Auth: x-api-key
  • Scope: assets:read
  • Body: JSON

Body

Either mints or addresses (both treated the same).

{ "mints": ["So11111111111111111111111111111111111111112"] }

Notes

  • Input is de-duped and capped at 250 addresses.
  • Returns an array (Convex-backed) of token search rows for those addresses.

Response

This endpoint returns an array of token rows. The exact row shape can evolve, but it is safe to treat each entry as “token metadata + market snapshot data” keyed by the requested address.

type AssetsMarketSnapshotsResponse = Array<unknown>;

Example

curl -sS "$API_BASE_URL/v1/assets/market-snapshots" \
  -H "x-api-key: $API_KEY" \
  -H "content-type: application/json" \
  -d '{"mints":["So11111111111111111111111111111111111111112"]}'

GET /v1/assets/variant-markets

Batch lookup per-mint variant market snapshots (best-effort; may be null if not cached).

  • Auth: x-api-key
  • Scope: assets:read

Query params

  • mints or addresses: comma-separated list (max 50)

Response shape (high level)

  • variants[] where each entry contains:
    • mint
    • assetId (when variant is known)
    • chain (when variant is known)
    • market (market snapshot, or null if missing)

Response

interface AssetsVariantMarketsResponse {
  variants: Array<{
    mint: string;
    assetId: string | null;
    chain: string | null;
    market: Record<string, unknown> | null;
  }>;
}
{
  "variants": [
    {
      "mint": "So11111111111111111111111111111111111111112",
      "assetId": "solana",
      "chain": "solana",
      "market": {
        "symbol": "SOL",
        "name": "Solana",
        "decimals": 9,
        "price": 0,
        "liquidity": 0,
        "volume24hUSD": 0,
        "marketCap": 0,
        "priceChange24hPercent": 0,
        "lastFetchedAt": 0
      }
    }
  ]
}

Example

curl -sS "$API_BASE_URL/v1/assets/variant-markets?mints=$MINT1,$MINT2" \
  -H "x-api-key: $API_KEY"

GET /v1/assets/risk-summary

Compute a quick market-based “risk summary” for a mint.

  • Auth: x-api-key
  • Scope: requires either assets:read or assets:risk:read

Query params

  • mint (required) or address (alias): Solana mint

Notes

  • This endpoint requires a cached market snapshot; if missing you’ll get an “Insufficient Data” response.

Response

interface AssetsRiskSummaryResponse {
  score: number;
  grade: string;
  label: string;
  tone: "info" | "success" | "warning" | "danger";
  isTrustedLaunch: boolean;
  caps: Array<unknown>;
  hasInsufficientData: boolean;
  insufficientDataReason?: string;
}
{
  "score": 0,
  "grade": "C",
  "label": "Insufficient Data",
  "tone": "info",
  "isTrustedLaunch": false,
  "caps": [],
  "hasInsufficientData": true,
  "insufficientDataReason": "Market snapshot not available in cache"
}

Example

curl -sS "$API_BASE_URL/v1/assets/risk-summary?mint=$MINT" \
  -H "x-api-key: $API_KEY"

On this page