Skip to main content

Pre-launch verification

This checklist is the source of truth for launching a Creator Vault on Base.

Who this is for: Protocol operators preparing for vault launch.


1. Contract addresses

Verify frontend/src/config/contracts.ts contains correct addresses for:

ContractConfig key
Creator tokenAKITA.token
VaultAKITA.vault
WrapperAKITA.wrapper
Share OFTAKITA.shareOFT
Gauge controllerAKITA.gaugeController
CCA strategyAKITA.ccaStrategy
OracleAKITA.oracle
Vault activation batcherCONTRACTS.vaultActivationBatcher
Strategy deployment batcherCONTRACTS.strategyDeploymentBatcher
Pool managerCONTRACTS.poolManager
Tax hookCONTRACTS.taxHook

2. Symbol grammar (blocking)

Confirm on-chain metadata matches the standard:

Token typeSymbol formatExample
Vault shares▢{COIN}▢AKITA
Wrapped share token (ShareOFT)■{COIN}■AKITA

3. Strategy deployment and configuration

Strategies must be deployed and added before the initial deposit.

  • Route: /admin/deploy-strategies
  • Requires vault management permissions

Required parameters

ParameterDefault value
Charm (CREATOR/USDC) weight6900
Ajna weight2139
Minimum total idle4,805,000 × 10^18 (9.61% of 50M)

On-chain verification

vault.getStrategyCount()              // Expected: 2
vault.strategyWeights(charmStrategy) // Expected: 6900
vault.strategyWeights(ajnaStrategy) // Expected: 2139
vault.minimumTotalIdle() // Expected: 4_805_000e18

4. Activation flow

Activation uses the on-chain VaultActivationBatcher via the LaunchVaultAA frontend component.

Why this matters

  • The vault uses ERC-4626 virtual shares/offsets
  • You cannot safely hardcode wrap(depositAmount) client-side
  • The batcher correctly uses the returned share amount from deposit() and wraps that

User flow

  1. Approve creator token to VaultActivationBatcher
  2. Call VaultActivationBatcher.batchActivate(...) (batched in AA when supported)

5. Post-activation yield deployment

Activation does not call vault.deployToStrategies().

After launch, a keeper/owner/management should call:

  • vault.deployToStrategies() or vault.tend()

6. Day 7+ completion

After the auction is graduated:

  1. Call CCALaunchStrategy.sweepCurrency() (permissionless)
  2. Configure the tax hook via TaxHook.setTaxConfig(...) (token owner required)

The frontend CompleteAuction.tsx implements this flow.


6b. LBPStrategyWithTaxHook path (alternative)

If using the Liquidity Launcher-style path:

  1. Sweep raised currency from auction to strategy: auction.sweepCurrency()
  2. Migrate liquidity into V4: LBPStrategyWithTaxHook.migrate() after migrationBlock
  3. Configure tax hook using pool ID derived from exact V4 PoolKey

References