# GET /wallet/report: $0.10 per call

AI due-diligence report on a wallet (Base, Ethereum, Solana): holdings and USD value, recent activity, behaviour profile (trader, bot-like, dormant), sanctions/theft/phishing screen of the wallet AND its top counterparties, a verdict (avoid, caution, ok) and an AI analyst note. ?address=...&chain=base

- **Price:** $0.10 in USDC, the same on Base, Solana, Polygon, Arbitrum. Failed calls are never charged.
- **Free trial:** no, paid only (it uses a paid AI model or data source, or costs more than the trial covers). Other ways to pay: x402 or [prepaid credits](/credits).
- **Answers cached for:** 5 min
- **Data sources:** Blockscout (free); Solana RPC (public); DexScreener (free); GoPlus Security (free tier); Workers AI
- **Lane:** Crypto & on-chain ([OpenAPI](/openapi/crypto.json))
- **Live health:** [status page](/status)

## Free sample

See an answer for the demo input first, free (no payment, 10 a minute): [https://aayatai.com/sample/wallet-report](/sample/wallet-report). It is a stored real answer when we have one, otherwise an example marked `"kind": "illustrative"`.

```bash
curl "https://aayatai.com/sample/wallet-report"
```

## 1. See the price (free)

Call it without paying: you get `402 Payment Required` and a `PAYMENT-REQUIRED` header with the exact price and where to pay.

```bash
curl -i "https://aayatai.com/wallet/report?address=0xbA7d7DcA32B3659DbAB451E5b408FF8F23F13442&chain=base"
```

## 2. Pay and call (TypeScript)

```bash
npm install @x402/fetch @x402/evm viem
```

```ts
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";

// A wallet used only by your agent, holding a little USDC on Base.
const account = privateKeyToAccount(process.env.WALLET_PRIVATE_KEY as `0x${string}`);
const pay = wrapFetchWithPaymentFromConfig(fetch, {
  schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(account) }],
});

const res = await pay("https://aayatai.com/wallet/report?address=0xbA7d7DcA32B3659DbAB451E5b408FF8F23F13442&chain=base");
console.log(await res.json());
```

## 3. Or as an MCP tool

```ts
// MCP server: https://aayatai.com/mcp (Streamable HTTP). With the x402 MCP client (see /start):
const result = await client.callTool("wallet-report", {"address":"0xbA7d7DcA32B3659DbAB451E5b408FF8F23F13442","chain":"base"});
```

## Inputs

- `address` **(required)** (string): Wallet address: 0x... for Base/Ethereum, base58 for Solana.
- `chain` (string; one of `base`, `ethereum`, `solana`; default `base`): base, ethereum or solana.

Bad inputs are rejected with HTTP 400 before any payment is asked for.

## Example answer

```json
{
  "address": "0xbA7d7DcA32B3659DbAB451E5b408FF8F23F13442",
  "chain": "base",
  "verdict": "ok",
  "headline": "Holds about $44 across 1 token(s) plus ETH.",
  "keyPoints": [
    "Holds about $44 across 1 token(s) plus ETH.",
    "Behaviour: regular user, ~3 transactions/day recently."
  ],
  "profile": {
    "kind": "wallet",
    "label": null,
    "totalValueUsd": 44.48,
    "tokenCount": 1
  },
  "behaviour": {
    "style": "regular user",
    "transactionsPerDay": 3,
    "swapShare": 0,
    "failedShare": 0,
    "daysSinceActive": 1,
    "topMethods": [
      {
        "method": "transfer",
        "count": 12
      }
    ],
    "tokenTransfersSeen": 25
  },
  "risk": {
    "verdict": "clean",
    "flags": [],
    "maliciousContractsCreated": 0,
    "dataSources": []
  },
  "counterparties": [
    {
      "address": "0x...",
      "interactions": 12,
      "verdict": "clean",
      "flags": []
    }
  ],
  "recent": {
    "transactions": [],
    "windowStart": "2026-09-20T10:00:00Z"
  },
  "analysis": {
    "stance": "ok",
    "summary": "A small, regularly used wallet with no risk flags on it or its main counterparties.",
    "keyPoints": [],
    "model": "Workers AI (Mistral Small 3.1 24B)"
  },
  "sources": [
    "Blockscout",
    "DexScreener",
    "GoPlus Security",
    "Workers AI"
  ],
  "disclaimer": "",
  "generatedAt": "2026-09-28T12:00:00.000Z"
}
```

## Related

- [GET /token/price](/services/token-price) ($0.005): Live price of any token on Base, Solana, Ethereum, BNB, Arbitrum, Polygon, Optimism or Avalanche from DEX data: USD price, total liquidity, 24h volume, buys/sel
- [GET /token/safety](/services/token-safety) ($0.02): Rug-pull and scam check for any token on Base, Solana, Ethereum, BNB, Arbitrum, Polygon, Optimism or Avalanche.
- [GET /token/report/cached](/services/token-report-cached) ($0.05): Full token report, cached tier (answers up to 15 minutes old, half price): safety (honeypot, taxes, owner powers), holders (concentration, exchange/fund/locked 
- [GET /token/report](/services/token-report) ($0.10): Full token report, live: safety (honeypot, taxes, owner powers), holders (concentration, exchange/fund/locked share), liquidity (depth, locks, pools), price act
- [GET /token/report/deep](/services/token-report-deep) ($0.25): Deep token report: everything in /token/report (safety (honeypot, taxes, owner powers), holders (concentration, exchange/fund/locked share), liquidity (depth, l
- [GET /token/new](/services/token-new) ($0.01): New token launches with real liquidity: tokens whose first DEX pool opened in the last hour (up to 24h) with at least $10k liquidity (adjustable), newest first,
- [GET /token/whales](/services/token-whales) ($0.02): Whale and exchange flows for a token on Base, Ethereum, Arbitrum, Optimism or Polygon, from its latest ~250 transfers: large transfers, deposits/withdrawals per
- [GET /wallet](/services/wallet) ($0.01): Wallet profile on Base, Ethereum or Solana: native balance, token holdings with USD values (top 25), total portfolio value, whether it is a contract, ENS name, 

New here? [Getting started in 60 seconds](/start). All services: [Aayat AI](/).