Skip to main content
Glama

get_nft_portfolio

Read-onlyIdempotent

Retrieve NFT portfolio across EVM chains and Solana, showing per-collection floor price and total floor value.

Instructions

List the NFT collections a wallet owns across EVM chains and/or Solana, with per-collection floor price (EVM only in v1) and a rolled-up total floor value. EVM source: Reservoir. Multi-chain fan-out via Promise.allSettled so a per-chain rate-limit or 5xx degrades to a coverage[].errored flag rather than aborting the whole call. Solana source (issue #433): Helius DAS getAssetsByOwner — pass solanaWallet (base58). Requires a Helius API key (free tier; configure via set_helius_api_key in demo mode or vaultpilot-mcp-setup for persistence). Returns per-collection rows without floor pricing in v1; Magic Eden / Tensor floor integration is tracked as a separate follow-up. At least one of wallet (EVM) / solanaWallet (Solana) must be supplied. Each row aggregates per-collection (one row per (chain, contract / collection-mint)), summing tokenCount across token IDs the wallet holds. Optional filters (EVM-only): minFloorEth drops dust / spam / scam collections; collections[] whitelists a specific contract set. Results sorted by totalFloorUsd descending; Solana rows tail-sort. NFT signing actions (list, sweep, accept-bid, transfer) deferred — separate plan; biggest UX risk because of approval / proxy patterns. Caveat surfaced in notes[]: floor != liquidation; totalFloorUsd is an upper-bound, not what the wallet would net selling everything immediately. Optional RESERVOIR_API_KEY env var avoids the anonymous-tier rate limit on multi-chain fan-out. Issue #433 Solana follow-ups (separate issues): get_nft_history Solana support, get_nft_collection Solana support, Solana floor pricing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
walletNoEVM wallet to enumerate. Reservoir is the source of truth; the tool fans out one HTTP call per requested chain in parallel. Optional iff `solanaWallet` is provided — at least one of `wallet` / `solanaWallet` must be supplied.
solanaWalletNoIssue #433 — Solana wallet to enumerate via the Helius DAS `getAssetsByOwner` method. Requires a Helius API key (free tier is enough); falls back to a structured setup hint when only the public Solana mainnet endpoint is configured (DAS is not exposed there). v1 returns per-collection rows without floor pricing — Magic Eden / Tensor floor is a separate follow-up. Optional iff `wallet` is provided.
chainsNoSubset of supported EVM chains to scan (ethereum / arbitrum / polygon / base / optimism). Omit to scan all five. Per-chain errors degrade rather than abort the whole call — the response's `coverage` field flags which chains errored. Ignored when only `solanaWallet` is set.
minFloorEthNoDrop NFTs whose collection floor is below this value (in the chain's native asset). Useful for filtering out airdrop / spam / scam collections that pollute the headline. Default: no filter. Solana rows have no floor pricing in v1 (#433 deferred), so this filter only affects EVM rows.
collectionsNoWhitelist a specific set of collection contract addresses. When supplied, ALL other collections are dropped. Useful for spot-checking a particular collection. Mutually composable with `minFloorEth` (both filters apply). EVM-only.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals important behavioral traits beyond annotations: multi-chain fan-out with error isolation via Promise.allSettled, the meaning of totalFloorUsd as an upper-bound caveat, and per-collection aggregation. Annotations already declare read-only, so the description adds value on error handling and value interpretation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly verbose, including issue numbers, follow-ups, and deferred features that are not essential for tool usage. Key information is front-loaded but buried in technical details. It could be significantly shortened without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multi-chain, multiple parameters, no output schema), the description is fairly complete. It covers the output shape (per-collection rows, coverage flags, notes), error behavior, and parameter constraints. Missing explicit output field list, but still highly informative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds substantial context: explains the aggregation logic, optional filters (minFloorEth, collections), and their effects. It also mentions sources (Reservoir, Helius) and how filters behave across chains. This goes beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists NFT collections a wallet owns across EVM chains and/or Solana, with floor prices and total floor value. It uses a specific verb (List) and resource (NFT collections), distinguishing it from siblings like get_nft_collection and get_nft_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear when-to-use guidance: for portfolio overview across multiple chains. It mentions required parameters (at least one wallet), warns about limitations (Solana floor pricing deferred), and notes that signing actions are handled separately. It could explicitly compare to similar tools, but the context is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/szhygulin/recon-crypto-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server