Skip to main content

Deployer FAQ

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.
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 and on-chain Factory.DeployParams / Lender constructor checks.
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.
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.
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).
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.
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.
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 for components, GOV allocation, and default governance parameters. Addresses are on Contract Addresses.
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.