The console
one surface at a time.
SLUICE's admin is the app itself, behind the operator passcode of your build. The first four surfaces are a round, in order: Projects, Snapshot, Exclusions, Rounds. The last three are the equipment around it: Exports, Vocabulary, Settings.
01First run
The app opens on the passcode screen (Operator passcode). After Unlock, and until a project exists, SLUICE shows one screen with one thing to do: Create the first project, or Endpoints and keys to set up Settings first. It states no figure, because nothing has been measured yet.

02Projects
The token measured, the asset sent and the wallet that funds it. New project opens the form; every field is described in Configuration → Project settings. With the method By tier the form also shows the tier editor (Tiers). The form refuses addresses that are not Solana addresses and says which field is wrong. Delete this project asks first.

03Snapshot and dry run
Who held what, and what each is owed this round. Enter the amount the project funds, choose the SNAPSHOT mode and press Dry run. SLUICE reads the holders, applies the exclusions, computes the plan and prices it. Nothing moves.
- Current slot reads every holder now. The slot is recorded with the snapshot; with
getProgramAccountsthe reads are pinned to it. There is no choosing a past slot. - Time-weighted averages each holder's balance over a window instead (below).
- The run panel shows the pool, Your fee (with share + flat), what is Divided, Recipients, the Estimated network fee and Transactions to sign.
- The holder table shows each holder, their snapshot balance, weight and allocation.
- The action button uses your preset's verb (for example Distribute). It opens Commit this round, with the plan hash, which records the round as prepared and hands you the unsigned batches.
Time-weighted snapshots
Set SNAPSHOT to Time-weighted and the run panel shows:
- Window, days: a whole number from 1 to 365.
- Samples in the window and Last sample: what the ledger holds for this snapshot mint.
- Record a balance sample: reads every holder's balance now, after exclusions, and appends it to a ledger stored on this device for the snapshot mint. A wallet that sold since the previous sample is written down at zero.
The dry run then computes each holder's time-weighted average balance over the last N days from those samples. Record samples during the window, for example once a day: a past balance cannot be read on an ordinary (non-archival) endpoint, so a window is only as fine as the samples taken in it, and samples recorded on one device are not on another.


04Exclusions
Who is not a holder, and the evidence for it.
- What the last snapshot removed: every excluded address with the reason and evidence.
- Detection: Exclude program-controlled authorities (on; turning it off asks you to confirm), Look for exchange omnibus wallets, Apply a probable omnibus flag automatically, and Verify the registry on chain.
- Your list: address, note and reason (Treasury, Team wallet, Burn address, Exchange wallet, Other), then Add to the list.
Export the exclusion list before you fund anything (Exports → Exclusions · CSV).

05Rounds
Named by your preset (for example Distributions). Every round that has been committed, and what settled on-chain.
- Totals: Still outstanding, Rounds with a confirmed signature, next round due (for scheduled projects).
- Per round: prepared amount, what settled from the plan, operator fee, snapshot hash and plan hash.
- Attach a signature: paste a Signature, pick the Batch number it paid (SLUICE shows what that batch pays and how many recipients are in it), then Attach and confirm. SLUICE reads the transaction from the chain (
getTransaction,jsonParsed) and marks the batch paid only when it is finalized and its transfers match the batch exactly: the recipients' token accounts, the amounts, the payout mint, and the funding wallet as source and signer. A signature that does not match is refused and nothing is recorded. A transaction the endpoint cannot return yet is kept as awaiting the chain: it is never resent and not counted until a re-check verifies it. - Ask the chain re-checks the batches still awaiting the chain.
- Copy the unpaid batches copies the batches not yet paid as JSON. Everyone a finalized batch already paid is left out, so a resumed round never pays twice.
- Failed transfers and the Audit trail: every round is reproducible from its snapshot hash.
06Exports
| Export | What it is for |
|---|---|
| Allocations · CSV | Who gets what, for a spreadsheet or the project |
| Exclusions · CSV / JSON | Who was removed and why, with evidence |
| Audit bundle · JSON | The snapshot, the exclusions, the plan and how to check them. The durable record of a round. |
| Settlement report · JSON | What settled on-chain, with signatures and your fee |
JSON keys never change with the vocabulary preset; in CSV only the holder and allocation headers use your words.

07Vocabulary
Pick a preset and see a Preview of the words across the console and the exports. Custom preset: fill only the words you want to change, then Save custom preset; blanks fall back to the default. No figure changes (details).

08Settings
Setup checklist, Endpoints (with Test the endpoint), Operator fee, Explorer, Transaction packing, Effective configuration and What SLUICE will not do. Every setting is in Configuration; the fee is on Your fee.
