Skip to content

Open positions in a pool

GET
/lp/pools/{pool}/positions
curl --request GET \
--url 'https://api.getchord.xyz/v1/lp/pools/example/positions?chain=5042&limit=20'

Managed positions (V3 NPM / V4 PositionManager NFTs) open in the pool, largest first, valued live.

pool
required

A pool: a 20-byte contract address (V2 / V3) or a 32-byte Uniswap V4 pool id.

string
/^0x([a-fA-F0-9]{40}|[a-fA-F0-9]{64})$/
chain
required
integer
Allowed values: 5042 4663 143

Chain id: 5042 Arc · 4663 Robinhood Chain · 143 Monad.

limit
integer
default: 20 >= 1 <= 50
Media typeapplication/json
object
chain
integer
pool

A pool: a 20-byte contract address (V2 / V3) or a 32-byte Uniswap V4 pool id.

string
/^0x([a-fA-F0-9]{40}|[a-fA-F0-9]{64})$/
positions
Array<object>
object
manager

EVM address, hex, case-insensitive.

string
/^0x[a-fA-F0-9]{40}$/
tokenId
string
pool

A pool: a 20-byte contract address (V2 / V3) or a 32-byte Uniswap V4 pool id.

string | null
/^0x([a-fA-F0-9]{40}|[a-fA-F0-9]{64})$/
dex
string | null
kind
string
Allowed values: v3 v4
owner

EVM address, hex, case-insensitive.

string | null
/^0x[a-fA-F0-9]{40}$/
token

EVM address, hex, case-insensitive.

string | null
/^0x[a-fA-F0-9]{40}$/
anchor

EVM address, hex, case-insensitive.

string | null
/^0x[a-fA-F0-9]{40}$/
tickLower
integer | null
tickUpper
integer | null
symbol
string | null
anchorSymbol
string | null
logo
string | null
inUsd

Dollars added.

number
outUsd

Dollars removed.

number
feesUsd

Fees collected.

number
adds
integer
removes
integer
collects
integer
openedTs

Unix time, seconds, UTC.

integer | null
lastTs

Unix time, seconds, UTC.

integer
closedTs

Unix time, seconds, UTC.

integer | null
burned
boolean
status
string
Allowed values: open closed
valueUsd

Live value of the liquidity (open positions).

number | null
uncollectedUsd

Uncollected fees (V3).

number | null
inRange
boolean | null
pnlUsd

Liquidity leg only.

number | null
pnlPct
number | null
ageHours
number | null
edgePct

Distance from the price to the nearest range edge, percent.

number | null
jit

Opened and closed within seconds — a swap trick, shown but not scored.

boolean
unreconciled

Dollars out exceed dollars in by far — the tape missed an add; shown, never scored.

boolean
updatedAt

Unix time, milliseconds — when the server built this answer.

integer
Example
{
"chain": 5042,
"pool": "0xf53f02d9041d00bbd92235b4c902b9f350c554a8ed2dc64fa0a4585aac413f09",
"positions": [
{
"manager": "0x6049c9a0e26405c0985f9e3685c87d0ae917f82b",
"tokenId": "187740",
"pool": "0xf53f02d9041d00bbd92235b4c902b9f350c554a8ed2dc64fa0a4585aac413f09",
"dex": "uniswap_v4",
"kind": "v4",
"owner": "0x25cacb704ed0852428e7cc0687bca45ee8c21848",
"token": "0x8faae5592b9acc27a79fca745c6b872adf514a5d",
"anchor": "0x3600000000000000000000000000000000000000",
"tickLower": 331254,
"tickUpper": 375408,
"symbol": "MURMUR",
"anchorSymbol": "USDC",
"logo": "https://cdn.dexscreener.com/cms/images/QUq-IqT1GLQNkxMx?width=800&height=800&quality=95&format=auto",
"inUsd": 5763.889211498252,
"outUsd": 0,
"feesUsd": 0,
"adds": 1,
"removes": 0,
"collects": 0,
"openedTs": 1789695461,
"lastTs": 1789695461,
"closedTs": null,
"burned": false,
"status": "open",
"valueUsd": 5408.735694717618,
"uncollectedUsd": 2141.275199916123,
"inRange": true,
"edgePct": 427.51,
"pnlUsd": 1786.1216831354886,
"pnlPct": 30.988133491053144,
"ageHours": 54.55777777777778,
"jit": false,
"unreconciled": false
},
{
"manager": "0x6049c9a0e26405c0985f9e3685c87d0ae917f82b",
"tokenId": "223792",
"pool": "0xf53f02d9041d00bbd92235b4c902b9f350c554a8ed2dc64fa0a4585aac413f09",
"dex": "uniswap_v4",
"kind": "v4",
"owner": "0x2e41ff7889197ceab7ca505fe08fb54a9da07ab8",
"token": "0x8faae5592b9acc27a79fca745c6b872adf514a5d",
"anchor": "0x3600000000000000000000000000000000000000",
"tickLower": 336204,
"tickUpper": 357291,
"symbol": "MURMUR",
"anchorSymbol": "USDC",
"logo": "https://cdn.dexscreener.com/cms/images/QUq-IqT1GLQNkxMx?width=800&height=800&quality=95&format=auto",
"inUsd": 797.4331141591955,
"outUsd": 0,
"feesUsd": 0,
"adds": 1,
"removes": 0,
"collects": 0,
"openedTs": 1789888226,
"lastTs": 1789888226,
"closedTs": null,
"burned": false,
"status": "open",
"valueUsd": 752.4410624979616,
"uncollectedUsd": 5.447723353719422,
"inRange": true,
"edgePct": 156.14,
"pnlUsd": -39.544328307514434,
"pnlPct": -4.958952369216512,
"ageHours": 1.0119444444444445,
"jit": false,
"unreconciled": false
}
],
"updatedAt": 1789891870022
}

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

Media typeapplication/json

Every non-2xx body.

object
error
required

Stable machine code, e.g. INVALID_PARAMS, NOT_READY, RATE_LIMIT_EXCEEDED.

string
message

For humans.

string
statusCode

HTTP status, when included.

integer
Example
{
"error": "INVALID_PARAMS",
"message": "amount must be an integer string in the token's smallest unit"
}