Search by name, SuiNS, address, digest, object ID, coin type or checkpoint.

API
wallet.pnl

Wallet

wallet.pnl

Realized and unrealized profit and loss per coin for a wallet.

Details

Endpoint
GET /v1/wallet/:wallet/pnl
Credits
10
Rate class
Heavy. Counts against your heavy requests per second.

Returns one row per coin the wallet traded, with realized, unrealized and total profit in USD and the traded volume. Values come from the wallet's swaps and are marked at current prices. Realized, unrealized and total are null when they cannot be worked out for a coin. Sort with sort (realized, total, volume, trades) and dir, page with cursor, search a coin with q.

Parameters

NameTypeDescription
walletrequiredstringWallet address (0x...), name.sui or @name.
sortstringSort key, default realized.One of "realized", "total", "volume", "trades".
dirstringSort direction, default desc.One of "asc", "desc".
qstringFilter coins by symbol or name.
cursorstringCursor from the previous page.

Request

Send your key in the x-api-key header, or leave it out to use the keyless tier.

curl
curl "https://api.tide.ad/v1/wallet/0x935029ca5219502a47ac9b69f556ccf6e2198b5e7815cf50f68846f723739cbd/pnl?sort=volume" \
  -H "x-api-key: YOUR_API_KEY"
TypeScript
const res = await fetch("https://api.tide.ad/v1/wallet/0x935029ca5219502a47ac9b69f556ccf6e2198b5e7815cf50f68846f723739cbd/pnl?sort=volume", {
  headers: {
    "x-api-key": process.env.TIDE_API_KEY!,
  },
});
const data = await res.json();

Response

JSON
{
  "address": "0x935029ca5219502a47ac9b69f556ccf6e2198b5e7815cf50f68846f723739cbd",
  "total": 0,
  "matched": 0,
  "rows": [],
  "cursor": null,
  "asOf": {
    "checkpoint": 341543814,
    "timestamp": "2026-11-04T11:33:33.701Z",
    "lagMs": 609
  }
}