Robinhood Chain

FIFO cost-basis PnL on Robinhood Chain (PRO+)

Full FIFO cost-basis PnL for one RHC wallet over 90 days: realized and unrealized split, a daily realized curve, every closed position with ROI and token-weighted hold time, and every open position marked to the current price.

This runs the same FIFO implementation as the Solana /wallet/{address}/pnl — the algorithm is imported, not reimplemented — with ETH substituted for SOL. Field names keep the Solana convention with the denomination swapped (realized_eth, pnl_eth), so porting a Solana integration is a mechanical rename.

It also shares its loader with /rhc/wallet/{address}, so the two endpoints cannot report different PnL for the same wallet.

Cost basis is only observable inside the window (notes.cost_basis_observable_from). Tokens sold that were bought before it contribute no realized PnL rather than a fabricated one — figures read low, never invented.

Attribution floor (notes.attribution_complete_from, 2026-07-18): the window is clamped forward to this date because trader_eoa — the column every wallet endpoint filters on — was written for under half of earlier trades. The gap is ASYMMETRIC per wallet: a token's buys can carry it while its sell does not, which leaves FIFO holding a position that was actually closed. Analysing only the attributed era is narrower but honest. notes.window_clamped flags it. Cached 120s per address. Tier: PRO+.

get/rhc/wallet/{address}/pnl

Request

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

Path parameters

addressstring required

Response

OK.

chain'robinhood'
addressstring
window_daysinteger
open_positionsobject[]

Unsold FIFO tail marked to the current price. Each entry carries liquidity_basis (v4_virtual_ceiling | measured) — uniswap-v4 liquidity_usd is a virtual-reserve ceiling, not measured per-pool TVL.

cache_hitboolean

Example response

{
  "window_days": 90,
  "pnl_curve": [
    {
      "date": "2026-07-24"
    }
  ]
}

Changes

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