Commands
Complete reference for all CLI commands.
scan-wallet
Analyze wallet transaction history for privacy risks.
solana-privacy-scanner scan-wallet <ADDRESS> [options]
Options:
--max-signatures <number>- Max transactions to analyze (default: 100)--json- Output as JSON--output <file>- Save to file--rpc <url>- Custom RPC endpoint
Examples:
# Basic scan
solana-privacy-scanner scan-wallet YourWalletAddress
# Quick check (20 transactions)
solana-privacy-scanner scan-wallet YourWallet --max-signatures 20
# Deep analysis with file output
solana-privacy-scanner scan-wallet YourWallet --max-signatures 200 --output report.txt
# JSON for automation
solana-privacy-scanner scan-wallet YourWallet --json > report.json
scan-transaction
Analyze a single transaction for privacy risks.
solana-privacy-scanner scan-transaction <SIGNATURE> [options]
Options:
--json- Output as JSON--output <file>- Save to file--rpc <url>- Custom RPC endpoint
Example:
solana-privacy-scanner scan-transaction 5Jx...Signature...xyz
scan-program
Analyze program interactions for privacy patterns.
solana-privacy-scanner scan-program <PROGRAM_ID> [options]
Options:
--max-accounts <number>- Max accounts to fetch (default: 10)--max-transactions <number>- Max transactions to analyze (default: 20)--json- Output as JSON--output <file>- Save to file--rpc <url>- Custom RPC endpoint
Example:
solana-privacy-scanner scan-program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4
analyze
Static analysis for privacy anti-patterns in source code.
solana-privacy-scanner analyze <paths...> [options]
Options:
--json- Output as JSON--no-low- Exclude low severity issues--quiet- Only show summary--output <file>- Save to file
Examples:
# Analyze source files
solana-privacy-scanner analyze src/**/*.ts
# Analyze specific files
solana-privacy-scanner analyze src/transfer.ts src/wallet.ts
# JSON output
solana-privacy-scanner analyze src/ --json --output analysis.json
# Hide low severity issues
solana-privacy-scanner analyze src/ --no-low
Detects:
- Fee payer reuse in loops (CRITICAL)
- PII in transaction memos (HIGH)
- Hardcoded addresses (MEDIUM)
- Descriptive memo patterns (LOW)
init
Interactive setup wizard for privacy configuration.
solana-privacy-scanner init
Creates:
.privacyrc- Privacy policy configuration.github/workflows/privacy-check.yml- GitHub Actions (optional).husky/pre-commit- Pre-commit hook (optional)tests/setup.ts- Test matchers setup (optional)
Configuration presets:
- Development - Permissive rules
- Production - Strict rules
- Custom - Manual configuration
Common Patterns
Quick privacy check:
solana-privacy-scanner scan-wallet YOUR_WALLET --max-signatures 30
Automated monitoring:
# Daily scan
solana-privacy-scanner scan-wallet YOUR_WALLET --json --output "scan-$(date +%Y%m%d).json"
Process with jq:
# Extract HIGH risk signals
solana-privacy-scanner scan-wallet YOUR_WALLET --json | \
jq '.signals[] | select(.severity == "HIGH")'
# Count signals
solana-privacy-scanner scan-wallet YOUR_WALLET --json | jq '.summary.totalSignals'
Scan multiple wallets:
for wallet in wallet1 wallet2 wallet3; do
solana-privacy-scanner scan-wallet "$wallet" --output "report-$wallet.txt"
done
GitHub Actions:
- run: npm install -g solana-privacy-scanner
- run: |
solana-privacy-scanner scan-wallet ${{ secrets.WALLET }} \
--json --output audit.json
Shell alias:
# Add to .bashrc/.zshrc
alias solscan='solana-privacy-scanner scan-wallet'
Troubleshooting
Command not found:
npm install -g solana-privacy-scanner
# or use npx
429 Too Many Requests:
Reduce --max-signatures or wait. Free RPC tiers have limits.
No risks detected:
May be accurate! Try increasing --max-signatures for more history.
Test connectivity:
solana-privacy-scanner scan-wallet YOUR_WALLET --max-signatures 5