in-solana by Supanode

Track a Wallet's Transactions in Real Time

TL;DR

  • - Use gRPC transaction filters with accountInclude to watch a wallet
  • - Receive all transactions where the wallet appears in the account list
  • - Parse transaction instructions to determine transfer direction and amounts
  • - Works for SOL transfers, token transfers, and program interactions

Monitoring a specific wallet on Solana means subscribing to all transactions where that wallet’s address appears in the transaction’s account list. Yellowstone gRPC provides the most efficient method.

gRPC subscription

Subscribe to transactions that include the target wallet:

{
  "transactions": {
    "wallet_watch": {
      "vote": false,
      "failed": false,
      "accountInclude": [
        "TARGET_WALLET_ADDRESS_HERE"
      ],
      "accountExclude": []
    }
  },
  "commitment": 1
}

This streams every non-vote, successful transaction involving the wallet. The wallet can appear as a signer, writable account, or read-only account in the transaction.

What you receive

Each transaction update includes:

  • Signature — transaction ID
  • Slot — when it was processed
  • Account keys — all accounts in the transaction
  • Instructions — program calls with data and account indices
  • Pre/post balances — SOL balances before and after
  • Pre/post token balances — token balances before and after

Parsing transfers

SOL transfers. Compare pre and post SOL balances for the wallet’s index in the account keys array. A decrease means the wallet sent SOL; an increase means it received SOL.

Token transfers. Check pre and post token balances. Each entry includes the mint address, owner, and balance. Match the owner to your target wallet.

Program interactions. For DeFi swaps, NFT trades, or other program calls, parse the instruction data. The first 8 bytes typically identify the instruction type (for Anchor programs) or the first byte (for native programs).

WebSocket alternative

If gRPC is not available, use accountSubscribe via WebSocket:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "accountSubscribe",
  "params": [
    "TARGET_WALLET_ADDRESS_HERE",
    { "commitment": "confirmed", "encoding": "jsonParsed" }
  ]
}

This only notifies on account data changes (SOL balance changes), not on every transaction. For full transaction monitoring, gRPC is more complete.

FAQ

Will I see transactions where the wallet is a read-only account? Yes. The accountInclude filter matches any appearance in the transaction’s account list, regardless of whether the account is writable.

How do I watch multiple wallets? Add all wallet addresses to the accountInclude array. Each transaction matching any wallet is delivered. Deduplicate transactions that involve multiple watched wallets.

Does this catch token transfers to the wallet? Yes. Token transfers involve the wallet’s associated token account, which references the wallet as owner. The transaction includes both the token account and the wallet address.

Updated: