> ## Documentation Index
> Fetch the complete documentation index at: https://docs.monolith.market/llms.txt
> Use this file to discover all available pages before exploring further.

# Deployer FAQ

> Frequently asked questions for instance deployers

# Deployer FAQ

<AccordionGroup>
  <Accordion title="What is `timeUntilImmutability`?">
    It sets the immutability deadline offset from deployment. Before the deadline, you can tune half‑life, target free‑debt band, redeem fee and interest fee. After the deadline, these lock permanently. Setting it to 0 enables immediate immutability.
  </Accordion>

  <Accordion title="Which parameters are mandatory vs optional in deployment?">
    `Factory.deploy(DeployParams)` requires the full struct. Always set: `name`, `symbol`, `collateral`, `feed`, `collateralFactor`, `minDebt`, `timeUntilImmutability`, `halfLife` (12 hours to 30 days), `targetFreeDebtRatioStartBps` (at least 500 and at most end), `targetFreeDebtRatioEndBps` (at most 9500), `redeemFeeBps` (at most 500), `stalenessThreshold`, and `maxBorrowDeltaBps` (50 to 200). Optional references: `psmAsset`, `psmVault`, `operator`, `manager` (use `address(0)` to omit). If `psmVault` is non-zero, `psmVaultMinTotalSupply` must be greater than 0 and the vault asset must match `psmAsset`. Matches the [Integration Guide](/developers/integration-guide) and on-chain `Factory.DeployParams` / `Lender` constructor checks.
  </Accordion>

  <Accordion title="When should I enable the PSM and when should I skip it?">
    PSM provides direct Coin↔asset convertibility and can harvest vault yield, but increases exposure to the reference asset. If you want a pure collateral‑anchored design, skip PSM; if you want immediate exit liquidity and cushion for the peg, enable it.
  </Accordion>

  <Accordion title="How should I pick `collateralFactor` and `minDebt`?">
    Choose factors in bps based on collateral volatility and liquidity. Higher factor increases borrow power but tightens liquidation buffers. `minDebt` should avoid dust accounts while not blocking legitimate use.
  </Accordion>

  <Accordion title="Who controls fees and where do they accrue?">
    The Factory operator sets a global fee (bps) capped at 10% and per-instance overrides. Global reserves accrue at the Lender and are pulled by the Factory's `feeRecipient` via `pullGlobalReserves`. Local reserves accrue on the instance; anyone may call `pullLocalReserves()`, which mints the accrued amount to the instance `operator` (the call is permissionless; the recipient is always the operator).
  </Accordion>

  <Accordion title="Can I change operators or managers after deployment?">
    Yes. The Factory uses two‑step operator transfer (`setPendingOperator`/`acceptOperator`). Each Lender supports operator/manager rotation; some actions require operator or operator/manager and must happen before the immutability deadline.
  </Accordion>

  <Accordion title="What is the difference between the operator and the manager?">
    The operator has broader authority: can set/revoke pending operator, set local reserve fee bps, and perform all pre-deadline parameter updates that the manager can. Local reserve pulls are permissionless (`pullLocalReserves` mints to the operator, not to the caller). The manager is a secondary role that can adjust a subset of parameters (for example half-life, target free-debt ratio, redeem fee, max borrow delta) before immutability but cannot change roles or local reserve fee bps.
  </Accordion>

  <Accordion title="How do I launch a market with a DAO?">
    Use the DAO Factory `deploy(userSalt, govParams, monolithParams, manager)` path. It creates a new Monolith market on the **V2** Factory and attaches DAO governance in the same flow. It also sets the new market's local reserve fee to 5000 bps (50%), so half of borrower interest accrues as local reserves for the DAO Revenue Router (which defaults to sending 100% of that routed revenue to sGOV stakers). See [DAO](/protocol/dao) for components, GOV allocation, and default governance parameters. Addresses are on [Contract Addresses](/developers/contract-addresses).
  </Accordion>

  <Accordion title="How do I attach a DAO to an existing market?">
    First, as the current lender operator, call `lender.setPendingOperator(daoFactory)`. Then call the DAO Factory `deployForExistingCoin(userSalt, govParams, lender)`. The DAO Factory completes the operator handoff and deploys GOV, sGOV, Governor, Timelock, Revenue Router, staking rewards, and vesting wallets for that market. The existing local reserve fee is left unchanged. Details: [DAO](/protocol/dao).
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.