Treasury launches (UFG)
Choose UFG when collected quote fees should build redeemable reserves instead of creator income or holder rewards. UFG is a launch route through a proxy, not another DEX venue or token kind. It can use supported native Abyss pools and UFG-specific V4 hooks.
Creating a treasury launch currently requires SDK 0.12.0. The Abyss app displays treasury launches, their reserve policy, exit fee and treasury address. It does not yet offer treasury creation or redemption controls.
Check the treasury rules
| Setting | UFG requirement |
|---|---|
| Token | ERC20 only; no DN-404, staking or dividends. |
| Collection reward | Zero executor bounty. |
| Treasury allocation | treasuryShareBps = 10000: 100% of collected quote fees after protocol charges goes through the treasury route. No human creator-fee allocation. |
| Launch-token fees | Burn 100%; no rewards or owner share. |
| Exit fee | 0%–20% (exitFeeBps = 0..2000), deducted from redemption and retained in the treasury. |
| Reserve assets | 1–7, nonzero, unique and sorted by numeric address. The reserve set must exactly equal the markets' quote-asset set. |
| Native Abyss | Canonical QUOTE / QUOTE_ORACLE, config1 only. |
| Uniswap V4 | UFG fixed or UFG dynamic profiles only; QuoteOnly, zero LP fee, config6 with the same UFG configuration tail on every V4 market. Ordinary V4 profiles and HMM are not eligible. |
| Identity | Plan creator is the UFG proxy; wallet principal signs and pays. Nonce is namespaced to that principal. |
| Approvals and refunds | Approve the proxy, not the ordinary funding escrow. Refunds go to the principal. Buy recipients and the SDK's inventoryRecipient must be external to the proxy; mint-rounding dust still burns. |
Launch positions still begin with the launch token only and remain permanently locked. A treasury launch does not require an opening reserve deposit; reserve balances depend on funds actually collected. The pricing and range rules still apply.
Create one through the SDK
Use the TypeScript lifecycle guide or Python launch guide for complete arguments. The ordinary eleven example cases and generic saved-plan CLIs do not carry the UFG option.
- Discover eligible markets. Use
readLifecycleProfiles/read_lifecycle_profiles. Select canonical quote-fee Abyss profiles or the admitted UFG fixed/dynamic V4 profiles; keep the current core, proxy and treasury factory together. - Set the proxy identity. Set
plan.creatortoUFG_LAUNCH_PROXY_ADDRESS. Build the nonce withufgLaunchNonce(principal, nonce96)/ufg_launch_nonce(principal, nonce96). Pass the principal as the planning and signing account. - Build treasury policies. Set the reserve list, 10,000-bps treasury share and chosen exit fee. Use
buildUfgFeeAssetPolicies/build_ufg_fee_asset_policiesfor the launch-token burn and reserve-owner policies; the treasury route owns the reserve income. For V4, encode the identical UFG tail in every market. - Prepare and simulate. Call
prepareAndPlanLifecycleLaunchwithufg: { config }, orprepare_and_plan_lifecycle_launchwithufg=config. Choose atomic or staged explicitly, inspect activation coverage and save the returned plan and UFG configuration together. - Sign the next proxy step. Use
buildNextTransaction/build_next_transactionfrom that UFG-aware planning result. ERC20 approvals target the proxy. Keep the same plan, principal and UFG configuration for recovery;buildUfgCancelTransaction/build_ufg_cancel_transactionbuilds a pending-launch cancellation. - Check Active and treasury creation.
readUfgTreasury(client, token)/read_ufg_treasury(client, token)returns the treasury address, orundefined/Nonewhen absent. Publish the existing token through proxy-aware metadata authorization, then confirm indexing.
The TypeScript UFG configuration example is pure construction code. Python's treasury example runs only on an owned local fork; it is not a mainnet broadcast command.
Redeem against current reserves
A holder burns launch tokens through the treasury contract to receive a pro-rata share of its current reserves, minus the exit fee. The exit fee remains in the treasury. Read current balances, obtain a redemption quote, review each reserve's minimum output and approve only the required token amount to the treasury before redeeming.
Redemption permanently reduces your token balance. Its value depends on reserve balances, token supply, asset prices, fee and integer rounding. Empty reserves can produce zero output. UFG does not guarantee a USD floor or a market price.
Treasury collection is separate from redemption. Trading fees that have not reached reserves are not yet redeemable backing. UFG launches do not use the app's Collect and distribute fees, Claim owner fees, staking or dividend actions.