SLUICE docs
v1.0.0
Live demo Get help
● Set up · Every surface

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.

SLUICE first-run screen
First run, 390 px

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.

New project form with the method By tier and the tier editor: tier rule, snapshot token decimals and three example tiers with a name, a minimum held and a multiplier
The tier editor in the demo build, with three example tiers typed in and not saved. Minimums are in whole tokens of the snapshot token.

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 getProgramAccounts the 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.

Run panel in Time-weighted mode: Window, days, Samples in the window, Last sample and the Record a balance sample button, beside the round report computed in time-weighted mode
Time-weighted mode in the demo build, after Dry run: a 7-day window over 7 samples, and the report reads MODE time_weighted. The demo reads no chain, so its sample project carries one labelled sample balance a day for the last 30 days and Record a balance sample only explains that; in your own build each press reads every holder and adds one.
Holder table with balances, share of supply, allocation and state for each address

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).

Exclusions screen: switches for program-controlled authorities and exchange omnibus wallets, and the registry of detected addresses
Detection runs over the snapshot and lists what it found, with the on-chain reason, before anything is removed.

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

ExportWhat it is for
Allocations · CSVWho gets what, for a spreadsheet or the project
Exclusions · CSV / JSONWho was removed and why, with evidence
Audit bundle · JSONThe snapshot, the exclusions, the plan and how to check them. The durable record of a round.
Settlement report · JSONWhat 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.

Round report: holders in the snapshot, addresses excluded, the amount funded, the operator fee, what is divided, the transfer cost, the snapshot slot and the snapshot and plan hashes
The round report. Every number names the evidence it was measured from, and the snapshot and plan hashes let anyone re-derive the round.

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).

Vocabulary screen with the Distribution, Dividend, Revenue share, Rewards, Yield and Custom presets and a live preview
Vocabulary changes the words, not the arithmetic. The preview shows the sentences the console and the exports will use.

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.

SLUICE Settings at 1440 px
Settings, 1440 px, in a web build: the checklist names what is missing, the fee is 0 with no fee wallet ("nothing, no fee wallet set"), and the endpoints and key are kept for this browser session only.