Position Manager
The Position Manager is the contract that represents a leveraged position. It aggregates one or more borrow positions across lending venues into a single ERC20 share token. Holding shares in a Position Manager means holding proportional ownership of the net equity of all underlying positions.
What the Position Manager Represents
Section titled “What the Position Manager Represents”A Position Manager is configured around two assets:
- A collateral asset — the wrapped fund share used as collateral (e.g., wUSCC)
- A debt asset — the liquid asset borrowed against the collateral (e.g., USDC)
Under the hood, the Position Manager manages multiple borrow positions on lending protocols. Each borrow position holds some amount of collateral and some amount of debt. The Position Manager tracks all of them and presents a unified view.
Net equity is the fundamental metric:
Net equity = total collateral value (priced in debt asset terms) minus total debt
This net equity is what the ERC20 shares represent. If the Position Manager holds 1,500,000 USDC worth of wUSCC collateral and owes 1,000,000 USDC in debt, the net equity is 500,000 USDC. Share holders own a pro-rata slice of that equity.
Depositing
Section titled “Depositing”The deposit function accepts a collateral amount to deposit and a debt amount to take on. The Position Manager then:
- Receives the collateral tokens from the caller
- Distributes the collateral across borrow positions according to the supply queue — an ordered list of positions with maximum borrow limits per position
- For each position in the queue, supplies collateral and borrows up to the configured limit (or whatever liquidity is available, whichever is lower)
- Sends the total borrowed debt back to the caller
- Mints or burns shares to reflect the change in net equity
Because collateral and debt are independent parameters, the deposit function is flexible. If the collateral amount is zero but debt is non-zero, the operation increases debt without adding collateral — net equity decreases, and shares are burned rather than minted.
The supply queue gives the curator control over how leverage is distributed across venues. For example, if there are two Morpho Blue markets with different parameters, the queue determines which one gets filled first and how much each one can borrow.
Withdrawing
Section titled “Withdrawing”Withdrawing is the reverse. The caller provides debt to repay and specifies how much collateral to take out. The Position Manager then:
- Receives debt from the caller
- Repays loans across borrow positions according to the withdrawal queue — an ordered list of positions for unwinding
- Withdraws the freed collateral (respecting each position’s health constraints)
- Sends the collateral back to the caller
- Mints or burns shares to reflect the change in net equity
Like the deposit function, collateral and debt are independent — repaying debt without withdrawing collateral increases net equity and mints shares. The withdrawal queue may have a different ordering than the supply queue, allowing the curator to control which positions are unwound first. Withdrawals can be processed either sequentially through the queue or proportionally across all positions.
The burn operation allows a share holder to exit by specifying a number of shares to burn. The Position Manager determines the corresponding collateral and debt amounts, then processes the withdrawal either sequentially or proportionally through the withdrawal queue — just like the withdraw function.
Once the collateral and debt amounts are computed from the shares being burned, the withdrawal process is the same as the withdraw function described above. A proportional burn across all positions preserves the overall LTV, but a sequential burn through the withdrawal queue may shift it.
In the context of Grunt, the Facility uses burn during intent resolution to convert Position Manager shares into the underlying collateral and debt, which are then distributed to LP token holders.
Rebalancing Across Venues
Section titled “Rebalancing Across Venues”Over time, the distribution of collateral and debt across borrow positions may drift from the ideal configuration. Interest rates may change, liquidity may shift, or new venues may become available.
The rebalance operation allows a designated rebalancer role to redistribute collateral and debt across positions without affecting share holders. A rebalance specifies a series of operations — repay here, withdraw there, supply here, borrow there — that move capital between positions.
Retargeting
Section titled “Retargeting”Rebalancing also includes a retarget subfunction that adjusts the overall leverage to bring it back to the target LTV:
- Leverage too low — the rebalancer deposits collateral and takes on an equivalent amount of debt, increasing the LTV back toward the target
- Leverage too high — the rebalancer repays some debt in exchange for an equivalent value of collateral, decreasing the LTV back toward the target
Safety Checks
Section titled “Safety Checks”Rebalancing has two safety checks:
- Maximum loss — the total net equity after rebalancing must not decrease by more than a configured maximum loss threshold. This prevents a rebalancing operation from accidentally (or maliciously) destroying value.
- Loss cooldown — if a rebalance incurs a loss (even within the allowed threshold), a cooldown period is enforced before another rebalance can be executed. This prevents repeated small losses from compounding into a significant drain.
Target LTV
Section titled “Target LTV”The Position Manager has a target LTV (loan-to-value) that represents the leverage ratio advertised to users. Every deposit, withdrawal, and burn operation is checked against this target — the resulting LTV after the operation must not exceed it.
The target LTV can only be changed by the owner (a large multisig), and is intended to be modified only to resolve complex scenarios. Under normal operation, it remains fixed at the value set at deployment (e.g., 50% for a 2x leverage Position Manager).
The value stored on-chain is set slightly above the actual target LTV (e.g., 50.98% for a 2x tier), leaving operational headroom so that fee accrual and rounding do not cause routine operations to revert at exactly the advertised leverage.
Fee Mechanism
Section titled “Fee Mechanism”The Position Manager charges two types of fees, both collected by minting new shares to a fee recipient. Because fees are collected by minting shares, they dilute existing share holders — effectively transferring a portion of future equity to the fee recipient.
The fee model described below reflects the latest implementation, shipped in version 1.2.0 of the contracts, which is the version currently live on mainnet. The current fee rates for each asset are listed in the per-asset Fees tables on the Deployments page.
Throughout this section, consider a worked example: a 10x leveraged position backed by 1,000,000 of equity. At 10x leverage the Position Manager holds 10,000,000 of collateral and carries 9,000,000 of debt — the borrowed 90% of the collateral value. Assume the underlying collateral asset returns 10% over the period and the borrow cost is 5%.
Base Fee
Section titled “Base Fee”A time-based fee expressed in basis points per year. It is charged on the full value of the collateral, not on the net equity. It accrues continuously and is collected before every operation. It pays for maintaining the position at its target leverage.
In the contracts this value is named managementFee (set via setManagementFee, read from feeData()) — the generic name for a fee charged simply for holding the asset. A Position Manager is not an actively managed strategy: it keeps a position at a fixed target leverage, so the docs call this value the base fee. Both names refer to the same on-chain parameter.
In the example, the base fee is computed on the entire 10,000,000 of collateral — ten times the size of the position — not on the 1,000,000 of net equity. A 1% annual base fee would therefore accrue on 10,000,000, i.e. roughly 100,000 over a year, even though the position only represents 1,000,000 of net equity.
Performance Fee
Section titled “Performance Fee”A fee charged on the net performance of the levered exposure, expressed in basis points, and tracked against a high-water mark so it only applies to new gains. When performance exceeds the high-water mark the fee is charged on the gain; if performance is negative, no performance fee is charged until the previous high is surpassed again.
The performance it is charged on is the gain on the levered part of the collateral, minus the cost of the debt, and minus the base fee already taken — performance is always measured net of the base fee.
Continuing the example, the equity is 10% of the collateral (1,000,000 of 10,000,000), so the levered part of the collateral is the remaining 90% — 9,000,000:
- Gain on the levered collateral: 10% × 9,000,000 = 900,000
- Borrow cost on the debt: 5% × 9,000,000 = 450,000
- Net performance before the base fee: 900,000 − 450,000 = 450,000
- The base fee is then subtracted from this figure
The performance fee rate is applied to that net performance, and like the base fee it is collected by minting shares to the fee recipient.
Compliance Integration
Section titled “Compliance Integration”When a TransferGuard is attached to the Position Manager, every share transfer — including mints from deposits and burns from exits — is validated through the guard. This means:
- Share recipients must pass compliance checks (whitelist or not blocklisted, depending on mode)
- Shares cannot be transferred to non-compliant addresses
- The entire Position Manager can be paused, freezing all share transfers and blocking deposits, withdrawals, and rebalancing