SLUICE docs
v1.0.0
Live demo Get help
● Documentation · Flutter · Solana

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.

v1.0.0Flutter · macOS · Web · Android · iOSNo backendNon-custodial

01What you bought

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.

SLUICE is a Flutter console for token distributions on Solana. A project funds a pool. SLUICE reads who holds the project's token at the current slot (or averages balances over a window from samples you record), removes addresses that are not real holders (pool vaults, burn addresses, the treasury, your own list), divides the pool, prepares unsigned transfer batches for the project's own wallet and records what settled on-chain. You run it for several projects and can take a fee on each round.

Safe defaults

A fresh install earns nothing and sends nothing, and its console opens only with the operator passcode you compile in (details): 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).

StepWhat SLUICE doesWhere in the code
SnapshotHolders at the current slot, which is recorded with the snapshot, or time-weighted over a window from balance samples you recordedlib/core/snapshot/
ExclusionsDetects program-controlled accounts (pool vaults) mathematically; adds your lists; flags probable exchange walletslib/core/exclusions/
ComputePro-rata or by tier (a tier editor in the project form), in integer base units, with documented rounding and dust ruleslib/core/compute/
Dry runWho gets what, what the round costs in SOL, your fee and what the exclusions removed. Nothing moves.lib/core/report/
DistributeDirect SPL TransferChecked transfers as unsigned batches for your own wallet, each batch opening with Compute Budget instructionslib/core/distribute/
AuditEvery round reproducible from its snapshot hash; each signature is checked against its batch on-chainlib/core/audit/
VocabularyRewards, distribution, revenue share, dividend, yield or your own words. Changes no number.assets/vocabulary/presets.json
How SLUICE works The console runs on your own device behind your operator passcode. 1. It reads holders through your RPC endpoint and Helius. 2. It removes exclusions and divides the pool. 3. The dry run shows every figure. 4. It hands over unsigned instruction batches. 5. Your own wallet signs and sends them. 6. You attach the signatures and SLUICE checks each one against its batch on chain for the audit trail. Your device · behind your operator passcode · no server 1 · Snapshotholders, current slot 2 · Exclude, divideinteger base units 3 · Dry runnothing moves 4 · Unsigned batchesfor your own wallet 6 · Audit trailsignatures verified Your RPC + Heliusyour accounts, read only 5 · Your wallet signsSLUICE holds no key Solanatransactions land
Where everything runs. The dashed box is your own device; nothing in it signs or holds a key.
It never signs

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 check on-chain that each one made exactly the transfers of its batch.

SLUICE snapshot screen: a holder table with balances, share of supply and allocation for a demo pool
A snapshot: every holder, their balance, their share and what the round allocates them. The pool shown is the sample round of the demo build: sample addresses, demo units, every figure computed by SLUICE.

02Pick your path

03What is in the package

Folder or fileWhat it is
lib/All source. The engine is in lib/core/, the console in lib/features/, theme in lib/app/.
assets/vocabulary/presets.jsonThe vocabulary presets, as data.
assets/icon/The SLUICE product icon (sluice_icon.png), used for the app icons and the console header mark.
macos/, web/, android/, ios/Platform projects. Linux and Windows are not configured.
test/Automated tests (flutter test).
docs/, CHANGELOG.mdDeveloper notes in Markdown.
You provide

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 signing tooling for those wallets. No on-chain program is needed. For store builds: Apple and Google developer accounts.

04Try it before you install

The live demo is the real web build compiled in demo mode: sluice-demo.mikodes.com (passcode sluice-demo). It reads no chain, holds no key and moves nothing; it shows one labelled sample round, computed by the product from sample input.

SLUICE first-run screen on a phone
First run

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.