Skip to main content

Glossary

Core Architecture (Diamond Pattern / EIP-2535)

TermDefinition
DiamondThe main upgradeable proxy contract (Garden) that routes function calls to facets based on selectors. Central to EIP-2535.
FacetA contract implementing specific functionality, registered with the Diamond and called via delegatecall.
Function Selector4-byte identifier (bytes4) derived from a function signature hash, used to route calls to the correct facet.
Facet CutA data structure containing a facet address, action (Add/Replace/Remove), and selectors to modify.
Facet Cut ActionEnum: Add (0), Replace (1), Remove (2) — determines how the Diamond is modified.
DiamondCutThe function that applies facet cuts to modify the Diamond's routing table.
DiamondLoupeQuery interface for inspecting a Diamond's current facets, selectors, and routing.
ModuleLogical grouping of related facets. Each facet belongs to exactly one module.
Base ModuleImmutable module (keccak256("BASE")) containing the 4 core facets — always included in every Garden.
DelegatecallLow-level EVM call that executes external code in the calling contract's storage context.

Garden & Factory

TermDefinition
GardenThe Diamond contract (user's vault) that holds tokens and implements strategies through facets.
Index GardenThe Garden that the user connects to the index which gets rebalanced automatically.
Yield GardenThe Garden that the users manages by themselves and uses different strategies to grow it.
GardenFactoryFactory contract deploying new Gardens via CREATE2 deterministic deployment.
Garden IndexNumeric value (1-10) uniquely identifying one of a user's Gardens for deterministic address calculation.
Garden TypeCategorization of a Garden that determines which optional modules it can use.
Garden OwnerThe address that created/owns a Garden and controls its operations.
Facet RegistryCentral registry managing all facets, modules, garden types, and their versions.

Index & Rebalancing

TermDefinition
IndexA contract managing a diversified portfolio of asset components with calculated weights.
Index ComponentAn ERC20 token included in an Index's composition, paired with a Chainlink price feed.
Index Calculation StrategyPluggable contract that computes asset weights (e.g., MarketCapWeighted).
RebalanceProcess of adjusting Garden holdings to match target Index allocations.
Rebalance IntentA pending rebalance containing current values, target values, and weights for all components.
Rebalance IntervalMinimum time (1 hour) between consecutive rebalances.
Swap CallIndividual swap instruction from CRE containing selector, encoded data, output token, and minimum output.
Component WeightsNormalized allocation percentages for Index components (scaled to 1e18).
Market Cap WeightedStrategy that weights components proportionally to their market cap.

Protocol Governance & Status

TermDefinition
Protocol StatusEnum: ACTIVE, UPGRADES_DISABLED, or INACTIVE — controls protocol-level behavior.
Security Council Member (SCM)DAO members tracked via ENS who can authorize protocol state changes.
ENS NamehashHash identifier of an ENS domain used to track SCM membership.

DEX & Liquidity

TermDefinition
Liquidity PoolAMM pool registered in the LiquidityPoolRegistry for token swapping.
DEX IDbytes32 identifier for a DEX platform (e.g., keccak256("UNISWAP_V3")).
Pair IDCanonical identifier (keccak256 of ordered token addresses) for a token pair across all DEXes.
Fee TierFee percentage for concentrated liquidity pools (uint24: 500, 3000, 10000 basis points).
Exact Input SwapSwap with a fixed input amount and variable output.
Exact Output SwapSwap with a fixed output amount and variable input.
Slippage ProtectionMin output (amountOutMin) or max input (amountInMax) to prevent unfavorable swaps.
Swap PathSequence of token hops for multi-pool swaps (e.g., WETH -> USDC -> DAI).
TWAP (Time-Weighted Average Price)Oracle price from historical observations, resistant to flash loan manipulation.
Sqrt Price X96Uniswap V3's internal price representation in Q64.96 fixed-point format.

Cross-Chain (CCTP)

TermDefinition
CCTPCircle Cross-Chain Transfer Protocol for bridging USDC across chains.
Destination DomainCircle domain ID for a blockchain (1 = Ethereum, 42161 = Arbitrum, etc.).
TokenMessengerV2Circle contract for initiating cross-chain USDC burns.
MessageTransmitterV2Circle contract for receiving/verifying cross-chain messages.

NFT & Membership

TermDefinition
Reward CollectionERC721 NFT collection minted by Gardens to track their own contributions.
SBT (Soulbound Token)Non-transferable NFT (ERC-5484) representing membership.
SBT RegistryRegistry managing SBT collections and minting permissions.

Storage & Internals

TermDefinition
Storage Layout (EIP-7201)Namespaced storage using LibStorageSlot to prevent slot collisions across facets.
LibDiamondCore library storing Diamond metadata (facetRegistry, protocolStatus, gardenType, etc.).
Price Feed / HeartbeatChainlink AggregatorV3 oracle; heartbeat is max staleness interval before data is considered stale.
Self-callA Garden calling its own Diamond proxy (msg.sender == address(this)) for internal facet composability.