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
| Name | Type | Description |
|---|---|---|
| walletrequired | string | Wallet address (0x...), name.sui or @name. |
| sort | string | Sort key, default realized.One of "realized", "total", "volume", "trades". |
| dir | string | Sort direction, default desc.One of "asc", "desc". |
| q | string | Filter coins by symbol or name. |
| cursor | string | Cursor 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
}
}