Overview
SolSplit is a web app for sending SOL to many recipients efficiently and safely. It uses Address Lookup Tables (ALT) plus v0 versioned transactions to keep message size under limits, even with large recipient sets. The app creates a temporary ALT, extends it in chunks, sends transfers in batches, and can later deactivate/close the ALT to reclaim rent.
What it demonstrates
- Practical Solana scaling pattern: ALT + v0 tx for large account sets
- Batch transaction design: chunked ALT extension + chunked transfer execution
- Strong input validation (base58, duplicates, empty/self-address protection)
- UX for high-friction signing flows: dialogs, toasts, per-batch confirmations
- Fee estimation strategy with fallback when RPC preflight size limits are hit
Key features
- Bulk address import (auto-tokenized by non-base58 separators)
- Equal split or custom percentages (must total 100%)
- Temporary ALT lifecycle:
- create → extend → use → deactivate → close (optional)
- Chunk sizing controls to avoid oversized v0 messages
- Robust fee estimation with minimal-message fallback
- ALT close panel after cool-down to reclaim rent
SolSplit is configured devnet-first by default. Always test with small amounts before using any mainnet deployment.
Live demo
Architecture notes
- ALT exists to compress message bytes: v0 transactions reference a table instead of embedding every address.
- SolSplit keeps operations reliable by splitting work into two layers:
- ALT extension chunks (addresses per extend tx)
- transfer chunks (instructions per send tx)
- After sending, the ALT can be deactivated, and later closed once the slot-based cool-down expires.
Quickstart
git clone https://github.com/casaisdev/SolSplit.gitSee the repository README for the full local setup and tuning knobs (chunk sizes, network provider, and troubleshooting).
Notes
- If you see
encoding overruns Uint8Array, reduce the transfer chunk size and split across more batches. - Ledger users may need blind signing for transactions with many instructions/accounts.
- Closing the ALT is optional, but it’s a nice finishing step to reclaim rent after the cool-down.
Next steps
If I were to evolve SolSplit further:
- Add CSV import/export for recipient lists + templates
- Add a “dry run” preview (batch count, estimated fees, and signer prompts)
- Add SPL token multi-send alongside SOL
- Add a mainnet mode with safer defaults and stronger warning rails