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

# Protocol-owned supply

> Dollars the protocol put in the pool, locked for a year.

The pool opens with the protocol's own dollars already in it, so borrowing works on day one.

`ProtocolSupply` holds those dollars as sUSDG and tracks the principal. Principal is locked, then leaves only through the Timelock, after notice, in small tranches.

<Frame caption="ETH from the STK auction becomes USDG in the pool. Interest above principal goes to auction buyers for a fixed term.">
  ```mermaid theme={"system"}
  flowchart LR
    cca[STK auction] -->|ETH| treasury[Treasury wallet]
    treasury -->|swap to USDG, in tranches| pos[ProtocolSupply]
    pos -->|deposit| pool[USDGPool]
    pool -->|interest above principal| pos
    pos -->|harvest, during the term| ay[AuctionYield]
    pos -->|harvest, after the term| treasury
    pos -.->|principal, after lock + notice, capped| tl[Timelock]
  ```
</Frame>

<Info>
  Most lending markets start empty and pay emissions to attract the first deposits. Stockline seeds the pool with auction proceeds instead, and locks them, so borrowers do not depend on a supplier showing up.
</Info>

<Note>
  The design set has no protocol-owned supply diagram yet. This section will be completed when the diagram ships. The flowchart above is a stand-in drawn from `ProtocolSupply.sol`.
</Note>

## What it is

After the STK auction settles, the treasury wallet swaps its share of the ETH to USDG in published tranches and calls `ProtocolSupply.deposit`. The contract deposits into `USDGPool` and receives sUSDG like any supplier. Unlike other suppliers, it remembers how much principal went in. Everything the position is worth above that principal is yield.

Only two addresses can deposit: the treasury wallet and the Timelock. Both are set at construction. Nobody else can add principal, and nobody can add principal on the treasury's behalf.

## The lock

Principal cannot leave before `lockUntil`. The date is immutable. The Guardian cannot shorten it. The Timelock cannot shorten it. A pause does not extend it, but a pause does block `withdraw` and `harvest` while it lasts, the same as for any other depositor.

| Rule                               | Value               | Meaning                                                              |
| ---------------------------------- | ------------------- | -------------------------------------------------------------------- |
| Protocol-owned supply locked until | to be published     | No principal can leave the pool before this date.                    |
| Withdrawal notice                  | 7 days              | The Timelock queues a withdrawal, then waits this long.              |
| Max tranche per notice period      | 10% of the position | Cap on principal that can leave per period.                          |
| Yield term ends                    | to be published     | Harvests go to `AuctionYield` until this date, then to the treasury. |
| Team vesting starts                | to be published     | Nothing vests before start plus cliff.                               |
| Team cliff                         | 180 days            | First release after the cliff, linear from start.                    |
| Team vesting duration              | 730 days            | Full unlock at start plus duration.                                  |

## The withdrawal rules

After the lock, principal leaves in three steps, all by the Timelock:

1. `notice(amount)` records the intent and the time. The public Timelock delay applies before this call, and the notice period applies after it.
2. Wait `noticeDays`.
3. `withdraw()` moves the smallest of: the noticed amount, the unused tranche room for this period (`maxTranchePct` of the current position), the remaining principal, and the pool's idle cash.

The tranche room resets once per notice period. A withdrawal that would exceed it reverts with `CapExceeded`. A withdrawal never touches yield, and a pool with no idle cash cannot be drained.

## Where the yield goes

`harvest()` is permissionless. It redeems the value above principal, capped by pool cash. Until `yieldTermEnd` the USDG goes to [AuctionYield](/smart-contracts/auction-yield), where auction buyers who staked their won STK share it pro rata. After `yieldTermEnd` it goes to the treasury. A pause that spans `yieldTermEnd` sends the next harvest to the treasury.

Yield is interest, and interest needs borrowers. Before borrowing opens on a book, there is nothing to harvest. Rate today on [Earn](/using/earn) is the reading, not a forecast.

## Why it protects borrowers

A borrower needs three things from the pool: dollars to draw, dollars that stay, and a rate that does not spike because one supplier left. Protocol-owned supply gives all three.

| Risk to a borrower              | Without protocol-owned supply | With it                                 |
| ------------------------------- | ----------------------------- | --------------------------------------- |
| No liquidity at launch          | Wait for suppliers            | Pool is funded at settlement            |
| Large supplier exits            | Utilization jumps, rate jumps | Locked principal cannot exit for a year |
| Protocol drains its own deposit | Possible in one transaction   | Timelock, notice, and per-period cap    |

The lock also protects suppliers who arrive later. The protocol's dollars sit alongside theirs under the same share price and the same pause. The protocol earns no priority.

Related: [STK](/ecosystem/stk), [Uniswap](/ecosystem/uniswap), [Earn](/using/earn), [Interest rates](/concepts/interest-rates), [ProtocolSupply](/smart-contracts/protocol-supply), [Access controls](/resources/access-controls).
