papermill
Buy MILL Deposit
NAV / PULP —NAV / MILL —7D TWAP —PREMIUM —EPOCH #—NEXT PRINT RUN —SELL TAX NOW —LOCKED MILL —static page · connect a feed NAV / PULP —NAV / MILL —7D TWAP —PREMIUM —EPOCH #—NEXT PRINT RUN —SELL TAX NOW —LOCKED MILL —static page · connect a feed
BUY MILL →

papermill

A paper mill for PAPER yield on HyperEVM. MILL is the token you buy. PULP is the vault share you get for USDC, redeemable at NAV.

MILL CA 0x0e0d6075679657Cc0B08679f582f6615343c85Bd
MILL price
…
Pool liquidity
…
24h buys / sells
…
Vault USDC
…
MILL above NAV
…
  1. Buy MILL. 1% tax in, 2 to 5% tax out. Tax goes to the vault when MILL is above NAV, to burn when below.
  2. Or deposit USDC. You get PULP. Redeem at net asset value through a queue, settled at the next weekly report.
  3. Weekly print run. Above 1.5x NAV the mill prints and sells MILL, half the proceeds back the vault. Below NAV it buys back and burns.
The mill · wet end to dry end
Regime
changes only which real branch is shown; no market values are invented
The Papermill production line A paper machine read left to right: stock chest, beater, headbox, press, scanner, dryer section, reel, with a drive flywheel, a chimney, a return header carrying USDC back to the stock chest, and a mill office. Each part is a contract surface. Chimney Mill.burn · supply down PAPER staking · external yield source (Papertrade, outside the mill) cap cap cap keeper-run accounts · per-account caps Mill office owner · 48h timelock (spec) limits only tighten 10% fee → team deposit USDC · min 10 fundAccount ↑ returnCash ↓ receiveYield ↓ buyback: redeem at NAV → buy MILL → burn MILL sold into the pool sold above NAV → vault burned below NAV RETURN HEADER · USDC back to stock · the flywheel closes here issuance: half → vault tax sold above NAV → vault MILL / USDC pool · POL LP → 30-day timelock (spec) LP → 30-day lock Stock chest Pulp · PULP nav — hardNav — hold 24h · vest 7d PAPER ≤ 1× cash queue · FIFO settles at report NAV 30d window · 14d ramp Beater Pulp keeper surface Drive runEpoch · 7d retry 1h 0.7×1.0×1.5× Headbox regime rule · controller navPerToken — TWAP/nav Press issuance · runs only ≥ 1.5× NAV tranche ≤ 2% supply · ≤ 2% pool Scanner TwapOracle 7d TWAP · ±3% Dryer section buy 1% · sell 2% → 5% at −10% vs TWAP Mill tax hook · _processTax 1w · 1×lock52w · 4× Reel MILL in the market · VeLocker
idleSelect a part of the mill, take the tour, or run the print run. Order inside runEpoch: allocate, then tax, then issue. The issuance tranche moves spot the most, so it runs last.
liquid stock = PULP (vault) sheet = MILL (token) return header = USDC back to the vault burn dotted = external yield source
Select a part of the mill
The print run

One epoch, every seven days.

Once a week, at the same block height, the keeper delivers the claimed yield and posts the report. Then anyone at all can start the press. Nothing inside the run reverts: a swap that falls outside the price band is deferred and retried an hour later, a deposit the vault would reject is buffered, and a carried buyback is dropped rather than executed above NAV.

The line reads headbox, press, dryer. The code runs allocate, tax, issue. The issuance tranche moves spot the most, so it goes last.

0.7×1.0×1.5×1.8× buyback 100% → 0%compoundissue a tranche dashed: damped ×0.4 while mint rate is rich x = 7-day TWAP ÷ NAV per token
defaults from DESIGN s10; floors and ceilings in code · fullDiscount 30% · richDamping 60%
  1. Keeper delivers yield and posts the report

    The team fee comes off at the door. The rest vests into NAV over seven days. The report is bounded, then settles the redemption queue at this NAV.

    receiveYield · report
    beater · stock chest
  2. Anyone runs the press

    Allocate yield: buy back and burn below NAV, compound otherwise. Process tax: sold into vault shares above NAV, burned below, inside one per-epoch pool budget. Issue above 1.5×: one tranche per epoch, half to vault shares, half to protocol-owned liquidity. Flush any buffered deposit.

    TreasuryController.runEpoch
    drive · headbox · dryer · press · return header
  3. Anyone pays the queue

    Settled redemptions are paid first in, first out, partially if cash is short. A payee the token refuses is converted to a claim so no one behind them is frozen.

    processPayouts · claimPayout
    stock chest
  4. Locker distribution

    Off in v1. The distributor is set by governance.

    VeLocker.distribute
    reel
  5. Snapshot

    The mill floor is archived on-chain by hash and on IPFS. Not a contract call.

    off-chain
Two layers

The token holds vault shares and nothing else.

LayerInstrumentRedeemableRole
1Pulp share, PULPyes, at NAV, through a queuethe floor
2Mill, MILLnothe fuel

Its premium over NAV is the only thing allowed to be reflexive. Premium is simply MILL's seven-day average price divided by NAV per token: at 1.0 the market pays exactly what the backing is worth, at 1.5 it pays a dollar and a half for every dollar of backing, and because MILL cannot be redeemed that gap can exist. The mill harvests it: above 1.5× it sells new MILL and puts the proceeds behind every token; below 1.0× it spends yield to buy MILL back and burn it.

Stock · USDC and PULP

  1. deposit at the vesting-smoothed NAV, to yourself only
  2. fundAccount to capped keeper accounts, never reserved cash
  3. receiveYield back, fee off the top, vests 7 days
  4. requestRedeem → settled at the next report → processPayouts FIFO

Sheet · MILL

  1. mint only by the controller, inside a per-epoch cap
  2. tax on pool trades to the controller, as the increment of the batch
  3. sold above NAV into vault shares, burned below
  4. lock 1 to 52 weeks for 1× to 4× weight; kick an expired lock back to 1×

Steam · yield

  1. keeper-only intake, one window ≤ 20% of principal
  2. 7-day linear vest into NAV
  3. valued on closed daily samples over a 30-day window, divided by capRate 4.0
  4. never worth more than 1× the cash held
Limits are one-way

The nameplate.

Defaults are starting points from the design, set at deploy. Floors and ceilings are in the code and the owner, behind a 48-hour timelock, can only move toward them.

ParameterDefaultIn codeOwner may
capRate, PAPER valuation4.0floor 0.5 · MIN_CAP_RATE_BPSraise toward conservative
PAPER leg cap vs cash held1.0×0.1× to 3× · MIN/MAX_PAPER_CAP_BPSset within band
Yield intake per window20% of principalfloor 1% · MIN_YIELD_CAP_BPSlower only
Yield vest into NAV7 daysYIELD_VESTfixed
Valuation window · warm-up30 d · 14 d rampWINDOW_SPAN · 7 to 30 dwarm-up within range
Holding period24 hMIN_HOLDfixed
Report bound≤ 120%of max(net funded, recognised equity) · REPORT_UPSIDE_BPSfixed
Team fee10% of gross yieldceiling 15% · MAX_TEAM_FEE_BPSlower only
Issuance threshold1.5× NAVfloor 1.2× · MIN_ISSUANCE_THRESHOLD_BPSraise only
Issuance per epoch2% supply · 2% poolceilings 3% · 5%, floors 0.1% · per-epoch across retrieslower only
Buyback per epoch2% of pool USDCceiling 5%, floor 0.1%lower only
Swap gate vs TWAP±3%ceiling 10%, floor 0.5%lower only
POL share of issuance50%20% to 80%set within band
Buy tax · sell tax1% · 2% → 5%ceiling 5% · MAX_TAX_BPSlower only · trigger raise only
Lock weight1× to 4× over 52 weeksboostBps · expired locks kick to 1×fixed
Epoch7 days7 to 90 dayslengthen within range
Oracle, stale modeanyone after 6 hstep clamped ±5% · first observation updater-onlyfixed
Governance delay · POL LP lock48 h · 30 daysspec, DESIGN s2—
List view

Every part, as text.