# Wallet Data

Real-time Solana wallet data and per-token PnL over REST. Returns the tokens deployed by a wallet (developer attribution), live token holdings with balances and ownership percentages relative to circulating on-chain supply, and per-token profit-and-loss combining realized gains from completed sells with unrealized PnL on still-held tokens — computed from on-chain trade history using a weighted moving-average cost basis. Use them to power wallet explorers, portfolio overviews, holder leaderboards, and PnL dashboards.

## Get Tokens by Deployer

> Returns a list of tokens where the specified wallet address is the developer (devWallet).

```json
{"openapi":"3.0.1","info":{"title":"Neglect API","version":"1.0.0"},"tags":[{"name":"Wallet Data","description":"Real-time Solana wallet data and per-token PnL over REST. Returns the tokens deployed by a wallet (developer attribution), live token holdings with balances and ownership percentages relative to circulating on-chain supply, and per-token profit-and-loss combining realized gains from completed sells with unrealized PnL on still-held tokens — computed from on-chain trade history using a weighted moving-average cost basis. Use them to power wallet explorers, portfolio overviews, holder leaderboards, and PnL dashboards."}],"paths":{"/wallets/{walletAddress}/deployed":{"get":{"summary":"Get Tokens by Deployer","description":"Returns a list of tokens where the specified wallet address is the developer (devWallet).","operationId":"get-tokens-by-deployer","tags":["Wallet Data"],"parameters":[{"name":"walletAddress","in":"path","required":true,"description":"The wallet address of the deployer (devWallet)","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Maximum number of tokens to return (default: 10, min: 1, max: 100)","schema":{"type":"integer","minimum":1,"maximum":100,"default":10}}],"responses":{"200":{"description":"List of tokens deployed by the wallet","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"walletAddress":{"type":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"tokenAddress":{"type":"string"},"tokenName":{"type":"string","nullable":true},"tokenSymbol":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["tokenAddress","tokenSymbol","createdAt"]}}},"required":["walletAddress","tokens"]},"meta":{"type":"object","properties":{"count":{"type":"integer"},"limit":{"type":"integer"}},"required":["count","limit"]}},"required":["data","meta"]}}}},"400":{"description":"Missing or invalid wallet address","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"field":{"type":"string","nullable":true}},"required":["code","message"]},"meta":{"type":"object","properties":{"walletAddress":{"type":["string","null"]},"limit":{"type":"integer"}},"required":["walletAddress","limit"]}},"required":["error","meta"]}}}},"500":{"description":"Unexpected server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]},"meta":{"type":"object","properties":{"walletAddress":{"type":["string","null"]},"limit":{"type":"integer"}},"required":["walletAddress","limit"]}},"required":["error","meta"]}}}}}}}}}
```

## Get Wallet Holdings

> Retrieve the token holdings of a given wallet address, including balances and percentage ownership per token.

```json
{"openapi":"3.0.1","info":{"title":"Neglect API","version":"1.0.0"},"tags":[{"name":"Wallet Data","description":"Real-time Solana wallet data and per-token PnL over REST. Returns the tokens deployed by a wallet (developer attribution), live token holdings with balances and ownership percentages relative to circulating on-chain supply, and per-token profit-and-loss combining realized gains from completed sells with unrealized PnL on still-held tokens — computed from on-chain trade history using a weighted moving-average cost basis. Use them to power wallet explorers, portfolio overviews, holder leaderboards, and PnL dashboards."}],"paths":{"/wallets/{walletAddress}/holdings":{"get":{"summary":"Get Wallet Holdings","description":"Retrieve the token holdings of a given wallet address, including balances and percentage ownership per token.","operationId":"get-wallet-holdings","tags":["Wallet Data"],"parameters":[{"name":"walletAddress","in":"path","required":true,"schema":{"type":"string"},"description":"The wallet address to fetch holdings for"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10},"description":"Maximum number of tokens to return (default 10, max 100)"}],"responses":{"200":{"description":"Wallet holdings data","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"walletAddress":{"type":"string"},"tokens":{"type":"array","items":{"type":"object","properties":{"tokenAddress":{"type":"string"},"tokenImage":{"type":"string","nullable":true},"tokenSymbol":{"type":"string"},"tokenName":{"type":"string","nullable":true},"tokenSupply":{"type":"number"},"percentage":{"type":"number"}},"required":["tokenAddress","tokenSupply","percentage"]}}},"required":["walletAddress","tokens"]},"meta":{"type":"object","properties":{"count":{"type":"integer"},"limit":{"type":"integer"}},"required":["count","limit"]}},"required":["data","meta"]}}}},"400":{"description":"Missing or invalid wallet address","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"field":{"type":"string","nullable":true}},"required":["code","message"]},"meta":{"type":"object","properties":{"walletAddress":{"type":["string","null"]},"limit":{"type":"integer"}},"required":["walletAddress","limit"]}},"required":["error","meta"]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]},"meta":{"type":"object","properties":{"walletAddress":{"type":["string","null"]},"limit":{"type":"integer"}},"required":["walletAddress","limit"]}},"required":["error","meta"]}}}}}}}}}
```

## Wallet PnL by Token

> Calculates realized and unrealized profit and loss (PnL) for a wallet on a specific Solana token from on-chain trade history. Walks every trade chronologically using a weighted moving-average cost basis: each buy adds inventory at its USD cost; each sell consumes inventory at the running average cost basis at sale time, realizing the difference vs. proceeds. Returns realized PnL (closed positions), unrealized PnL (still-held tokens × current price), totalInvested, totalSold, averageBuyAmount per buy transaction, currentValue, and per-token costBasis.

```json
{"openapi":"3.0.1","info":{"title":"Neglect API","version":"1.0.0"},"tags":[{"name":"Wallet Data","description":"Real-time Solana wallet data and per-token PnL over REST. Returns the tokens deployed by a wallet (developer attribution), live token holdings with balances and ownership percentages relative to circulating on-chain supply, and per-token profit-and-loss combining realized gains from completed sells with unrealized PnL on still-held tokens — computed from on-chain trade history using a weighted moving-average cost basis. Use them to power wallet explorers, portfolio overviews, holder leaderboards, and PnL dashboards."}],"paths":{"/wallets/{walletAddress}/pnl/{tokenAddress}":{"get":{"summary":"Wallet PnL by Token","description":"Calculates realized and unrealized profit and loss (PnL) for a wallet on a specific Solana token from on-chain trade history. Walks every trade chronologically using a weighted moving-average cost basis: each buy adds inventory at its USD cost; each sell consumes inventory at the running average cost basis at sale time, realizing the difference vs. proceeds. Returns realized PnL (closed positions), unrealized PnL (still-held tokens × current price), totalInvested, totalSold, averageBuyAmount per buy transaction, currentValue, and per-token costBasis.","operationId":"get-wallet-token-pnl","tags":["Wallet Data"],"parameters":[{"name":"walletAddress","in":"path","required":true,"schema":{"type":"string"},"description":"The wallet address to calculate PnL for"},{"name":"tokenAddress","in":"path","required":true,"schema":{"type":"string"},"description":"The token contract address"}],"responses":{"200":{"description":"PnL calculation for wallet and token","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"realized":{"type":"number"},"unrealized":{"type":"number"},"total":{"type":"number"},"totalSold":{"type":"number"},"totalInvested":{"type":"number"},"averageBuyAmount":{"type":"number"},"currentValue":{"type":"number"},"costBasis":{"type":"number"}},"required":["realized","unrealized","total","totalSold","totalInvested","averageBuyAmount","currentValue","costBasis"]},"meta":{"type":"object","properties":{"walletAddress":{"type":"string"},"tokenAddress":{"type":"string"}},"required":["walletAddress","tokenAddress"]}},"required":["data","meta"]}}}},"400":{"description":"Missing wallet or token address","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"field":{"type":"string","nullable":true}},"required":["code","message"]},"meta":{"type":"object","properties":{"walletAddress":{"type":["string","null"]},"tokenAddress":{"type":["string","null"]}},"required":["walletAddress","tokenAddress"]}},"required":["error","meta"]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]},"meta":{"type":"object","properties":{"walletAddress":{"type":["string","null"]},"tokenAddress":{"type":["string","null"]}},"required":["walletAddress","tokenAddress"]}},"required":["error","meta"]}}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.neglect.trade/products/data-services/wallet-data.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
