> Bull Launch docs. Every page is available as Markdown by adding `.md` to its URL; the index is https://bulllaunch.fun/llms.txt. This page on the web: https://bulllaunch.fun/docs/base-assets

# Base assets and curves

Which assets a launch can be priced in, and each one's opening valuation and graduation target.

A launch is priced in exactly one base asset, chosen at creation from what the registry whitelists. Read the live list from `ConfigRegistry.getEnabledBases()` rather than hardcoding it: the owner can add or drop an entry at any time, and a launch against a base that is not enabled reverts with `BaseNotAllowed`.

| Base | Address and decimals |
| --- | --- |
| USDC | `0x0000000000000000000000000000000000000000` (native), 18 decimals |
| USDT | `0x85C59dc273d2F1807F2EF569285dff62FF548b8a`, 6 decimals |

Each base carries its own curve on the registry, read as `baseCurve(base)` returning `(startAmount, fillAmount)`. `startAmount` is the valuation a launch opens at and `fillAmount` is what the main band must take in to graduate, both denominated in that base.

| Base | Opens at | Graduates at | Exact raise |
| --- | --- | --- | --- |
| USDC | 3 USDC | 8 USDC | 8.04 USDC |
| USDT | 3,000 USDT | 8,000 USDT | 8,039.32 USDT |

`baseFillAmountActual(base)` is the figure the hook actually settles against, and it is slightly above `fillAmount` because the band is priced in ticks and the target lands inside one. Use it when you need the exact raise, and `fillAmount` when you need the number the protocol advertises.
