Wallet

Open positions only (leaner /pnl slice)

Open lots only — same data as /pnl open_positions[] but without the summary, curve, or closed-positions payload. Shares the wallet_analyses cache: if you've recently called /pnl for this wallet, this call is an immediate cache hit. PRO+.

get/wallet/{address}/positions

Request

  • Base URL: https://madeonsol.com/api/v1
  • URL: https://madeonsol.com/api/v1/wallet/{address}/positions
  • Auth: HTTP bearer

Path parameters

addressstring required
Example:2FxiPRPLYX3H84FZkdRiUHDgDm4U5u98etbL4yvZ3qRq

Response

OK

addressstring
completeness'complete' | 'incomplete'

Realized-PnL completeness. incomplete when at least one sell in the response has proceeds that went to another wallet (price_status proceeds_unattributed, migration 508): realized PnL and ROI then cover the known basis only, and the basis those sells consumed is reported as unknown_realized_cost_basis_sol, never as 0 proceeds or a loss. This is realized-PnL completeness. It is NOT coverage.completeness (source-coverage verification: verified / not_verified / ...), which says whether the trade capture for this subject is proven complete.

incomplete_reasonsstring[]

Empty when complete. /wallet/{address} and /tokens/{mint}/top-traders emit only proceeds_unattributed; unknown_consideration is shared with the FIFO routes (/pnl, /positions).

cache_hitboolean
computed_atstring date-time nullable
cache_age_secondsinteger

Cache hits only — seconds since computed_at

cache_validation'head_checked' | 'unverified'

Cache hits only (audit F16): head_checked = the wallet has no persisted trade newer than the analysis watermark, so the cached analysis is current; unverified = the trade-head probe failed and the unexpired cache was served flagged. A hit whose wallet traded after the watermark is never served — it is recomputed.

cache_invalidated'new_activity'

Present on a recompute that happened because a cached analysis existed but the wallet traded after it

ttl_secondsinteger nullable

Changes

No recorded changes to this operation across all 2 revisions of this API.