Skip to content

One position

GET
/lp/position/{chain}/{manager}/{id}
curl --request GET \
--url https://api.getchord.xyz/v1/lp/position/5042/example/example

A position by its NFT: the valued row, its events, and a hold-instead comparison (what the same tokens would be worth unpooled). native carries the same position in the chain’s own coin (nativeSymbol): what went in, came out and was paid as fees, each event converted at the coin’s price of its own hour, and the value and waiting fees at the coin’s price now. It is null while the chain’s ledger has no figures in its coin.

chain
required
integer
Allowed values: 5042 4663 143
manager
required

EVM address, hex, case-insensitive.

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

Position manager contract.

id
required
string
/^\d{1,30}$/

Token id.

Media typeapplication/json
object
chain
integer
position
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
events
Array<object>
object
kind
string
usd
number
feeUsd
number
tokenAmt
number
anchorAmt
number
tx

Transaction hash.

string
/^0x[a-fA-F0-9]{64}$/
ts

Unix time, seconds, UTC.

integer
block
integer
hold
object
tokenIn
number
anchorIn
number
priceNowUsd
number | null
holdValueUsd
number | null
lpValueUsd
number | null
lpVsHoldUsd
number | null
basis
string
native
object
in

In, in the coin.

number
out

Out, in the coin.

number
fees

Fees paid out, in the coin.

number
value

Value now at the coin’s price now; null for a closed position.

number | null
uncollected

Fees waiting, at the coin’s price now.

number | null
pnl

Closed: out + fees − in. Open: value + waiting + out + fees − in.

number | null
pnlPct

pnl in percent of in.

number | null
nativeSymbol

The chain’s coin (ETH, MON, USDC); null with native.

string | null
updatedAt

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

integer
Example
{
"position": {
"kind": "v3",
"status": "open"
}
}

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"
}

Nothing at this identity (NOT_FOUND, UNKNOWN_TOKEN, NO_ROUTE).

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"
}