CAHv0.1.0
DOCS

How CAH bonding works

PAUSED

Explain it to me like I'm 5

START HERE

You give the protocol some ETH and CAH together. In return, it gives you back more CAH than you put in — but you have to wait a year to receive it all.

STEP 1
You give
A sandwich made of half ETH and half CAH (a Uniswap LP position).
STEP 2
You get
A promise from the protocol: roughly 1.00× the value of your sandwich, paid in CAH.
STEP 3
You wait
Nothing for the first 30 days. Then a small slice unlocks every day for the next ~11 months. Click claim whenever you want what's unlocked.
THE CATCH

Once you bond, your sandwich is gone — the protocol keeps it forever. Don't bond money you'll need back. Think of it like buying a year-long CAH subscription at a discount.

WHY THIS IS A GOOD DEAL

You get more CAH than your sandwich is worth at today's price. If CAH price stays flat or goes up, you come out ahead. If you think CAH is going up — bonding amplifies that.

It also helps you on the way out. Your sandwich joins the protocol's permanent liquidity in the canonical pool — deeper liquidity means smaller price impact when anyone (you included) sells CAH later. Every bond makes the next exit cheaper.

Below: the same thing in adult words.

What is bonding?

PROTOCOL-OWNED LIQUIDITY

Bonding lets you trade your CAH/ETH liquidity position for a vested CAH grant at a multiplier. You hand the protocol your full-range LP NFT — permanently — and receive more CAH than your LP was worth, unlocked over a year.

The protocol keeps the liquidity. That deepens the canonical CAH pool, which protects bond pricing for everyone after you and lets the treasury earn swap fees from organic trading. Your reward comes from the multiplier — currently 1.00x on LP value, paid in CAH after a 30-day cliff.

How it works

  1. 1.
    You provide a full-range CAH/ETH position
    Either create a fresh full-range LP from the Bond page, or bond an LP NFT you already hold. The position must span the full price range of its pool — concentrated positions are not eligible.
  2. 2.
    The protocol values your LP at 2× its ETH side
    A balanced full-range position has equal value on both sides at the current price. ETH side × 2 = total LP value in ETH.
  3. 3.
    A multiplier is applied
    Vesting value = LP value × (1 + discountBps/10,000). At 1.00× that's a 0% bonus over walking out with your LP.
  4. 4.
    ETH-denominated value is converted to CAH
    Using the canonical CAH/ETH pool's spot price, floored at minBondPriceEth. The floor protects bonders if the canonical pool is briefly manipulated downward.
  5. 5.
    A vesting schedule is created in your name
    30-day cliff (no claims), then 335 days of linear unlock. Total schedule length: 365 days. You can claim accumulated CAH any time after the cliff ends.
  6. 6.
    The LP NFT lives on the protocol forever
    It cannot be reclaimed. The multisig can collect swap fees and route them to the treasury, or migrate the position in extreme cases — but it can't unilaterally rug your vesting schedule.

Current bond terms

● LIVE

Read directly from the contracts. Refreshes every 12 seconds.

Multiplier1.00x (discountBps = 0)
Vesting30d cliff → 335d linear
Min / max bond0 / 0 ETH
Claim fee0.0%
Canonical price0.00000 ETH per CAH
Bond-price floor0.000000 ETH per CAH
BondingPAUSED
NEW BOND

Create a position then bond

Pick how much ETH to deposit. The form swaps to CAH if needed, approves Permit2 + PositionManager, mints a full-range CAH/ETH LP, and bonds it — five wallet signatures total.

  • Targets the canonical 3.14% native-ETH pool
  • No fee tier or tick selector — full range only
  • You'll need ETH and CAH (or only ETH if "Swap for me" is on)
Go to Bond ›
EXISTING POSITION

Bond an LP NFT you already hold

The Bond page scans your wallet for any CAH/ETH V4 position. Eligible ones (full range, within size limits) show a quote and a one-click bond — two wallet signatures (approve NFT, then bond).

  • Canonical pool only (3.14% native-ETH/CAH)
  • Positions in WETH/CAH or other-fee pools are rejected
  • Concentrated positions are rejected — must be full range
Go to Bond ›

Vesting + claiming

Days 0–30
Cliff
Nothing claimable. Your schedule exists but every claim returns 0. Frontend shows a countdown.
Days 30–365
Linear unlock
totalAmount × elapsed / 335 unlocks per second. Claim any time, partially or in full. Each claim transfers net = gross − fee.
Day 365+
Fully vested
Schedule fully unlocked. Claim the remainder whenever — the schedule deactivates only after every wei is collected.

Claims show a gross / fee / net breakdown before signing. Currently the claim fee is 0.0%. Hard-capped at 10% by MAX_CLAIM_FEE_BPS.

What you should know before bonding

Bonding is one-way
The LP NFT belongs to the protocol forever. Your only return is the vesting schedule. There is no unbond path, even if you change your mind 5 minutes later.
Vesting is time-locked
You can't accelerate the cliff or the linear unlock curve. If you need liquidity sooner, sell what you've already claimed — don't expect to extract the rest.
The multisig has escape hatches
The protocol owner (a Gnosis Safe on mainnet) can withdraw bonded liquidity to the treasury or set a claim fee up to 10%. These exist for emergency response and treasury management. They cannot, however, take CAH that's already committed to your schedule.
Bond price uses the canonical pool
Your reward is denominated in CAH at the canonical pool's spot price (with a floor). If CAH price moves between your decision to bond and your tx confirmation, your token amount adjusts. The floor caps the downside.
Daily cap
The protocol limits how much CAH it will issue per UTC day. If today's cap is hit, your bond reverts and you'll need to retry tomorrow (or wait until midnight UTC).

FAQ

Why full range only?
Full-range positions have a balanced, predictable two-sided value — ETH side × 2 = total ETH value, regardless of price moves. Concentrated positions can have nearly all of one side and almost none of the other, which makes valuation either unfair to the bonder or exploitable. We accept the simpler invariant.
Can I bond a position from any pool?
No — only positions in the canonical 3.14% native-ETH/CAH pool are accepted. This is enforced at the contract level. If you hold a CAH/ETH LP in a different pool (e.g. WETH/CAH 0.30%), you'll need to remove that liquidity and create a new full-range position in the canonical pool first.
What's the canonical pool?
The native-ETH/CAH pool with 3.14% (π%) fee, 628 (2π × 100) tick spacing, no hook. It's the price oracle for bonds and the destination for the New bond tab. Other CAH/ETH pools exist; only this one is the bond-price denominator.
Why is the multiplier going to drop over time?
The multiplier rewards early bonders for taking the most price risk. As canonical-pool TVL grows from $60K to $4M, the multiplier tapers from 2.0× toward 1.10× — see the discount schedule in the project README. The multisig adjusts via setDiscount.
What if the canonical pool is empty or uninitialised?
bond() reverts. The price floor minBondPriceEth is also a backstop, but if the pool has no spot price at all, bonding pauses until it's restored.
What happens if I lose access to my wallet?
The vesting schedule is keyed to the address that bonded. If that address is gone, the CAH is unrecoverable. Treat the bonder address like any other long-term key.
Is there an audit?
See contracts/audit/ in the repo for security-auditor reference docs covering both BondingManager and VestingManager. A formal third-party audit is on the pre-mainnet checklist.

Glossary

Bond
Trade an LP NFT for a vested CAH grant. One-way.
Multiplier
The bonus you receive over LP face value. 2.0× means you receive 2× your LP's ETH-denominated value, paid in CAH.
Cliff
A period (30 days) at the start of vesting during which nothing is claimable.
Linear vesting
After the cliff, tokens unlock smoothly over the remaining period (335 days). Per-second granularity.
Canonical pool
The native-ETH/CAH 3.14% V4 pool that anchors bond pricing.
Bond-price floor
A minimum CAH-in-ETH price the contract uses for conversion, regardless of canonical pool spot. Defends against downward manipulation.
Daily cap
The maximum CAH the protocol will commit to vesting in a single UTC day. Resets at 00:00 UTC.
Discount BPS
The bonus expressed in basis points. discountBps = 10,000 means a 100% bonus, i.e. 2.0× multiplier.
Claim fee
A percentage skimmed from each claim and routed to the treasury. Capped at 10%.
Schedule
A vesting record. One per bond. Identified by (beneficiary address, scheduleId).