SLUICE
from zip to first round.
Everything you need to build, configure and run SLUICE: token distribution for Solana projects, run by you for several projects, with your fee on every round. Read it top to bottom the first time. After that, press / and search.
01What you bought
SLUICE is a Flutter console for token distributions on Solana. A project funds a pool. SLUICE reads who holds the project's token at a slot you choose, removes addresses that are not real holders (pool vaults, burn addresses, the treasury, your own list), divides the pool, prepares the transactions and records what settled on-chain. You run it for several projects and can take a fee on each round.
A fresh install earns nothing and sends nothing: the fee is 0 basis points, the fee wallet is empty, there is no API key and no wallet address of anyone else in the source (lib/core/compute/operator_fee.dart).
| Step | What SLUICE does | Where in the code |
|---|---|---|
| Snapshot | Holders at a slot, or time-weighted over a window from samples it collected | lib/core/snapshot/ |
| Exclusions | Detects program-controlled accounts (pool vaults) mathematically; adds your lists; flags probable exchange wallets | lib/core/exclusions/ |
| Compute | Pro-rata or by tier, in integer base units, with documented rounding and dust rules | lib/core/compute/ |
| Dry run | Who gets what, what each path costs in SOL, your fee and what the exclusions removed. Nothing moves. | lib/core/report/ |
| Distribute | Direct transfers as unsigned batches, or a Merkle root and proofs for a claim program you supply | lib/core/distribute/ |
| Audit | Every round reproducible from its snapshot hash; signatures checked on-chain | lib/core/audit/ |
| Vocabulary | Rewards, distribution, revenue share, dividend, yield or your own words. Changes no number. | assets/vocabulary/presets.json |
SLUICE holds no key and produces no signature. It has no server. It prepares instructions; the project's own wallet signs and sends them, and you attach the signatures back so SLUICE can confirm them on-chain.
02Pick your path
03What is in the package
| Folder or file | What it is |
|---|---|
lib/ | All source. The engine is in lib/core/, the console and the claim page in lib/features/, theme in lib/app/. |
assets/vocabulary/presets.json | The vocabulary presets, as data. |
assets/icon/ | Placeholder app icon and the header mark. |
macos/, web/, android/, ios/ | Platform projects. Linux and Windows are not configured. |
test/ | Automated tests (flutter test). |
docs/, CHANGELOG.md | Developer notes in Markdown. |
A Solana RPC endpoint (a free tier is enough to start), a Helius API key (recommended), the wallets that fund and sign each round, and, only for the Merkle path, an on-chain claim program. For store builds: Apple and Google developer accounts.
04Try it before you install
The live demo is the real web build on a public Solana endpoint: sluice-demo.mikodes.com. It holds no key and moves nothing. What you create there stays in your browser.

05How to read these docs
- Dark boxes are commands. Press Copy in the corner and paste them into a terminal.
- Grey text after
#is an explanation. The Copy button leaves it out. - Text in angle brackets, like
<your-mint>, is a placeholder. Replace it, brackets included. - Screen names follow your vocabulary preset. With the default preset a round is a "distribution"; these docs say "round".
- Required marks steps you cannot skip before a real round.
- Not built in this version marks things SLUICE deliberately does not do yet.