> For the complete documentation index, see [llms.txt](https://docs.neglect.trade/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.neglect.trade/products/data-services/wallet-data.md).

# 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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
