POST /api/v1/wallets/summarymd.read. Each request consumes one request from the standard REST budget. It reads only data OceanX already holds: it does not start a history replay, add wallets to a watch list, renew capture or schedule RPC backfill.
Request
Send a JSON body of the form{"wallets": [...]} with 1–100 distinct Solana wallet addresses. The body may be at most 8 KiB. No query parameters are accepted.
Response
Example captured from production on 2026-10-15 from an 11-wallet batch, trimmed to two rows. The top-levelsummary.index repeats historyCoverage.solana.index and is abbreviated.
A summary never claims to be complete:
complete is always false. An unknown value is null, never zero.
Identity
Identity doesn’t depend on any particular token. It can include:- Wallet profile labels and reviewed display metadata. A wallet profile label does not imply a token-specific role such as dev, sniper or insider.
- Platform tags such as
platform:axiom,platform:bloomorplatform:photon. Each comes withplatformEvidence:method,evidenceTx,confidencein basis points andobservedAtMs. A tag records an observed fee-account association, not wallet ownership. - Reviewed classifications:
hacker,spam_dustingorexchange. These require current reviewed evidence with confidence of at least 9500, a method and a transaction. An exchange classification also requires a name. The absence of a label is not a safety verdict. sns.domain: a verified, directly owned top-level.solprimary name. Tokenized names, subdomains and names with unsupported characters stay unknown. This endpoint reads SNS from cache only.
PnL summary
A summary prefers OceanX’s native fee-inclusive trade ledger. When a wallet has no valid ledger projection, the summary falls back to the observed-swap index, withsource set to wallet-trade-index:observed-average-cost. This is observed PnL over the covered window, not lifetime accounting.
The observed-swap fallback is bounded for each batch:
- 10,000 events and 4 MiB in total, split into equal shares per wallet. An 11-wallet batch gets 909 events per wallet.
- At most four concurrent index reads.
- One shared price lookup covering at most 64 open tokens.
- A 1.5-second deadline for the PnL part of the request.
"truncated": true.
Errors
Errors use{error:{code,message}}. Rate-admitted responses include the usual X-RateLimit-* headers.
A wallet OceanX has not captured returns
200 with summary: null. Besides the standard REST budget, wallet batches share a native admission limit with liquidity reads: two concurrent requests and 60 starts per minute per verified caller.