跳过主要内容
M

dsh-wallet-tracker

muhadif/dsh-wallet-tracker

多链钱包追踪器:用命名账本记录 Solana、EVM 和 Bitcoin 地址,按单个钱包或合并查看余额、价格与按 FIFO 估算的盈亏,并可打开任一代币查看图表、最新成交和大户持仓。钱包地址会发给公开的数据服务(DexScreener、Jupiter、GeckoTerminal、Solscan 等)以获取余额、价格与成交。

安装

dsh plugin --profile web add github:muhadif/dsh-wallet-tracker

README

dsh-wallet-tracker

Multi-chain wallet watcher for DeepSeek Harness: keep a named book of wallets, see balances and estimated PnL per wallet or combined, and open any token for a chart, its latest trades and its top holders.

Read-only. No API key needed for any of the default data sources.

Solana · Ethereum · Optimism · Base · Arbitrum · Bitcoin

Install

Install the bundle through Plugin Manager (Settings → Plugins → add from registry) or with the Plugin Manager tool's install_bundle and the package name:

dsh-wallet-tracker

The panel shows up in the left sidebar as Wallets / Dompet. Refresh the page once after installing.

What you get

PortfolioNative balance plus every SPL / ERC-20 token, priced in USD, per wallet or summed across the whole book
PnLFIFO cost basis from on-chain swap history, realised + unrealised, per token and in total
Token detailCandles (15m / 1h / 1d), liquidity, FDV, 24h volume, top holders, latest trades, and links to DexScreener / explorer
Wallet bookAny number of wallets, custom names, per-chain address validation, filter by wallet or switch to "all wallets"
Big numbersCompact ($15.43M) with the exact figure on hover, or click to pin it

Data sources

ChainBalancesHistory (PnL)Detail
SolanaSolana RPC (api.mainnet-beta)solana-rpc.publicnode.comGeckoTerminal + RugCheck + Jupiter
Ethereum, OptimismBlockscout APIBlockscout APIGeckoTerminal + Blockscout
Base, ArbitrumBlockscout API — the public instances answer 403 from Cloudflare, point explorers at your ownsamesame
BitcoinBlockstream API— (PnL not computed)—

Prices come from DexScreener and Jupiter; both are keyless with generous limits.

How PnL is estimated

  • The last scanSignatures transactions (default 150) are read per wallet.
  • A transaction counts as a trade when exactly one token mint changes and there is a native leg (SOL/ETH) with it. Fee-only transfers are ignored, so a received token never becomes a "buy".
  • Lots are consumed FIFO. Cost basis is held in the native coin and converted at the current native price, so the figure tracks the coin, not the dollar at trade time.
  • When part of a holding has no priced trade behind it (airdrops, transfers in), that part is excluded from unrealised PnL and shown as no cost basis instead of being counted as profit.
  • EVM trades that swap one ERC-20 for another without a native leg are skipped, not counted as zero.

Configuration

Edit the row in your profile's cordis.patch.yml:

- insert:
    - id: sol-wallet
      name: dsh-wallet-tracker
      config:
        rpcUrl: https://api.mainnet-beta.solana.com
        historyRpcUrl: https://solana-rpc.publicnode.com
        historyConcurrency: 6
        scanSignatures: 150
        # heliusKey: ''            # free key from helius.dev: overrides both RPC URLs
        # explorers:               # any Blockscout-compatible instance per chain
        #   base: https://blockscout.example
KeyDefaultMeaning
rpcUrlapi.mainnet-beta.solana.comBalances, prices' mint list, signature list
historyRpcUrlsolana-rpc.publicnode.comSwap history; takes concurrent single calls
historyConcurrency6Parallel history requests
scanSignatures150Transactions scanned for PnL
heliusKey—Free Helius key; replaces both RPC URLs
explorers—Per-chain Blockscout base URL override

Screenshots

Wallet book with the asset table

Token detail: chart, pool stats, top holders and latest trades

Development

The bundle is plain JavaScript with no build step and no dependencies.

node check.mjs      # ledger maths, fee handling, client registration
FileRole
index.jsHost half: chain registry, balances, prices, history, PnL ledger, JSON routes
client.jsClient half: the sidebar entry, panel, wallet book, token drawer
check.mjsAssert-based self-check for the ledger and the client wiring

Host routes (loopback only, same origin as the GUI): GET /sol-wallet/portfolio, /sol-wallet/pnl, /sol-wallet/token, /sol-wallet/holders, each taking chain and address or mint.

Privacy

The wallet book lives in your browser's localStorage. The host half only reads public chain data — no credentials, no keys, no signing, nothing leaves your machine except the public API and RPC calls listed above.

License

MIT © Muhammad Adi

相关插件