hive-wallet-investigation — Wallet Investigation
Investigate a wallet's balances, transfers, PnL, NFT exposure, DeFi positions,
and notable activity with live Hive data, scoped to exactly what the user
asked.
Task toolset and identifiers
Toolset: wallet_investigation. Read
hive://toolsets/wallet_investigation before execution; it is authoritative
for the current output schema, material-call budget, phases, fallback
condition, and stop conditions.
- Required: wallet address and chain/network — unless the user explicitly asks
for multi-chain.
- Optional: time window, asset filter, counterparty, protocol, NFT collection.
Ask for the chain when an EVM address appears without context: the same
address exists on every EVM chain with different state, so guessing the chain
silently changes the answer. For Solana wallets, hand off to
hive-solana-analysis.
Before choosing endpoints, select exactly one matching entry from the exact
workflow's routes[]. Follow its ordered steps, use a fallback only under that
step's published condition, stop at four material calls, and preserve the
selected route_id in the typed result. The broad coverageCatalog is discovery
coverage, not an execution plan.
Procedure
- Validate the address format for the requested chain.
- Call
search_tools for wallet balance, native balance, transfer, NFT,
DeFi-position, and PnL capabilities as the question requires.
- Call
get_api_endpoint_schema for each endpoint before calling it.
- Call
invoke_api_endpoint with schema-valid, bounded arguments.
- Start with balances and native balance. Add transfers for activity
questions; add NFTs, DeFi positions, or PnL only when relevant.
- Summarize exposure, concentration, notable activity, and missing data.
Bounded calls
- Use explicit
limit, page, per_page, or time filters for transfers.
- Do not fetch full history for a quick portfolio read.
- Avoid mixing chains unless the user requested multi-chain analysis.
Worked example
User: "What does 0x28C6c06298d514Db089934071355E5743bf21d60 hold on Ethereum,
and did anything big move this week?"
search_tools → {"query": "wallet token balances native balance transfers ethereum", "limit": 5}
get_api_endpoint_schema for the balance and transfer endpoints returned.
invoke_api_endpoint for balances first, then transfers with a 7-day
window and an explicit limit — argument names come from the schema, not
from memory.
- Answer with the report template, flagging spam tokens and truncated
history.
Report template
## Summary
[Wallet posture and the most notable finding.]
## Calls made
- Toolset: wallet_investigation
- Endpoint(s): [exact endpoint names]
- Identifiers: [chain, wallet, filters]
## Evidence
- Balances: [native + top token holdings]
- Activity: [transfers in window, counterparties]
- Exposure: [NFTs, DeFi positions, PnL if requested]
- Provenance: [provider, fetched_at, observed_at/cache_age_ms, runtime status per call]
## Caveats
[Missing chains, truncated history, unavailable enrichment, degraded providers.]
## Next action
[Chain expansion, transfer drilldown, risk check, or PnL detail — only if needed.]
Gotchas
- Wallet labels and owner identity are not guaranteed.
- Token balances can include spam or illiquid assets — say so rather than
inflating portfolio value.
- Absence of DeFi/NFT data may reflect provider coverage, not true absence.
Evidence receipt (required)
End every Hive-backed answer with a compact receipt built from the _hive
object on each material tool response:
provider, tool, fetched_at, observed_at, cache_age_ms, and runtime_status
receipt_id, receipt_version, server/build version, and SHA-256 input/result
digests when present (self-checks, not signatures)
source, cache_status, truncated, and any warnings
- canonical chain/entity identifiers plus block, slot, transaction, or query ids
present in provider data
- material provider disagreements and how they were handled
- checks that were unavailable, gated, stale, truncated, or intentionally not run
- a
claims[] citation from each material statement to exact receipt IDs
- one
coverage[] entry for every canonical evidence phase, with each gap explained
Never turn missing evidence into a clean result, silently merge conflicting
provider values, or omit a degraded/fallback call from the receipt.
observed_at is Hive's first-observation/original cache-population time, and
cache_age_ms: 0 only means newly retrieved by Hive. Use provider time, block,
slot, transaction, or candle close for source recency; if absent, mark it
unknown. Run validate_task_result before presenting the typed workflow result;
it checks structure but cannot authenticate an invented receipt.
Runtime status handling
Classify provider failures as invalid_input, missing_key, plan_required,
rate_limited, degraded, or failing. A single blocked enrichment tool should not suppress
balances or transfers that did succeed.
Hand-offs
- Solana wallet (base58 address) →
hive-solana-analysis.
- "Is this address dangerous / phishing / sanctioned" →
hive-security-risk.
- Token-specific deep dive on one holding →
hive-token-diligence.
1---2name: hive-wallet-investigation3description: Use this skill whenever the user wants to look inside a wallet or address — portfolio, holdings, balances, transfers, PnL, NFT exposure, DeFi positions, whale moves, "what does this address hold", "trace this wallet's activity" — even if they just paste an address. Requires wallet address and chain before executing Hive wallet tools. For Solana wallets use hive-solana-analysis; for "is this address malicious" risk checks use hive-security-risk.4license: MIT5---67# hive-wallet-investigation — Wallet Investigation89Investigate a wallet's balances, transfers, PnL, NFT exposure, DeFi positions,10and notable activity with live Hive data, scoped to exactly what the user11asked.1213## Task toolset and identifiers1415Toolset: `wallet_investigation`. Read16`hive://toolsets/wallet_investigation` before execution; it is authoritative17for the current output schema, material-call budget, phases, fallback18condition, and stop conditions.1920- Required: wallet address and chain/network — unless the user explicitly asks21 for multi-chain.22- Optional: time window, asset filter, counterparty, protocol, NFT collection.2324Ask for the chain when an EVM address appears without context: the same25address exists on every EVM chain with different state, so guessing the chain26silently changes the answer. For Solana wallets, hand off to27`hive-solana-analysis`.2829Before choosing endpoints, select exactly one matching entry from the exact30workflow's routes[]. Follow its ordered steps, use a fallback only under that31step's published condition, stop at four material calls, and preserve the32selected route_id in the typed result. The broad coverageCatalog is discovery33coverage, not an execution plan.3435## Procedure36371. Validate the address format for the requested chain.382. Call `search_tools` for wallet balance, native balance, transfer, NFT,39 DeFi-position, and PnL capabilities as the question requires.403. Call `get_api_endpoint_schema` for each endpoint before calling it.414. Call `invoke_api_endpoint` with schema-valid, bounded arguments.425. Start with balances and native balance. Add transfers for activity43 questions; add NFTs, DeFi positions, or PnL only when relevant.446. Summarize exposure, concentration, notable activity, and missing data.4546## Bounded calls4748- Use explicit `limit`, `page`, `per_page`, or time filters for transfers.49- Do not fetch full history for a quick portfolio read.50- Avoid mixing chains unless the user requested multi-chain analysis.5152## Worked example5354User: "What does 0x28C6c06298d514Db089934071355E5743bf21d60 hold on Ethereum,55and did anything big move this week?"56571. `search_tools` → `{"query": "wallet token balances native balance transfers ethereum", "limit": 5}`582. `get_api_endpoint_schema` for the balance and transfer endpoints returned.593. `invoke_api_endpoint` for balances first, then transfers with a 7-day60 window and an explicit limit — argument names come from the schema, not61 from memory.624. Answer with the report template, flagging spam tokens and truncated63 history.6465## Report template6667```markdown68## Summary69[Wallet posture and the most notable finding.]7071## Calls made72- Toolset: wallet_investigation73- Endpoint(s): [exact endpoint names]74- Identifiers: [chain, wallet, filters]7576## Evidence77- Balances: [native + top token holdings]78- Activity: [transfers in window, counterparties]79- Exposure: [NFTs, DeFi positions, PnL if requested]80- Provenance: [provider, fetched_at, observed_at/cache_age_ms, runtime status per call]8182## Caveats83[Missing chains, truncated history, unavailable enrichment, degraded providers.]8485## Next action86[Chain expansion, transfer drilldown, risk check, or PnL detail — only if needed.]87```8889## Gotchas9091- Wallet labels and owner identity are not guaranteed.92- Token balances can include spam or illiquid assets — say so rather than93 inflating portfolio value.94- Absence of DeFi/NFT data may reflect provider coverage, not true absence.9596## Evidence receipt (required)9798End every Hive-backed answer with a compact receipt built from the `_hive`99object on each material tool response:100101- `provider`, `tool`, `fetched_at`, `observed_at`, `cache_age_ms`, and `runtime_status`102- `receipt_id`, `receipt_version`, server/build version, and SHA-256 input/result103 digests when present (self-checks, not signatures)104- `source`, `cache_status`, `truncated`, and any warnings105- canonical chain/entity identifiers plus block, slot, transaction, or query ids106 present in provider data107- material provider disagreements and how they were handled108- checks that were unavailable, gated, stale, truncated, or intentionally not run109- a `claims[]` citation from each material statement to exact receipt IDs110- one `coverage[]` entry for every canonical evidence phase, with each gap explained111112Never turn missing evidence into a clean result, silently merge conflicting113provider values, or omit a degraded/fallback call from the receipt.114`observed_at` is Hive's first-observation/original cache-population time, and115`cache_age_ms: 0` only means newly retrieved by Hive. Use provider time, block,116slot, transaction, or candle close for source recency; if absent, mark it117unknown. Run `validate_task_result` before presenting the typed workflow result;118it checks structure but cannot authenticate an invented receipt.119120## Runtime status handling121122Classify provider failures as `invalid_input`, `missing_key`, `plan_required`,123`rate_limited`, `degraded`, or `failing`. A single blocked enrichment tool should not suppress124balances or transfers that did succeed.125126## Hand-offs127128- Solana wallet (base58 address) → `hive-solana-analysis`.129- "Is this address dangerous / phishing / sanctioned" → `hive-security-risk`.130- Token-specific deep dive on one holding → `hive-token-diligence`.