Risks

These are the disclosures every creator and trader needs to read before signing. The on-page modal at /create shows the short version; this page is the long-form context. If something here is unclear, do not deploy and do not swap until you understand the trade-off.

1. Liquidity is permanently burned at graduation

When a token's curve reaches the 4.16 ETH graduation threshold, the curve's ETH and remaining tokens are atomically deployed as a Uniswap v4 LP position, and that position is permanently owned by the hook contract itself, with no removal path anywhere in its code — not sent to any address, just never removable.

The LP cannot be removed by anyone, ever. Not the creator. Not peg.fun. Not the holder community.

This is the trade-off:

  • In exchange for: permanent, no-rug-pull-ever liquidity that holders can rely on.
  • You give up: any recovery path if something goes catastrophically wrong post-graduation.

If a critical bug is found in the contracts after graduation, the burned LP is gone, peg.fun cannot recover it. The permanent-lock posture is intentional, but it has no escape hatch.

See LP burn.

2. The contract becomes immutable after graduation

Post-graduation:

  • The token contract's migration authority is locked.
  • The creator vault's rotation is locked.
  • The hook owns its LP forever.
  • There is no pause function, no upgrade path, no fee-rate change, and no way to touch a holder's balance or the locked liquidity.

peg.fun cannot pause, upgrade, recover funds, or touch liquidity or holder balances. The one exception is narrower than all of that: peg.fun can permanently redirect a graduated token's creator fee to its holders, once, on an approved community takeover. See risk 5, below, for the full accounting of what that power can and cannot do.

This is the deliberate "permissionless, eternal" trade-off. The token contract you deploy is the token contract that exists forever. If something needs to change, you can't change it (with the one narrow exception above). If the AI pipeline picks the wrong art, the wrong art is on-chain forever. If a small contract bug surfaces after graduation, no one can patch it.

This posture is what makes peg.fun a "permanent, rug-safe" protocol. It is also what makes it a "ship with extreme care" protocol.

3. Every buy is capped at 700 glyphs per transaction

This is a real narrowing of "any router works," and it's worth understanding before you route a large order.

Once a token has graduated, buying PEG through any router — peg.fun's own swap UI, 1inch, CowSwap, ParaSwap, Uniswap v3, Universal Router, or the official Uniswap widget — mints you glyphs. There's a limit on how many in one transaction: 700. Above that, the swap fails outright rather than silently shorting you of art you paid for.

Through peg.fun's own swap UI, you'll never meet this as a failure — an oversized order clamps to the cap automatically and refunds the rest. Through any other router, an order that would exceed it reverts, and nothing is taken except gas. The limit counts tokens, not dollars, so on a cheap token a modest purchase may need a couple of transactions.

See How buying works, whichever app you use for the full mechanics, including the exact formulas for sizing an order yourself.

4. The 0.001 ETH AI Easy Mode service fee is non-refundable

If you pay the 0.001 ETH AI Easy Mode session fee but Replicate and OpenAI fail end-to-end, the fee is forfeit, peg.fun does not run a refund queue, does not batch refunds through the treasury, and does not deploy a distributor contract.

This is the operational-simplicity trade-off:

  • In exchange for: the simplest possible founder operational footprint (no weekly refund batches, no SLA to honor, no refund-related code to audit).
  • You bear: the risk of AI provider outages.

If you see AI_PROVIDER_FAILED_NON_REFUNDABLE in the create flow, the fee has already been spent. Try again later, provider availability is usually restored within minutes, or use Pro mode (when it ships), which bypasses the AI service entirely.

5. peg.fun retains one narrow, one-way power after graduation

Stated plainly, not hedged: PLATFORM_SAFE — a peg.fun-controlled key — can permanently redirect a graduated token's creator-fee stream to that token's holders. This is the community takeover (CTO) mechanism, PegHook.redirectCreatorFees (contracts/src/PegHook.sol:1385-1404), gated by three on-chain checks: caller must be PLATFORM_SAFE, the token must be graduated, and the redirect must not have already fired.

What it can do: move a graduated token's ongoing creator-fee payments into the same pro-rata holder-fee accumulator every other holder already earns from, once, permanently, for that one token.

What it cannot do, each enforced by code rather than by policy:

  • It cannot touch any holder's tokens or balances.
  • It cannot touch the locked liquidity (risk 1, above) — liquidityLocked is untouched by this call.
  • It cannot mint. Minting is tied to bonding-curve buys and was never graduation-gated in the first place.
  • It cannot pay peg.fun. The swept balance routes into the holder accumulator; there is no address parameter in the call for anyone to redirect it elsewhere.
  • It cannot touch the fees holders have already earned or are owed. PLATFORM_SAFE appears in exactly two gated functions in PegHook.sol — setCreatorAddress and redirectCreatorFees — and neither one moves, freezes, or redirects another address's accrued balance. Holder fees leave the contract only through claim() and claimRange() (PegHook.sol:1185, :1215), and both pay only msg.sender — the holder claiming their own fees. There is no admin-callable path to anyone else's pendingClaim balance. The fees you have earned are yours; peg.fun cannot move them.
  • It cannot be reversed. creatorFeesRedirected is a one-way flag.
  • It cannot change who the creator-fee address is post-graduation — there is no such function; the only post-graduation effect is the one-time, one-way sweep to holders described above.

The one lever peg.fun holds always points fees toward holders and can never point them away — it is worth saying in the same breath, because that is the fact that makes this remaining authority tolerable rather than alarming.

peg.fun only exercises this against a demonstrably absent creator, with community backing, per the written criteria in docs/CTO-POLICY.md. A compromised PLATFORM_SAFE key could misuse this to strip a still-present, still-active creator of their fee stream against their will — a real harm, but bounded to redistributing that token's own fees among its own holders, never to extracting value from the protocol. See docs/CTO-POLICY.md for the full policy, including the takeover criteria and the standing log of every time this has actually fired.

6. Stock-quoted collections: the issuer, not peg.fun, controls its own token

Risk 1, above, is a claim about the protocol and its own insiders: no one in this protocol — not the creator, not holders, not peg.fun — can touch or withdraw the graduated LP position, ever. That stays true for every collection, stock-quoted or not; nothing here weakens it.

What changes for a collection quoted in a Robinhood stock token (TSLA, NVDA, and the rest) is a separate fact about the quote asset itself, not about peg.fun's protocol. Every privileged role on every one of those tokens sits on a single wallet, not a multisig, held by the issuer, Robinhood Assets (Jersey) Limited — a party outside peg.fun's protocol entirely. Those keys can:

  • pause every stock token at once,
  • block a specific address — including peg.fun's own contracts, and
  • burn tokens directly out of the Uniswap pool via adminBurn(from, amount), which carries neither a pause modifier nor a blocklist check.

So for a stock-quoted collection: Robinhood can pause, block or burn its own tokens — including the ones sitting in your pool — and peg.fun has no control over that and no way to reverse it. This is not peg.fun reaching into the liquidity; it is the issuer acting on an asset it, not peg.fun, controls. The distinction matters, but the practical effect for a holder is the same either way: the pool's reserves can be reduced by a party neither you nor peg.fun can stop.

This is not a hypothetical bolted onto an unrelated product: it is the accepted cost of quoting a collection in an asset peg.fun does not control. The /create flow shows this disclosure before you sign, for the specific stock token you chose, in the same words as here. If you are not comfortable with an issuer-controlled key sitting above your collection's quote asset, launch in ETH instead — the ETH path is unaffected and stays the default.

The full mitigation stack

The risks above are real. The mitigations:

  • ≥ 90% Foundry test coverage on src/ overall; ≥ 95% on the critical paths (hook + weight math + fee accumulator).
  • 50,000-run invariant testing on the balance-weight math.
  • Halmos symbolic proofs of the vault solvency invariant (INV-2: after any claim, the vault balance is at least the remaining pendingClaim sum).
  • Slither + Aderyn static analysis, HIGH/CRITICAL blocking CI.
  • Mainnet-fork integration tests against real Uniswap v4 PoolManager bytecode.
  • Internal line-by-line review over the production contracts.
  • Public testnet drills ≥ 7 days before each mainnet ship.
  • Private vulnerability disclosure channel (see Security).
  • No admin gating post-graduation, no party can compromise the protocol after deploy.
  • Permissionless posture, no whitelist, no canary window, free-for-all from block 1.

Every item above runs against the production contracts before each deploy, and HIGH or CRITICAL static-analysis findings block CI outright. None of this eliminates risk — it reduces it. See Security for the disclosure channel and the full internal review stack.

If you take one thing away

Know the 700-token per-transaction limit. Read how buying works. Understand that graduation is permanent. Those three things cover the vast majority of the trader-side risk surface.

For creators, the analogous list: understand the one narrow post-graduation exception peg.fun retains (risk 5), understand burned LP, understand that the AI session fee is non-refundable. Read What migration does, LP burn, and AI Easy Mode before paying the 0.001 ETH session fee.

Related