# Otto AI — Wallet Holdings Analyzer (Base Network)

> Otto AI — Wallet Holdings Analyzer (Base Network) is a paid API for AI agents from x402.ottoai.services, paid per call via x402, $0.02/call, status unknown (last checked 2026-09-15).

Returns a full token holdings breakdown for a Base network wallet address, including USD values, prices, 24h price changes, portfolio percentages, and an AI-generated portfolio narrative.

## Facts

- Endpoint: GET https://x402.ottoai.services/wallet-holdings
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/otto-ai-wallet-holdings-analyzer-base-network-339084d2
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_P6cR-LGlX5iEex6l0PA24

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 otto-ai-wallet-holdings-analyzer-base-network-339084d2
```

Example prompt: Can you pull up the full token holdings and portfolio breakdown for Base wallet 0xc65a451047094cdd723fff77334d3b9ff8cf28e7 — I want to see each token's USD value, price change, and what percentage of the portfolio it makes up?

## When to prefer this

Use this endpoint when you need a comprehensive, USD-valued snapshot of all token holdings for a specific Base network wallet — especially when you also want an AI-generated narrative summary (bagcheckRead) of the portfolio's composition and risk profile. Prefer this over generic blockchain explorers when you need structured, agent-ready JSON with per-token analytics including price change and portfolio weight.

## Known failure modes

- Invalid or malformed wallet address returns an error
- Wallet address on a non-Base network may return empty or incorrect data
- Very new wallets with no holdings may return an empty holdings array
- Rate limiting or payment failure via x402 returns 402 Payment Required
- Stale data if cache TTL has expired (check meta.stalenessSec)
- Degraded mode indicated by meta.degraded=true may return partial data

## How this service works

Base wallet portfolio breakdown: up to 100 token positions with live USD price and value, portfolio percentage, 24h price change — native ETH included, spam filtered, top 50 returned; truncated:true means the wallet exceeds the 100-position fetched page (totals null then). Plus total value, top-position concentration and an AI bagcheck read. Wallet holdings, wallet portfolio, wallet balance, bagcheck. $0.02 per call.

## Output

A JSON object containing a list of all token holdings for the queried Base wallet, each with token name, symbol, native token flag, contract address, formatted balance, USD price, USD value, 24h price change percentage, portfolio percentage, and contract verification status. Also includes total USD value, token count, whether results were truncated, a timestamp, and a 'bagcheckRead' field containing an AI-generated plain-English narrative summarizing the wallet's composition and risk profile.

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "wallet": "0xc65a451047094cdd723fff77334d3b9ff8cf28e7"
  }
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "wallet"
     ],
     "properties": {
      "wallet": {
       "type": "string",
       "description": "Wallet address to analyze (0x..., Base network)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "status"
     ],
     "properties": {
      "data": {},
      "meta": {
       "type": "object"
      },
      "reason": {
       "type": "string",
       "description": "status=unavailable only; every >=400 is UNCHARGED"
      },
      "status": {
       "enum": [
        "success",
        "unavailable"
       ],
       "type": "string"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": {
   "chain": "base",
   "holdings": [
    {
     "name": "Ether",
     "symbol": "ETH",
     "usdPrice": 1620.45,
     "usdValue": 99826.71,
     "nativeToken": true,
     "tokenAddress": null,
     "balanceFormatted": "61.6042",
     "verifiedContract": null,
     "priceChange24hPct": -3.1,
     "portfolioPercentage": 54.2
    },
    {
     "name": "USD Coin",
     "symbol": "USDC",
     "usdPrice": 1,
     "usdValue": 51230.88,
     "nativeToken": false,
     "tokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
     "balanceFormatted": "51230.88",
     "verifiedContract": true,
     "priceChange24hPct": 0,
     "portfolioPercentage": 27.8
    },
    {
     "name": "Degen",
     "symbol": "DEGEN",
     "usdPrice": 0.004,
     "usdValue": 11801.6,
     "nativeToken": false,
     "tokenAddress": "0x4ed4e862860bed51a9570b96d89af5e1b0efefed",
     "balanceFormatted": "2950400.10",
     "verifiedContract": true,
     "priceChange24hPct": 5.8,
     "portfolioPercentage": 6.4
    }
   ],
   "truncated": false,
   "tokenCount": 23,
   "generatedAt": "2026-06-11T12:00:00.000Z",
   "bagcheckRead": "A mid-six-figure Base wallet dominated by ETH (54%) with a meaningful USDC buffer (28%) — closer to a treasury allocation than a degen book. The risk tail is small: DEGEN at 6.4% is the largest alt position and the only notable 24h mover (+5.8%). No unverified-contract positions among the priced holdings; the remaining ~20 tokens are dust under 2% each.",
   "totalUsdValue": 184220.45,
   "walletAddress": "0xc65a451047094cdd723fff77334d3b9ff8cf28e7",
   "analysisStatus": "ok",
   "topPositionPct": 54.2
  },
  "meta": {
   "degraded": false,
   "validUntil": "",
   "generatedAt": "",
   "stalenessSec": 0
  },
  "status": "success"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/otto-ai-wallet-holdings-analyzer-base-network-339084d2/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.ottoai.services](https://www.zero.xyz/host/x402.ottoai.services/llms.txt)
