userCompletedTrades

Get a user's most recent completed (fully closed) positions, newest-first.

Returns the latest N completed trades for a user, newest-first. A completed trade represents a position that has been fully closed (size returned to ~0). Each record includes gross/net/funding PnL, average entry and exit prices, fees, fill counts (total and maker), open/close timestamps, duration, peak position size during the position's lifetime, leverage at close, and last-touch builder attribution.

dex is optional. Omit to return trades from every perp DEX. Set to "main_dex" for the native Hyperliquid dex, or to a HIP-3 dex name (e.g. "xyz") to scope the trade list to that dex.

note: data used to compute the leaderboard is starting from 1st of aug 2025

POST Request

Field
Type
Description

type

string

Must be "userCompletedTrades"

user

string

Ethereum address (0x-prefixed, 42 characters)

limit

int

Max results to return. Default 100, max 500 (optional)

dex

string

Scope to a single perp DEX. "main_dex" for the native Hyperliquid dex, or a HIP-3 dex name (e.g. "xyz"). Omit for all dexes (optional)

curl -X POST https://api.hydromancer.xyz/info \
  -H "Authorization: Bearer $HYDROMANCER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "userCompletedTrades",
    "user": "0x0000000000000000000000000000000000000000",
    "limit": 100
  }'

Response Fields

The response is a JSON array of completed-trade records, ordered newest-first by close_time then tx_index.

Field
Type
Description

user

string

Ethereum address

coin

string

Asset symbol

position_type

string

"Long" or "Short"

gross_pnl

string

Realized PnL before fees (exit_value - entry_value, sign-adjusted for shorts)

net_pnl

string

Realized PnL after fees and funding (gross_pnl - fees + funding_pnl)

funding_pnl

string

Cumulative funding PnL accrued while the position was open (positive = received, negative = paid). Already included in net_pnl

entry_px

string

Volume-weighted average entry price

exit_px

string

Volume-weighted average exit price

position_closed_size

string

Size of the closed position, in contracts

fees

string

Total fees paid on fills attributed to this position

fills

int

Number of fills on this position

maker_fills

int

Number of uncrossed (maker) fills on this position

open_time

int

Time the position was opened (Unix ms)

close_time

int

Time the position was fully closed (Unix ms)

duration_ms

int

close_time - open_time in milliseconds

max_position_size

string

Peak absolute position size reached during the position's lifetime

builder

string?

Builder address from the closing fill, if any (last-touch attribution)

tx_index

int

Transaction index of the closing fill (use with close_time for cursor-based pagination)

leverage

int?

Leverage multiplier at close (e.g. 10 = 10x). null if unknown — typically when the position predates leverage tracking

is_cross

boolean?

true = cross margin, false = isolated. null when leverage is null

Response

Last updated