DRAFT YELLOW PAPER · MECHANICS BELOW DESCRIBE THE GENERAL APPROACH — FINAL ZENIETH MATH TBD
◆ yellow paper · v2· ~ 9 min read· last updated 2026-05-10

Patience pays. math doesn't.

ZENIETH is an Ethereum bonding curve token. Each new buyer pays more than the last — a quadratic price formula enforces scarcity. Holders accumulate Loyalty Points hourly that unlock discounts on future buys. Sellers burn theirs. This page walks through the math, from the curve to the loyalty mechanics.

01the problem

Uniswap is the largest source of automated market-maker liquidity on Ethereum. Across V2, V3, and the new V4 hook architecture, the protocol routinely holds billions of dollars in liquidity provider deposits.

value locked in Uniswap≈ $5–8Bacross V2/V3/V4 pools, per DeFiLlama (typical 2026 range)

That capital earns swap fees. But it is locked for everything else. A liquidity provider's $1M position cannot be minted against without first being withdrawn — and withdrawing kills the fee stream.

You can earn swap fees, OR use the tokens as reserve. Not both.

The same pattern repeats across DeFi: tokens locked into LP, into staking, into vaults are dead weight for any purpose other than their primary one. For a fair-launched community token, this means the deepest pool of capital — the LP itself — can never finance its own users.

02the idea

What if the AMM itself could lend? Every block, the V4 pool knows precisely how much ETH it holds and at what price. That is a perfect oracle and a perfect treasury, owned by the protocol — not a third party.

ZENIETH is a V4 hook that does exactly this. When a user wants to mint ZNTH, the hook reaches into one of the LP positions backing the ZNTH/ETH pool, pulls the requested ETH out, and hands it over. The LP shrinks slightly — but the spot price does not move, because we draw from a band that sits below the current spot.

band 0–N
ETH-only LP
(crossed bands)
↑ mint draws from here
active band
spot price
sits here
swaps cross through

The key insight: V4's concentrated liquidity is divided into discrete tick ranges. Each range can hold ETH-only, ZNTH-only, or a mix, depending on where the current spot is. We treat each range as a separate "band" of capital and lend from bands that have ETH to spare.

03the math

3.1 the curve

Like a vanilla constant-product AMM, ZENIETH maintains:

realTokens × (V + realETH) = K

where V = 20 ETH is a fixed virtual reserve so the curve is well-defined even with zero real ETH, and K = 20,000,000 is the product constant set at deployment to fix the launch supply at 1,000,000 ZNTH.

Spot price is (V + realETH) / realTokens ETH per ZNTH. As ETH flows in, realTokens drops and price rises. Standard stuff.

3.2 30-ETH bands

The pool is sliced into 100 discrete bands, each covering 30 ETH of cumulative inflow. Band i holds the ZNTH that the constant-product curve would have sold across the ETH range [30i, 30(i+1)):

ZNTH_i = K / (V + 30i) − K / (V + 30(i+1))

Mapped to V4 ticks, this gives 100 single-sided ZNTH positions at deploy, covering pool-ETH inflow up to 3,000 ETH. As buyers push ETH into the pool, bands cross one by one — each band's ZNTH is converted to ETH at exactly the prices it was priced at.

band ETH range ZNTH allocation % of supply
0 0–30 600,000 60.00 %
1 30–60 150,000 15.00 %
2 60–90 68,181 6.82 %
3 90–120 38,961 3.90 %
tail bands shrink rapidly
29 870–900 732 0.07 %
long tail to 3,000 ETH
99 2970–3000 67 0.007 %

The 100-band design covers a price range of ~7,000× from launch to band 99 saturation — well beyond any realistic short/medium-term protocol life.

3.3 minting — bound band selection

When a user locks C ZNTH as reserve, we lend ETH at a 40 % loan-to-value:

debt = collateralValue × 0.40

Liquidation triggers when reserve value falls to 1.5 × debt — i.e. spot price drops to 60 % of the mint price. Solving for that price level on the curve gives the predicted sell pool ETH:

ethLiq = √0.6 × (V + ethBorrow) − V

The "bound band" is then floor(ethLiq / 30). The hook draws the mint's ETH from this specific band's LP. Since the band sits below current spot, removing ETH from it does not move the price — borrows are slippage-free.

3.4 dead zones & the shift

Sometimes the predicted bound band is the same band the spot price currently sits in (a "straddle"). V4's concentrated liquidity requires single-sided positions for ETH-only extraction, so a straddling band cannot supply pure ETH.

The hook resolves this with two mechanisms:

Bound-band shift. If the predicted band fully straddles or sits below current spot, the hook steps to the next band above spot (lower bandId, higher V4 ticks) which is guaranteed ETH-only.
Straddle-mint. If no band sits fully above spot (cold-start case where currentTick is inside band 0), the hook removes liquidity from the straddling band's position directly. V4 returns both ETH (used for the loan) and a small amount of ZNTH (kept by the hook as protocol surplus).

Together these guarantee every mint can be served regardless of where the spot price is — no warmup period, no dead zones.

3.5 self-healing sell

When a position becomes underwater (reserve value < 1.5 × debt), anyone can call sell() for a small bounty. The hook:

Sells the reserve via a normal V4 swap, receiving ETH proceeds.
Pays the liquidator a bounty of min(1 % × debt, 0.01 ETH) — the hard cap prevents disproportionate payouts on large positions.
Refills the remainder back into the bound band as fresh ETH-only LP — the band we originally lent from becomes deeper than before. No ZNTH burn.
The pool gets stronger every time a position liquidates. That's self-healing.

If the spot has moved so far during the sell swap that the original band is no longer above spot, the refill falls back to the closest other band that is above. If even that fails, the surplus goes to the FeeCollector as protocol revenue. ETH never sits unaccounted in the hook.

04a complete cycle

Concretely, here is what happens when a user borrows then later gets liquidated:

1
mintAlice locks 30,000 ZNTH. Pool ETH is 80, spot is ~0.0011 ETH/ZNTH. Collateral value: 33 ETH. Debt issued: 13.2 ETH (40 % PRICE). Origination fee: 0.13 ETH → FeeCollector. Net to Alice: 13.07 ETH.
2
bound bandPredicted ethLiq = √0.6 × 100 − 20 = 57.5. Bound band = floor(57.5 / 30) = 1. The hook removes ETH-only LP equivalent to 13.2 ETH from band 1's V4 position. Spot price does not move.
3
price dropsOther users sell ZNTH. Pool ETH falls 80 → 55. New spot ~0.00064 ETH/ZNTH. Alice's reserve now worth 19.2 ETH. Coverage = 19.2 / 13.2 = 1.45× — UNDERWATER (need ≥ 1.5×).
4
sellBot calls sell(alice, 1). Hook sells Alice's 30,000 ZNTH via V4 swap, receiving ~17 ETH. Pays bot 0.01 ETH bounty (capped). Refill: 16.99 ETH → back into band 1 as ETH-only LP.
5
outcomeAlice's debt is cleared. Alice loses her 30k ZNTH reserve. Bot earns 0.01 ETH. Band 1 holds MORE ETH-side LP than before Alice's mint. Protocol depth strengthens.

05honest limits

Things to know:

Each band caps at 30 ETH mint. A single position cannot mint more than that from one band. Larger loans split across bands.
Same-block lockoutblocks mint / sell in the same block as a swap, defeating one-block oracle manipulation. Multi-block manipulation is bounded by the LDF cap structure but not impossible — pump-and-mint simulations show negative attacker P&L (origination fee + slippage cost the attacker more than they extract). A TWAP oracle would harden this further.
No cascade sell. Because borrows draw from a band below spot and don't move spot, no one position's sell can drag others underwater.
Fixed parameters, no governance. PRICE (40 %), liq threshold (150 %), bounty (1 % capped at 0.01 ETH), LDF band count (30) are all set at deploy. No proxy, no upgrade.

06revenue → holders

The protocol earns revenue from one source today and a second source soon: the 1 % origination fee charged on every mint, plus the V4 swap-fee skim on every buy / sell. Both streams flow into the FeeCollector contract — a separate, upgrade-free account whose only job is to hold the proceeds.

The policy commitment is simple: those fees are returned to ZNTH holders. ZENIETH has no team allocation, no insider vest, no protocol-owned treasury for ops. Every wei a minter pays in origination is earmarked for distribution back to people holding the token.

Borrow origination fee. When Alice borrows 13.2 ETH at 40 % PRICE, 1 % of the debt — 0.13 ETH — is sent to the FeeCollector at the same block. There is no fee on repay; the full debt is paid back to the band.
Where it ends up. The FeeCollector accumulates ETH (and a small amount of ZNTH from edge-case refills). Periodic distribution snapshots ZNTH holders pro-rata to their balance and sends each holder their share — so holding the token is what entitles you to the revenue, not staking or locking.
Distribution mechanism is open. The destination (ZNTH holders) is fixed by policy. The plumbing (snapshot airdrop, holder-only buyback that increases per-token reserves, merkle-claim distributor) is open for community input and will be locked in before the first distribution.
Why this works.The hook is non-upgradeable; no one can re-route fees to a different address. The FeeCollector’s withdrawal key is the only operational lever, and its use is bounded by the public revenue-share policy. As bonding volume grows, every active minter is effectively paying yield to every passive holder.

07parameters

parameter value rationale
ZNTH supply 1,000,000 fixed at deploy, no mint/burn
Virtual ETH (V) 20 ETH phantom reserve to seed the curve
LDF bands 30 × 30 ETH covers 0–900 ETH cumulative inflow
PRICE 40 % debt = 0.40 × collateralValue
Origination fee 1 % of debt → FeeCollector → ZNTH holders
Liq threshold 150 % underwater when collateralValue < 1.5 × debt
Liq bounty 1 % × debt, max 0.01 ETH per-call cap, prevents whale subsidies
Repay cooldown 2 blocks post-mint lockout
Min reserve 0.1 ETH value floor to prevent dust

08references

Uniswap V4 core — concentrated-liquidity AMM with hook callbacks.
DeFiLlama · Uniswap — live TVL across V2 / V3 / V4.
Uniswap V4 whitepaper — hook architecture and singleton design.
ZENIETH dashboard — live curve, depth chart, execute panel.
next

Open the dashboard to see live curve depth, place trades, and manage open positions.

dashboard