Skip to main content

Gardens

The Gardens module connects a Green Goods garden to Gardens, the conviction-voting platform for community governance. Through it, a garden's community can participate in signal pools: expressing sustained preference over where support should flow, rather than one-off votes.

How it flows​

When a garden is minted, the module tries to create its Gardens community and the signal pools where members signal support over time. That setup is best-effort, so a garden can exist with neither, or with a community and no pools:

  • Community creation can fail and leave the garden without one, and pool creation can fail on its own. The module emits GardenPartiallyInitialized in both cases.
  • A module call that reverts outright is caught by the mint, so the garden still mints.

Read the result before relying on it: getGardenCommunity returns the zero address and getGardenSignalPools an empty list for a garden that has none. A steward of the garden or the protocol owner can create missing pools with createGardenPools; retrying the community (retryCreateCommunity) is the protocol owner's.

Where it lives in the code​

LayerSource
Modulepackages/contracts/src/modules/Gardens.sol
Mint-time callpackages/contracts/src/tokens/Garden.sol, through notifyGardens in packages/contracts/src/lib/GardenHooks.sol, which skips a missing module and catches a failed call
Data accesspackages/shared/src/modules/data/gardens.ts
Conviction hookspackages/shared/src/hooks/conviction

Checked-in deployment projection​

NetworkStatusRecorded components
Sepolia Testnet (11155111)DeployedgardensModule
Arbitrum One (42161)DeployedgardensModule

Networks without recorded components are omitted; per-network state lives in the deployment status projection.

A deployment artifact does not by itself prove product activation, live indexing, or partner-service health. This projection regenerates from checked-in artifacts via node scripts/docs/generate.mjs.

Working with it locally​

The fork mode (bun run dev -- fork) runs a local fork of Arbitrum One, so recorded module state is available locally; live signal-pool behavior on the Gardens platform itself needs the real chain.

Canonical upstream docs​

Next steps​

  • Hats Protocol covers the roles a garden's community members wear.
  • Octant covers the other side of a garden's funding: its vault.
  • Architecture shows where the per-chain modules fit in the system.