Skip to content
Solana

Docs · Pools

Owned roots

Open pools under a namespace of your own: the blocks it allows, who may open pools in it, and the integrator it pays.

Roots on reel

Every pool opens under a root: a Root account (["root", id]) that pools take as part of their address, ["pool", root, base, quote, index]. Root 0 is reel's shared root: the admin owns it, it is public, it allows every block and allows recapture.

An owned root is one you open with RootCreate. It runs on the same reel program: nothing new is deployed, and there is no code of yours to audit. What you get is a namespace with your own rules and your own integrator.

What a root fixes

  • Allowed blocks. A bitmask fixed at RootCreate. If you name a saved hook, the mask must be a subset of that hook's. Pools under the root can't run anything outside it.
  • Public or owner-only. A public root lets anyone open pools in it, and must allow at least Anti-Snipe, Dynamic fees, LP Rewards and Creator royalty. An owner-only root takes pools from its owner alone.
  • Recapture. A flag for whether its pools may run arbitrage recapture.
  • The root fee. Paid once to the treasury when the root is created: at most 1 SOL, set by the admin.

What the owner can do later

  • Pause new pools. Pools already open keep trading; a paused root only refuses new ones (RootClosed).
  • Switch between public and owner-only.
  • Set the integrator: a wallet the admin has listed as an Integrator, active, with its rate. Pools opened afterwards copy it, and keep that rate for life.
  • Hand the root over in two steps: RootTransfer names the new owner, RootAccept completes it.

The owner can't change a pool that is already open, and can't touch its funds.

When to use one

  • A launchpad that wants its own house rules and an integrator share on every pool its users open: see Integrating as a launcher.
  • A community that wants every pool of its token family under one name, bounded by a saved hook.
  • A team that wants owner-only pools for its own markets.

If you only want to share a set of blocks, a saved hook is enough; a root adds who may open pools and who is paid.