Plugins and modules
A DAO in XDAO TON is built modularly: the base DAO contract holds the GP token and executes proposals, while additional capabilities — crowdfunding, Mass Payouts, separate wallets — are attached as plugins and Sub-Wallets. Installing any plugin or Sub-Wallet happens only through a proposal and a GP vote, like any other DAO action.
Sub-Wallet
A Sub-Wallet is a separate wallet controlled by the DAO, used to segregate funds by purpose (for example, keeping the proceeds of one crowdfunding campaign separate from the main treasury). It is created via the Create Sub-Wallet proposal; each Sub-Wallet has its own sequence number and name.
Crowdfunding Module
The Crowdfunding Module gives the DAO the ability to raise funds from the community. Technically, it consists of the LP Manager plugin (see LP tokens and jettons), which issues LP tokens to campaign participants.
Before the module can be installed, the DAO must go through a one-time contract upgrade — it unlocks crowdfunding support and leaves the DAO ready for LP Manager installation.
DAO contract upgrade — a one-time update that enables crowdfunding support (the Enable Crowdfunding Support proposal).
Installing the Crowdfunding Module — deploys an LP Manager in the DAO (the Install Crowdfunding Module proposal).
Creating a Sub-Wallet to receive campaign funds (the Create Sub-Wallet proposal).
Launching a campaign — creating the first crowdfunding campaign (the Crowdfunding proposal), after which the DAO can raise funds from the community.
Mass Payout Plugin
The Mass Payout Plugin gives the DAO the ability to distribute funds (dividends) among LP token holders. Payouts are made in TON or jettons, and entitlement is verified using Merkle proofs, which keeps claiming gas-efficient for LP holders.
The plugin supports two distribution modes:
- Distribution round (Mode A) — the DAO creates a round, a snapshot of LP token holders is taken and each holder's share is calculated; holders then claim their portion themselves within a configurable period.
- Push round (Mode B) — the DAO specifies the list of addresses and amounts itself, and the plugin sends the payouts directly, with no claiming required from recipients.
Enable distribution support — the same one-time DAO upgrade used for crowdfunding (the Enable Crowdfunding Support proposal).
Install the Mass Payout Plugin (the Install Mass Payout Plugin proposal).
Set up the LP holder base — a Distribution round requires an installed Crowdfunding Module with LP token holders.
Create a round — a Distribution round or Push round (the Create Distribution Round proposal).
Installing any plugin or Sub-Wallet is a separate proposal: it must be supported by GPs, and it is executed only once general consensus is reached (see Voting and proposals).