Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HELIUS_HTTP2NoDisable to force HTTP/1.1.true
HELIUS_API_KEYYesYour Helius API key. Required.
HELIUS_NETWORKNoEither `mainnet` or `devnet`.mainnet
HELIUS_MAX_RETRIESNoRetries for single (non-batched) requests.6
COIN_SCOUT_CASES_DIRNoWhere case files are stored.~/.coin-scout/cases
COIN_SCOUT_MAX_PAGESNoHard cap on pagination loops.20
HELIUS_CACHE_ENTRIESNoLRU cache capacity.20000
HELIUS_MAX_BATCH_SIZENoUpper bound for JSON-RPC batching.20
HELIUS_BATCH_WINDOW_MSNoCoalescing window for JSON-RPC micro-batching.4
HELIUS_MAX_CONCURRENCYNoCeiling on in-flight HTTP requests.24
COIN_SCOUT_MAX_TRACE_NODESNoHard cap on `trace_funds` graph size.400

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

coin-scout is a read-only Solana data server backed by Helius. It never signs or submits transactions.

Routing guide:

  • Wallet question -> analyze_wallet, then find_counterparties for detail.

  • "Where did the money go / come from" -> trace_funds (direction out / in).

  • Token safety, rug risk, holder concentration -> analyze_token.

  • "Are these the same person" -> compare_wallets. "Who else does this wallet control" -> find_cluster.

  • Funds left Solana or arrived from another chain -> follow_bridge. trace_funds resolves bridge crossings it meets; pass followEvm to keep tracing on the EVM side, or call trace_evm.

  • Who owns an address (exchange, deposit address, hot wallet) -> identify_addresses. trace_funds labels its terminals the same way.

  • Fake volume, bots trading with themselves -> detect_wash_trading.

  • Profit, cost basis, "did this wallet profit from the rug" -> wallet_pnl (pass mint for one token).

  • One signature to understand -> investigate_transaction, or get_transactions for a plain parse.

  • Movement of value with filters (counterparty, mint, direction, time) -> get_transfers. Prefer it over paging signatures.

  • Anything not covered -> solana_rpc.

Case files persist investigations across sessions. Call case_read with an address first to see whether an earlier case already covers it. Pass case= to trace_funds, find_cluster or follow_bridge to save results; record findings with case_update (label confidence: established, high, medium, low, or supplied for claims you were told but have not verified); case_export writes a Markdown report and SVG fund-flow diagrams. Case labels show up in every tool's label field.

Timestamps are unix seconds; amounts are decimal-adjusted UI amounts unless the field name says raw. Current USD values come from Helius pricing; usdAtTime values come from DefiLlama historical prices. Both only cover traded tokens; treat a missing price as unknown, not zero. Analysis tools sample recent history — when a result reports truncation, its counts are lower bounds.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
chain_statusA

Current Solana slot, epoch, block height and recommended priority fee. Cheap orientation call — use it to anchor timestamps and confirm the RPC is healthy.

get_balancesA

SOL and SPL token balances for one or more wallets, with USD value where Helius prices the token. Use this before any transfer or portfolio question.

get_accountB

Raw + parsed on-chain account state for any address: lamports, owning program, executable flag and parsed data (mint config, token account, stake, etc). Use this to tell a wallet from a PDA, a mint or a program.

get_transactionsA

Helius enhanced (human-readable) parse of up to 100 signatures: type, source protocol, description, native + token transfers, swap events and per-account balance deltas. This is the primary way to understand what a transaction actually did.

get_transaction_rawA

Full raw jsonParsed transaction including logMessages, inner instructions, compute units and pre/post balances. Use only when the enhanced parse in get_transactions is not enough (custom programs, failure debugging).

get_transfersA

Parsed SOL + SPL transfer feed for a wallet with server-side filters: counterparty, direction, mint, time and slot range. The fastest primitive for fund-movement questions — prefer it over walking signatures.

get_transaction_historyA

Signature-level history for an address with slot/time/status filters and cursor pagination. Use when you need coverage of every transaction touching an address, not just transfers.

get_swapsA

Normalized DEX swap history for a wallet: what was sold, what was bought, venue and fee per trade, plus a per-mint net-position summary. Use for trading behaviour, wash-trading and PnL groundwork.

get_token_holdersA

Paginated list of every token account for a mint with owner and balance. Use for holder-distribution work beyond the top-20 that analyze_token returns.

get_assetsB

Digital Asset Standard lookup: one asset by mint, or every asset held by an owner. Covers NFTs, compressed NFTs, fungible tokens and Token-2022, with metadata, authorities, creators, royalties and price.

search_assetsA

Flexible DAS query across owner, creator, collection, compression state and token type. Use to enumerate a scammer's mints, a collection's supply, or every token a wallet ever created.

get_asset_activityA

Every transaction signature that touched a COMPRESSED NFT (Bubblegum tree asset), oldest to newest. Use to reconstruct a cNFT's mint-and-sale chain of custody. Fungible mints and standard NFTs are not indexed here — use get_transaction_history or get_transfers for those.

solana_rpcA

Escape hatch: call any read-only Solana JSON-RPC or Helius DAS method directly when no dedicated tool fits. Only get*, is*, search*, minimumLedgerSlot and simulateTransaction are forwarded; anything that could submit or sign (sendTransaction, requestAirdrop, sendBundle) is rejected.

server_metricsA

coin-scout transport stats: HTTP requests issued, JSON-RPC batch compression, retries, cache hit rate and adaptive rate-limit state. Use to explain slow responses or confirm caching is working.

analyze_walletA

One-call wallet profile: portfolio value, holdings, first/last activity, in/out flow shape, top counterparties, earliest funders and heuristic risk flags (fresh wallet, single funder, fan-in/fan-out, frozen assets). Start every wallet investigation here.

analyze_tokenA

Rug-pull and manipulation screen for an SPL mint: live mint/freeze authority, metadata mutability, supply, FDV, holder count, top-holder concentration (top1/top10/HHI) with program-owned pools separated from real holders, plus a 0-100 risk score and explicit flags.

trace_fundsA

Breadth-first fund-flow graph from a wallet, forwards (where money went) or backwards (where money came from), up to N hops. Returns nodes, weighted edges, terminal sinks and detected circular flows. The core tool for following stolen or laundered funds.

find_clusterA

Start from one wallet and discover the other wallets likely controlled by the same actor: who pays its fees, who co-signs with it, where its token-account rent goes, which wallets share its funder, plus same-slot activity, creation time and timing similarity. Returns scored members with the signature evidence for each signal. Use compare_wallets instead when you already have the candidate list.

follow_bridgeA

Resolve where funds went when they left Solana (or where they came from when they arrived) through Wormhole, deBridge, Mayan or Circle CCTP: other chain, recipient address, amounts and the transaction hash on the other chain. Pass signatures, or an address to scan its recent history for bridge transactions. trace_funds already resolves the crossings it meets.

wallet_pnlA

Realized and unrealized PnL per token from a wallet's DEX swaps, valued in USD at the time of each swap (average-cost basis). Answers "did this wallet profit from the rug" (pass mint), sniper/insider profit, and overall trading results. Sales of tokens never bought in the sample (airdropped, sent by a dev wallet, bought before the sample) are reported as unmatchedProceedsUsd and realizedPnlIfUnboughtFreeUsd instead of realized PnL — check those for insiders. With mint set, receivedWithoutSwap lists who sent the wallet that token for free.

find_counterpartiesA

Rank every address a wallet transacted with over a transfer sample, split by inbound/outbound count and per-mint volume, with first/last contact. Use to spot the funder, the sink, or the one address a wallet keeps cycling with.

compare_walletsA

Sybil / co-ownership check across 2-10 wallets: direct transfers between them, shared funders, counterparty-set Jaccard overlap and a 0-100 link strength per pair. Use to test whether separate addresses are the same actor.

investigate_transactionA

Deep dive on one signature: enhanced parse, net SOL/token delta per account, every mint involved screened for rug risk, and a profile of the fee payer. Use when a single transaction is the starting point of an investigation.

identify_addressesB

Who is behind these Solana addresses: built-in exchange wallets (OKX proof-of-reserves addresses, ownership signature verified), Helius wallet identity when the API key has access, case labels, program labels, and a deposit-address check that flags addresses sweeping their funds to an exchange or a high fan-in hot wallet. Each label says its source and confidence.

detect_wash_tradingA

Read a token's recent trades straight from its highest-volume AMM pools or bonding curve (found through DexScreener and the top holders, each checked on-chain) and score them for wash trading: wallets whose buys and sells cancel out, same-slot buy+sell, quick round trips of the same size, volume concentration, and traders funded by a common wallet. Returns a 0-100 score, flags, the suspicious traders with a sample signature each, and funder groups.

trace_evmA

Follow funds forward from an address on an EVM chain, usually the destination of a bridge crossing that trace_funds or follow_bridge found. Reads native and ERC-20 transfers, values them in USD at the time, expands the largest recipients and stops at contracts and labelled addresses. Chains: Ethereum, BNB Chain, Polygon, Avalanche, Arbitrum, Optimism, Base, Fantom, Celo, Moonbeam, Scroll, Mantle, Linea. Ethereum works without a key through Blockscout; the rest need ETHERSCAN_API_KEY.

case_updateA

Create a case or add to it: summary, address labels with confidence and evidence signatures, and dated notes (findings, leads, retractions). Labels are shown by every other tool from then on, across sessions and cases.

case_readA

With no arguments, list every case. With address, search all cases for prior labels, notes and saved traces mentioning it — do this before starting on any address. With case, return that case's labels, notes and an index of saved artifacts; add artifactId to get one saved trace, cluster or bridge result in full.

case_exportA

Write the case to disk as report.md (labels, notes, tables, Mermaid diagrams) plus one standalone SVG fund-flow diagram per saved trace or cluster, ready to drop into a report. Returns the file paths.

Prompts

Interactive templates invoked by user choice

NameDescription
investigate_addressStructured fraud/AML workflow for a suspicious Solana wallet
screen_tokenPre-trade due diligence workflow for an SPL mint
trace_stolen_fundsFollow funds out of an exploited account toward cash-out points

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 29 tools

Disambiguation4/5

Most tools have distinct forensic purposes, and the descriptions clearly separate wallet profiling, token screening, tracing, clustering, asset lookup, and case management. Residual overlap exists among transaction-level tools such as get_transactions, get_transaction_history, get_transfers, and investigate_transaction, and solana_rpc is a deliberate catch-all, but the boundaries are usually explained.

Naming Consistency4/5

Names are consistently snake_case and mostly follow verb_noun patterns such as get_*, analyze_*, find_*, trace_*, and identify_*. However, several topic-first names such as wallet_pnl, chain_status, case_update, case_read, and case_export break the strict verb-first convention, though the set remains readable.

Tool Count2/5

At 29 tools, the surface is heavy for an agent to select from reliably, even if each tool maps to a real forensic capability. The rubric treats 25+ tools as too many for practical scoping, and this set would benefit from consolidation or clearer grouping.

Completeness4/5

The surface covers an end-to-end investigation lifecycle: orientation, wallet/token analysis, transfers, transactions, swaps, cross-chain tracing, clustering, DAS asset lookup, and case update/read/export. Minor gaps exist around deeper non-EVM follow-up after bridges and case deletion, but core workflows have workarounds.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues