Перейти к основному содержимому
M

dsh-wallet-tracker

muhadif/dsh-wallet-tracker

Multi-chain wallet tracker: keep a named book of Solana, EVM and Bitcoin addresses, see balances, prices and estimated FIFO PnL per wallet or combined, and open any token for its chart, latest trades and top holders. Wallet addresses are sent to public data services (DexScreener, Jupiter, GeckoTerminal, Solscan and similar) to fetch balances, prices and trades.

Установка

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

Похожие плагины