Use Cases

Distributing assets via Mass Payout

End-to-end scenario: installing the Mass Payout Plugin, a Pull round or a Push round, and how recipients receive their payout.

This scenario walks a DAO through distributing assets to LP token holders or to an arbitrary list of addresses — from installing the Mass Payout Plugin to the moment the funds land in recipients' wallets.

Step 1. Enable distribution support

Like crowdfunding, distributions require a one-time upgrade to the DAO's contracts via an Enable Crowdfunding Support proposal. If the DAO has already gone through this upgrade before (for example, for crowdfunding), you don't need to repeat it.

🔷 See Enable Crowdfunding Support.

Step 2. Install the Mass Payout Plugin

The Install Mass Payout Plugin proposal deploys the module in the DAO that holds funds and runs distribution rounds — both Pull and Push.

🔷 See Install Mass Payout Plugin.

After installation, top up the plugin's balance by transferring funds to it (see Send DAO Funds) — both distribution modes below require this.

Step 3. Choose a distribution mode

Mode A (Pull, "Distribution by LP") — the DAO forms a common pool for its LP token holders; the system builds a Merkle snapshot, and each holder claims their share themselves. This mode requires the DAO to have a Crowdfunding Module (LP Manager) installed with LP holders — see the crowdfunding launch scenario.

Mode B (Push, "Payment List") — the DAO specifies a list of addresses (up to 200) and amounts up front; the plugin sends the payments itself — no LP tokens required.

Option A — Pull round, distribution to LP holders

The Create Distribution Round proposal in Distribution by LP (Pull) mode: specify the currency (TON or a jetton), the amount to distribute, the claim window duration, and, optionally, addresses to exclude from the distribution (treasury and service addresses are excluded automatically). Before the vote, the form builds a snapshot preview — locking in LP holders and their shares at that moment.

🔷 See Create Distribution Round.

If you need to stop a round early — for example, to free up reserved funds — use a separate proposal that immediately closes claims for everyone who hasn't yet claimed their share.

🔷 See Close Distribution Round.

Option B — Push round, distribution by list

The same Create Distribution Round proposal, but with the mode switch set to Payment List (Push): fill in the table of recipients and amounts manually or via Quick Add Recipients (GP and/or LP holders), specify the currency — and once the proposal passes, the plugin sends the payments to the list on its own, with no action required from recipients.

🔷 See Push Rounds.

An in-progress payout can be stopped with a Cancel Push Payout Round proposal — payments already sent are not reversed.

Step 4. Recipients receive their payout

What a recipient does next depends on the round's mode:

Pull round. An LP holder opens the Distributions tab in the DAO, finds the active round with their share (Your Reward), and clicks Claim — the app loads the Merkle proof and sends the claim request from their wallet.

🔷 See Claim a Distribution Payout.

Push round. The recipient doesn't need to do anything — the Mass Payout Plugin transfers the funds to their address automatically; on the round card, this payout is marked with the Sent status.

Every Pull round has a claim window (Claim Duration). If a holder doesn't claim their reward before this window expires, the round moves to Expired status and claiming becomes unavailable.

Step 5. Withdraw the remainder

Funds on the plugin that aren't reserved for active rounds — for example, the unclaimed remainder of a closed or expired Pull round — are withdrawn by the DAO via a separate proposal to any address, including back to the treasury.

🔷 See Withdraw Mass Payout Funds.

That completes the distribution cycle: the DAO's assets reached recipients — either through their own action (Pull) or an automatic payout (Push) — and any remaining balance on the plugin stays under the DAO's control for the next round.

On this page