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: