# PnLSaver agent instructions

> Use PnLSaver to inspect and reconcile public crypto wallet portfolios without connecting a wallet or requesting transaction authority.

## When to use PnLSaver

- Retrieve current native and token holdings for a public EVM or Solana wallet.
- Inspect supported DeFi deposits, borrows, collateral, liquidity, staking, vaults, rewards, perps, prediction markets, and NFTs.
- Reconcile wallet activity or cost-basis PnL while keeping missing prices and incomplete history explicit.
- Compare public wallet sections across supported chains through bounded, read-only API requests.

## When not to use PnLSaver

- Do not use it to connect a wallet, request a signature or approval, move assets, trade, or submit a blockchain transaction; those capabilities do not exist.
- Do not use it as tax, legal, investment, accounting, or security advice.
- Do not assume an unavailable source, unpriced token, or unsupported position has a value of zero.
- Do not use broad wallet enumeration or tight retry loops; the public API is intended for bounded address-scoped reads.

## How an agent should call PnLSaver

1. Read the [PnLSaver OpenAPI contract](https://pnlsaver.com/openapi.json) and [API guide](https://pnlsaver.com/docs/api).
2. Resolve a supported name through `https://pnlsaver.com/api/resolve?q=...`, or use a valid public address directly.
3. Send `API-Version: 1` and request the documented JSON or NDJSON response media type. Omitting the header currently selects version 1 for compatibility.
4. Treat structured `code`, `message`, and `hint` error fields as recovery guidance. Respect `RateLimit`, `RateLimit-Policy`, and `Retry-After` headers.
5. Keep partial sections and missing prices visible. Use chain IDs plus canonical token, market, vault, or protocol addresses as identity; never deduplicate money by symbol alone.

## Capability boundaries

The public API requires no API key or OAuth flow. PnLSaver does not currently publish webhooks, an MCP server, or an official package-registry CLI. POST operations accept public identifiers or read-only aggregation inputs; they do not authorize writes onchain.

- [PnLSaver developer resources](https://pnlsaver.com/developers)
- [PnLSaver API catalog](https://pnlsaver.com/.well-known/api-catalog)
- [PnLSaver llms.txt](https://pnlsaver.com/llms.txt)
