Skip to main content

Launch a token

This guide covers launching ■TOKEN via Continuous Clearing Auction for fair price discovery.

Prerequisites:

  • Vault deployed and activated
  • ■TOKEN supply ready
  • CCA strategy configured

Overview

The CCA launch process:

1. Prepare ■TOKEN supply
2. Configure CCA strategy
3. Create auction
4. Monitor during auction
5. Complete after graduation
6. Trading begins on V4

Preparation

Have ■TOKEN ready

Ensure sufficient ■TOKEN exists for the auction:

// Check supply
uint256 balance = shareOFT.balanceOf(owner);

// If needed, mint via deposit + wrap flow
creatorCoin.approve(address(wrapper), amount);
wrapper.deposit(amount, owner);

Configure strategy

CCALaunchStrategy strategy = new CCALaunchStrategy(
shareOFT,
owner
);

// Set recipients
strategy.setFundsRecipient(treasury); // Raised ETH
strategy.setTokensRecipient(vault); // Unsold tokens

// Set V4 configuration
strategy.setFeeRecipient(gaugeController);
strategy.setTaxRateBps(690); // 6.9% tax
strategy.setPoolFeeTier(3000); // 0.3% pool fee

Create auction

Transfer tokens to strategy

uint256 auctionAmount = 10_000_000e18; // 10M ■TOKEN
shareOFT.transfer(address(strategy), auctionAmount);

Initialize auction

address auction = strategy.createAuction(
auctionAmount,
0.0001 ether, // Min price per token
0.01 ether, // Max price per token
7 days, // Duration
"" // Config data
);

Auction parameters

ParameterDescriptionTypical value
Amount■TOKEN to auction10-50% of supply
Min priceFloor priceBased on creator coin
Max priceCeiling price10-100x min
DurationAuction length7 days

During auction

Monitor progress

IContinuousClearingAuction auction = IContinuousClearingAuction(auctionAddress);

// Current state
uint256 clearingPrice = auction.clearingPrice();
uint256 raised = auction.currencyRaised();
bool graduated = auction.isGraduated();

Keeper tasks

// Trigger checkpoints periodically
strategy.checkpoint();

User bidding

Users submit bids via the auction:

// User bids 1 ETH with max price
auction.submitBid{value: 1 ether}(
maxPrice, // Max ETH per token willing to pay
tokenAmount, // Tokens desired
bidder, // Bid owner
0, // prevTickPrice (0 for simple bids)
"" // Hook data
);

After graduation

Check graduation

require(strategy.isGraduated(), "Auction not graduated");

Complete auction

// Configures V4 pool with tax hook
strategy.completeAuction();

Sweep funds

// Send raised ETH to recipient
strategy.sweepCurrency();

// Return unsold tokens
strategy.sweepUnsoldTokens();

Post-launch

V4 pool active

Trading begins automatically on the V4 pool with:

  • 6.9% tax on buys
  • Liquidity from auction
  • Price based on clearing price

Verify tax hook

// Tax hook should be configured
// Fees route to GaugeController
// Lottery entries activate for buyers

Monitor trading

// Check fee collection
uint256 pending = gaugeController.pendingFees();

// Trigger distribution if needed
if (pending >= threshold) {
gaugeController.distribute();
}

Timeline

PhaseDurationActivities
Setup1-2 daysDeploy, configure, transfer tokens
Auction7 daysUsers bid, checkpoints run
GraduationAutomaticV4 pool created
Post-launchOngoingTrading, fee distribution

Best practices

Pricing

  • Research comparable tokens
  • Set min price conservatively
  • Max price should allow upside

Communication

  • Announce auction dates clearly
  • Explain bidding mechanics
  • Share auction address widely

Monitoring

  • Run checkpoints every few hours
  • Watch for unusual activity
  • Be ready to answer questions

Troubleshooting

IssueSolution
Low participationExtend marketing, check pricing
Graduation failsEnsure V4 contracts configured
Tax hook not workingVerify configuration post-graduation
Sweep failsWait for graduation to complete