| Tool |
Summary |
get_nft_sales |
NFT marketplace sales over a recent window, with volume and per-marketplace totals. |
get_top_holders |
Scan objects of a given type and return top holders. |
list_nft_collections |
Summary of the NFT collections a wallet holds: every kiosk plus directly owned objects, one row per collection type with its count. |
list_nfts |
List NFTs owned by a wallet, including kiosk-stored NFTs. |
- Title: Get NFT sales
- Profile:
forensics
- Annotations:
openWorldHint: true, readOnlyHint: true
- Metadata:
anthropic/maxResultSizeChars: 500000
NFT marketplace sales over a recent window, with volume and per-marketplace totals. Reads TradePort, BlueMove and OriginByte sale events. Also records which wallet holds which kiosk, which is what makes get_top_holders able to name a real owner for a kiosk-held NFT.
| Parameter |
Type |
Required |
Description |
hours |
number (1 to 168), default 24 |
no |
How far back to read, in hours (default 24, max 168) |
collection_type |
string |
no |
Keep only sales of this Move type. Most sale events name no collection; those count as unattributable_sales, so a low count does not show the collection did not trade. |
max_pages |
integer (1 to 200), default 40 |
no |
Request cap across all marketplaces (default 40, 50 events per request) |
include_sales |
boolean, default false |
no |
Also return each sale with its checkpoint and time (default false, since a busy window has thousands of rows). |
detail |
summary | full |
no |
With include_sales: ‘summary’ (default) lists the newest sales that fit and counts the rest in omitted; ‘full’ lists every sale. |
network |
mainnet | testnet | devnet |
no |
Network: ‘mainnet’ (default) | ‘testnet’ | ‘devnet’ |
- Title: Get top holders
- Profile:
forensics
- Annotations:
openWorldHint: true, readOnlyHint: true
Scan objects of a given type and return top holders. The scan is slow and paginated. Works for NFT collections (ranked by count) or tokens (ranked by balance, counting both Coin<T> objects and address balances, with the split and the holder’s kind per holder). Kiosk-stored NFTs are attributed using the kiosk’s self-declared owner field, which is marked as such because it does not follow the KioskOwnerCap. Accepts a Move type, coin type, or collection name. A scan stops after 35s and returns what it saw as a sample marked time_budget_reached. Results cached 24h.
| Parameter |
Type |
Required |
Description |
type |
string |
no |
NFT struct type or coin type, e.g. ‘0xabc::module::NFT’ or ‘0x2::sui::SUI’. A coin type is wrapped in Coin<…> automatically. |
collection_name |
string |
no |
NFT collection name or slug to look up in the registry (e.g. ‘gawblenz’). Alternative to ‘type’. |
mode |
nft | token |
no |
‘nft’ ranks by count, ‘token’ by balance. If omitted, a type the chain knows as a coin is scanned as a token, anything else as an NFT collection. |
limit |
integer (1 to 100) |
no |
Top N holders to return (default 20, max 100) |
max_scan |
integer (1 to 50000) |
no |
Objects to scan per walk (default 5000, max 50000). Token mode walks Coin<T> objects and address balances separately, each to this bound. The 35s time budget applies regardless. |
network |
mainnet | testnet | devnet |
no |
Network: ‘mainnet’ (default) | ‘testnet’ | ‘devnet’ |
- Title: List NFT collections
- Profile:
core (default)
- Annotations:
openWorldHint: true, readOnlyHint: true
Summary of the NFT collections a wallet holds: every kiosk plus directly owned objects, one row per collection type with its count. Each collection carries an estimated value (tier heuristic): per item, the lower of the collection’s lowest active listing and its last sale in the 30 days before now, or whichever of the two exists (a listing alone only if placed in that window), with zero-price sales, sales within one address or kiosk, and sales where one side first funded the other left out; unpriced otherwise. estimated_value totals every collection; the default view keeps every priced collection and caps the rest, and detail: 'full' returns all rows. value: false skips the valuation.
| Parameter |
Type |
Required |
Description |
address |
string |
yes |
Owner wallet address (0x…) |
value |
boolean, default true |
no |
Estimate each collection’s value from its market (default true). Costs a few requests per collection that has a market. |
detail |
summary | full |
no |
‘summary’ (default): priced collections, then the most-held others that fit; omitted counts the rest. ‘full’: every collection. |
network |
mainnet | testnet | devnet |
no |
Network: ‘mainnet’ (default) | ‘testnet’ | ‘devnet’ |
- Title: List NFTs
- Profile:
core (default)
- Annotations:
openWorldHint: true, readOnlyHint: true
(Recommended for NFTs) List NFTs owned by a wallet, including kiosk-stored NFTs. Each row has an object id, collection_ref (zero-based index into this page’s exact collection_types), kiosk and display metadata. detail: 'full' adds raw Move contents and valuation evidence. est_usd is a heuristic NFT estimate; other valued objects carry value_usd and a tier. value: false skips valuation. Pass next_cursor as cursor for the next page; its absence means the wallet is fully enumerated. Use list_nft_collections for a per-collection summary and wallet total.
| Parameter |
Type |
Required |
Description |
address |
string |
yes |
Owner wallet address (0x…) |
limit |
integer (1 to 1000) |
no |
Most NFTs to return (default 50, max 1000). |
cursor |
string |
no |
Opaque pagination token from a prior response’s next_cursor. Omit on first call. |
detail |
summary | full |
no |
‘summary’ (default) leaves out raw contents and valuation evidence, counted in omitted. ‘full’ includes both. |
value |
boolean, default true |
no |
Estimate each NFT’s value from its collection’s market (default true). Costs a few requests per collection on the page. |
network |
mainnet | testnet | devnet |
no |
Network: ‘mainnet’ (default) | ‘testnet’ | ‘devnet’ |