# Vybe Solana Trades Endpoint

> Vybe Solana Trades Endpoint is a paid API for AI agents from x402-api.vybenetwork.xyz, paid per call via x402, $0.024/call, status unknown (last checked 2026-10-02).

Fetches paginated Solana on-chain trade records filtered by token, market, program, wallet, authority, or time range

## Facts

- Endpoint: GET https://x402-api.vybenetwork.xyz/v4/trades?utm_source=zero.xyz
- Price: $0.024/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402, finance
- Canonical page: https://www.zero.xyz/c/vybe-solana-trades-endpoint-52940514
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_bAxHYVyCLQ_kT3BRQv82D

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability vybe-solana-trades-endpoint-52940514
```

Example prompt: Show me the last 100 trades for the SOL/USDC pair on Solana — filter by mint address So11111111111111111111111111111111111111112, sort descending by block time, and start from page 0.

## When to prefer this

Use this endpoint when you need granular, filterable Solana DEX trade history — especially when filtering by token mint, market, program, or fee payer. Prefer over wallet-level endpoints when the focus is trade events rather than account balances or transfers. The x402 micropayment model means no API key setup is required.

## Known failure modes

- Payment not included or insufficient USDC via x402 — returns 402 Payment Required
- Invalid mint or market address format — returns 400 Bad Request
- Both sortByAsc and sortByDesc provided simultaneously — returns 400 Bad Request
- Time range too wide or limit exceeds maximum of 1000 — returns 400 or truncated results
- Unknown program address — returns empty result set or 404

## How this service works

Solana API endpoint for fetching trade history, volume, and metrics for any supported Solana AMM or DEX program, filtered by program.

## Output

Returns a paginated list of Solana on-chain trade records including price, block time, market, program, token addresses (base and quote), and fee payer details, structured as a TradeDataProgramVecReturn object

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "page": {
   "type": "integer",
   "format": "int32",
   "minimum": 0,
   "nullable": true,
   "description": "Page selection, 0-indexed."
  },
  "limit": {
   "type": "integer",
   "format": "int32",
   "minimum": 0,
   "nullable": true,
   "description": "Limit of the number of trades to return per page. Default/max is 1000."
  },
  "timeEnd": {
   "type": "integer",
   "format": "int64",
   "minimum": 0,
   "nullable": true,
   "description": "End time of the data to return (unix timestamp)"
  },
  "sortByAsc": {
   "type": "string",
   "nullable": true,
   "description": "Sort ascending by 'price' or 'blockTime'. Only one of sort_by_asc or sort_by_desc can be used"
  },
  "timeStart": {
   "type": "integer",
   "format": "int64",
   "minimum": 0,
   "nullable": true,
   "description": "Start time of the data to return (unix timestamp)"
  },
  "resolution": {
   "allOf": [
    {
     "type": "string",
     "format": "resolution"
    }
   ],
   "nullable": true,
   "description": "Resolution of the data. Possible values: 1h, 1d, 1w, 1m, 1y, or a string parseable to seconds"
  },
  "sortByDesc": {
   "type": "string",
   "nullable": true,
   "description": "Sort descending by 'price' or 'blockTime'. Only one of sort_by_asc or sort_by_desc can be used"
  },
  "mintAddress": {
   "allOf": [
    {
     "type": "string",
     "format": "pubkey"
    }
   ],
   "nullable": true,
   "description": "The public key of either the base or quote token"
  },
  "marketAddress": {
   "allOf": [
    {
     "type": "string",
     "format": "pubkey"
    }
   ],
   "nullable": true,
   "description": "Market id to filter with. If provided, the baseMintAddress and quoteMintAddress fields are ignored"
  },
  "programAddress": {
   "allOf": [
    {
     "type": "string",
     "format": "pubkey"
    }
   ],
   "nullable": true,
   "description": "The program on which the trade occurred"
  },
  "baseMintAddress": {
   "allOf": [
    {
     "type": "string",
     "format": "pubkey"
    }
   ],
   "nullable": true,
   "description": "The public key of the base token"
  },
  "feePayerAddress": {
   "allOf": [
    {
     "type": "string",
     "format": "pubkey"
    }
   ],
   "nullable": true,
   "description": "The public key of the entity that pays for the trade, often used for retrieving trades associated with a specific trading account."
  },
  "authorityAddress": {
   "allOf": [
    {
     "type": "string",
     "format": "pubkey"
    }

… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "data"
 ],
 "properties": {
  "data": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "authorityAddress",
     "blockTime",
     "iixOrdinal",
     "baseMintAddress",
     "interIxOrdinal",
     "ixOrdinal",
     "marketAddress",
     "quoteMintAddress",
     "price",
     "programAddress",
     "signature",
     "slot",
     "txIndex",
     "fee",
     "feePayerAddress",
     "baseSize",
     "quoteSize"
    ],
    "properties": {
     "fee": {
      "type": "string",
      "description": "The amount of fees paid for the trade."
     },
     "slot": {
      "type": "integer",
      "format": "int64",
      "minimum": 0,
      "description": "Slot of the trade"
     },
     "price": {
      "type": "string",
      "description": "The price of one unit of the base token, expressed in terms of the quote token."
     },
     "txIndex": {
      "type": "integer",
      "format": "int32",
      "description": "The transaction index of the trade."
     },
     "baseSize": {
      "type": "string",
      "description": "The quantity of the base token involved in the trade."
     },
     "blockTime": {
      "type": "integer",
      "format": "int64",
      "description": "The Unix timestamp at which the trade occurred on the blockchain."
     },
     "ixOrdinal": {
      "type": "integer",
      "format": "int32",
      "minimum": 0,
      "description": "The location of the trade ix inside the transaction."
     },
     "quoteSize": {
      "type": "string",
      "description": "The amount of the quote token exchanged in the trade."
     },
     "signature": {
      "type": "string",
      "description": "The unique identifier of the transaction signature on the blockchain."
     },
     "iixOrdinal": {
      "type": "integer",
      "format": "int32",
      "minimum": 0,
      "description": "The location of the trade inner ix inside the transaction. 255 is returned if not applicable."
     },
     "marketAddress": {
      "type": "string",
      "description": "The address of the market pair, e.g., SOL/USDC, where the trade took place."
     },
     "interIxOrdinal": {
      "type": "integer",
      "format": "int32",
      "minimum": 0,
      "description": "The location of the trade inside an ix (in 2 hop swaps). 255 is returned if not applicable."
     },
     "programAddress": {
      "type": "string",
      "description": "The public key of the AMM or DEX program that facilitated the 
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/vybe-solana-trades-endpoint-52940514/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-api.vybenetwork.xyz](https://www.zero.xyz/host/x402-api.vybenetwork.xyz/llms.txt)
