Architecture

Smart contracts

A DAO in XDAO TON isn't a single contract but a set of linked smart contracts on TON: a base DAO contract plus a set of pluggable modules.

The public addresses of XDAO TON's core contracts (Factory, DAO master, etc.) are being finalized at the time of writing and will be published separately, similar to the EVM version's addresses in Smart contracts (EVM). The structure of DAO components is described below, not specific addresses — do not rely on unconfirmed addresses from third-party sources.

What a DAO consists of

DAO master

The DAO's main contract. It also acts as the jetton master for the DAO's GP token — that is, it manages GP issuance (minting) and burning, holds the current general consensus threshold, and executes proposals on-chain once they've gathered the required share of votes.

Plugins and Sub-Wallets

The DAO keeps a list of installed plugins — each one is installed by a separate proposal (see Plugins and modules):

  • LP Manager (Crowdfunding Module) — one or more per DAO; each issues its own LP token (jetton) and runs crowdfunding campaigns.
  • Mass Payout Plugin — distributes funds among LP token holders (distribution rounds and push rounds).
  • Sub-Wallet — a separate DAO wallet for segregating funds by purpose.

Crowdfunding campaign contracts

When an LP Manager launches a campaign, a separate set of contracts is deployed for that campaign:

  • Crowdfunding master — the contract for a specific campaign: its parameters (soft cap, hard cap, timing, whitelist), state (active / successful / failed / emergency withdrawn), and aggregated contributor data.
  • Helper — a personal contract for each campaign participant, through which the contribution, LP claim, and refund all flow.
  • VestingVault — the vesting contract for a specific participant's LP tokens, if vesting is enabled for the campaign (TGE unlock, cliff period, linear unlock).

How the components connect

DAO master holds the list of plugins → LP Manager holds the address of its LP jetton master and the list of campaigns → each campaign has its own Crowdfunding master → each campaign participant has their own Helper (and, with vesting, their own VestingVault). The technical models for these objects (Dao, Plugin, CrowdfundingCampaign, ParticipantVesting, etc.) are documented in API → Models.

On this page