
Sluice
Flutter App - Token Distribution With Holder Snapshots

AI disclosure: AI tools were used to assist with parts of the code, documentation and graphics of this item. The author directed, reviewed and tested every part before release.
What it does
- Holder snapshot at the current slot, or time-weighted over a window from recorded samples
- Pool vaults excluded by detection, not by a typed address
- Pro-rata or tiered allocation (tier editor in the console) in integer base units, with a documented rounding and dust rule
- The same snapshot always produces the same plan
- A dry run that moves nothing: allocations, costs, exclusions and the operator fee
- No figure about a round that has not happened
- Direct transfer batches with Compute Budget instructions, prepared unsigned for your own wallet
- Each batch verified on chain against its recipients and amounts before it counts as paid
You need
- Flutter SDK with Dart ^3.11.1 (verified with Flutter 3.41.4 / Dart 3.11.1)
- A Solana JSON-RPC endpoint the buyer supplies. The shared public endpoint rate-limits hard and often refuses getProgramA
- A Helius API key (free tier) for paginated holder enumeration on large holder sets; without it SLUICE falls back to getP
- A funding wallet that holds the pool and signs every batch - SLUICE never holds its key
- Signing tooling the operator controls: SLUICE hands over unsigned instructions as JSON