---
title: "One wallet's LP record"
method: GET
path: "/lp/wallet/{address}"
tags: ["Liquidity"]
---

# One wallet's LP record

`GET /lp/wallet/{address}`

## Request

- Base URL: `https://api.getchord.xyz/v1`
- URL: `https://api.getchord.xyz/v1/lp/wallet/{address}`
- Auth: none declared

Everything the wallet board knows about one wallet, whether it is ranked or not: win rate, fees, profit, expected value per position, average invested / age / monthly profit and the 7-day / 30-day / all-time windows (`summary`); one row per UTC day with the profit and the fees that landed on it (`history`: a closed position's result on the day it ended, an open position's fees on the days they were paid; `realizedPositions` = the positions that ended that day, `positions` adds the open ones last touched on it); the pools it provided to (`pools`, up to 60, by number of positions).

The figures use the board's row rules, so a wallet opened from `/lp/leaderboard` shows the same numbers: `unscored` says how many ledger positions were left out and why (each under the first reason that fits), and `ledger` counts every position, scored or not. `operator: true` = 500 or more scored positions, an account the board does not rank. `truncated: true` = the wallet holds more than 20,000 positions and the figures cover the newest 20,000.

**Use it for**: a wallet page, "is this LP worth following", a PnL calendar.

## Path parameters

- `address` string, required: EVM address, hex, case-insensitive.

## Query parameters

- `chain` 5042 | 4663 | 143, required
- `unit` 'usd' | 'native'

## Response `200`

- object
  - `chain` integer
  - `wallet` string: EVM address, hex, case-insensitive.
  - `unit` 'usd' | 'native': `usd` or `native`: the unit of every money field in this answer.
  - `unitSymbol` string: `USD`, or the chain's coin (`ETH`, `MON`, `USDC`).
  - `summary` object
    - `positions` integer: Scored positions.
    - `open` integer
    - `closed` integer
    - `wins` integer
    - `winRatePct` number, nullable
    - `pools` integer
    - `feesUsd` number
    - `profitUsd` number
    - `evUsd` number, nullable: Expected value per position.
    - `avgAgeHours` number, nullable
    - `avgInvestedUsd` number, nullable
    - `avgMonthlyProfitUsd` number, nullable: Profit to date over the months since the first position, never less than one week.
    - `windows` object
      - `d7` object
        - `positions` integer
        - `profitUsd` number
        - `feesUsd` number
      - `d30` object
        - `positions` integer
        - `profitUsd` number
        - `feesUsd` number
      - `all` object
        - `positions` integer
        - `profitUsd` number
        - `feesUsd` number
    - `firstTs` integer, nullable: Unix time, seconds, UTC.
    - `lastTs` integer, nullable: Unix time, seconds, UTC.
  - `history` object[]: Oldest first; days with nothing are absent.
    - `day` string: YYYY-MM-DD, UTC
    - `profitUsd` number
    - `feesUsd` number
    - `positions` integer: Positions that ended (or, open, were last touched) on the day.
  - `pools` object[]
    - `pool` string: A pool: a 20-byte contract address (V2 / V3) or a 32-byte Uniswap V4 pool id.
    - `token` string, nullable: EVM address, hex, case-insensitive.
    - `anchor` string, nullable: EVM address, hex, case-insensitive.
    - `positions` integer
    - `open` integer
    - `inUsd` number
    - `profitUsd` number
    - `feesUsd` number
    - `symbol` string, nullable
    - `anchorSymbol` string, nullable
    - `logo` string, nullable
  - `ledger` object: Every position the ledger holds for the wallet.
    - `positions` integer
    - `open` integer
    - `closed` integer
  - `unscored` object
    - `small` integer: Under `minIn` dollars.
    - `jit` integer: Opened and closed inside a minute.
    - `unreconciled` integer: Far more dollars out than the index saw go in.
    - `partial` integer: Opened before the index started.
    - `unlistedPool` integer: On a pool the pool list hides as thin or suspect.
  - `minIn` number
  - `truncated` boolean
  - `operator` boolean
  - `updatedAt` integer: Unix time, milliseconds — when the server built this answer.

## Other responses

- `400`: Invalid parameters — `error` names the check that failed (`INVALID_PARAMS`, `BAD_ADDRESS`, `BAD_LIMIT`, `BAD_HOURS`, …).

---

[API](https://skmtc.dev/getchord/apis/chord-api.md) · [All operations](https://skmtc.dev/getchord/apis/chord-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getchord/apis/chord-api/revisions/d3bc4640fea0?raw)
