Abyss

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

SettingUFG requirement
TokenERC20 only; no DN-404, staking or dividends.
Collection rewardZero executor bounty.
Treasury allocationtreasuryShareBps = 10000: 100% of collected quote fees after protocol charges goes through the treasury route. No human creator-fee allocation.
Launch-token feesBurn 100%; no rewards or owner share.
Exit fee0%–20% (exitFeeBps = 0..2000), deducted from redemption and retained in the treasury.
Reserve assets1–7, nonzero, unique and sorted by numeric address. The reserve set must exactly equal the markets' quote-asset set.
Native AbyssCanonical QUOTE / QUOTE_ORACLE, config1 only.
Uniswap V4UFG 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.
IdentityPlan creator is the UFG proxy; wallet principal signs and pays. Nonce is namespaced to that principal.
Approvals and refundsApprove 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.

  1. 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.
  2. Set the proxy identity. Set plan.creator to UFG_LAUNCH_PROXY_ADDRESS. Build the nonce with ufgLaunchNonce(principal, nonce96) / ufg_launch_nonce(principal, nonce96). Pass the principal as the planning and signing account.
  3. Build treasury policies. Set the reserve list, 10,000-bps treasury share and chosen exit fee. Use buildUfgFeeAssetPolicies / build_ufg_fee_asset_policies for 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.
  4. Prepare and simulate. Call prepareAndPlanLifecycleLaunch with ufg: { config }, or prepare_and_plan_lifecycle_launch with ufg=config. Choose atomic or staged explicitly, inspect activation coverage and save the returned plan and UFG configuration together.
  5. Sign the next proxy step. Use buildNextTransaction / build_next_transaction from that UFG-aware planning result. ERC20 approvals target the proxy. Keep the same plan, principal and UFG configuration for recovery; buildUfgCancelTransaction / build_ufg_cancel_transaction builds a pending-launch cancellation.
  6. Check Active and treasury creation. readUfgTreasury(client, token) / read_ufg_treasury(client, token) returns the treasury address, or undefined / None when 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.

On this page