Skip to main content

Delayed completion

What happens if auction completion is delayed after the auction period ends.

Scenario analysis

If nobody calls sweepCurrency() (and the token owner doesn’t configure the tax hook) after Day 7...


Funds are safe

User Safety:

  1. Auction Participants Can Still Claim:

    • After 7 days, auction automatically ends (by block number)
    • Users can claim their ■AKITA tokens from the auction contract
    • The claim() function on CCA contract works independently
    • No completion needed for users to get their tokens
  2. Creator's 25M ■AKITA:

    • Already in creator's wallet from launch
    • Not affected by auction completion
    • Can be held, transferred, or used
  3. ETH Raised:

    • ⏳ Sits safely in the auction contract
    • Cannot be stolen or lost
    • Can be swept anytime later via sweepCurrency()
  4. ■AKITA Tokens:

    • Valid and transferable
    • Can be unwrapped back to vault shares
    • Can withdraw underlying AKITA from vault
    • Fully functional even without V4 pool

What does not work

Without Completion:

  1. No Trading Pool:

    • ■AKITA/ETH V4 pool doesn't exist
    • No public market for ■AKITA
    • Users can't buy/sell ■AKITA on Uniswap
    • Only OTC trades possible
  2. No Fee Generation:

    • 6.9% hook not enabled
    • No fees collected for jackpot
    • No burns happening
    • No treasury funding
  3. No Price Discovery (Post-Auction):

    • No public market price
    • Oracles can't reference pool
    • Hard to value ■AKITA
  4. Incomplete Launch:

    • Auction succeeded but ecosystem not live
    • Community expectation not met
    • May confuse users

Can it be completed later

YES — with the correct permissions:

// In CCALaunchStrategy.sol
function sweepCurrency() external nonReentrant {
// No time restriction!
// Can be called days, weeks, or months later
}

Key Points:

  • No deadline to sweep: sweepCurrency() is permissionless
  • Hook config is not permissionless: setTaxConfig(...) requires the ■AKITA token owner (or a configured delegate)
  • ETH will still be there in the auction until swept
  • Pool can be created anytime

However:

  • The longer you wait, the worse it looks
  • Community may lose confidence
  • Trading volume delayed = missed fees
  • May need to re-announce pool launch

Option 1: Set Multiple Reminders (Easiest)

Day 6: "Auction ends tomorrow - prepare to complete"
Day 7: "COMPLETE AUCTION NOW"
Day 8: "Emergency: Complete auction ASAP"

Backup Plan:

  • Give 2-3 trusted people access
  • Share completion link with team
  • Post in Discord for community help

Option 2: Make Completion Permissionless (Best)

Change the contract to allow anyone to complete after 7 days:

// In CCALaunchStrategy.sol
function sweepCurrency() external nonReentrant {
if (currentAuction == address(0)) revert NoActiveAuction();

IContinuousClearingAuction auction = IContinuousClearingAuction(currentAuction);

// Check if auction has ended
(, uint256 endBlock,,) = auction.auctionParameters();
if (block.number < endBlock) revert AuctionStillActive();

// Anyone can call after auction ends!

uint256 raised = auction.fundsRaised();
auction.sweepFunds();

// Optional: Send small incentive to caller
uint256 incentive = raised / 1000; // 0.1% of raised
if (incentive > 0) {
payable(msg.sender).transfer(incentive);
}

graduatedAuction = currentAuction;
isGraduated = true;

emit AuctionGraduated(currentAuction, raised, finalPrice);
}

Benefits:

  • Anyone can complete (decentralized)
  • Small incentive encourages quick completion
  • No single point of failure
  • Community can help

Option 3: Build Automated Keeper (Most Reliable)

Simple keeper bot that monitors and completes:

// keeper.ts
import { ethers } from 'ethers'
import { AKITA } from './config/contracts'

const provider = new ethers.JsonRpcProvider(process.env.BASE_RPC)
const wallet = new ethers.Wallet(process.env.KEEPER_PRIVATE_KEY, provider)

const ccaStrategy = new ethers.Contract(
AKITA.ccaStrategy,
CCA_STRATEGY_ABI,
wallet
)

async function checkAndComplete() {
try {
// Check auction status
const status = await ccaStrategy.getAuctionStatus()

if (!status.isActive && !status.isGraduated) {
console.log('Auction ended but not graduated. Completing...')

// Step 1: Sweep currency
const tx1 = await ccaStrategy.sweepCurrency()
await tx1.wait()
console.log('Currency swept')

// Step 2: Configure hook (if you're token owner)
const [hookTarget, hookData] = await ccaStrategy.getTaxHookCalldata()
const tx2 = await wallet.sendTransaction({
to: hookTarget,
data: hookData
})
await tx2.wait()
console.log('Hook configured')

console.log(' Auction completed successfully!')
} else {
console.log('Auction still active or already graduated')
}
} catch (error) {
console.error('Error:', error)
}
}

// Run every hour
setInterval(checkAndComplete, 60 * 60 * 1000)

Deploy on:

  • Render.com (free)
  • Railway.app (free)
  • Your own server
  • AWS Lambda (cheap)

Risk assessment

ScenarioRisk LevelImpactMitigation
Delay 1 day🟡 LowMinor community confusionPost update, complete ASAP
Delay 1 week🟠 MediumLost trading fees, community upsetApologize, complete, compensate early supporters
Delay 1 month🔴 HighSerious loss of confidenceMajor communication needed, may need relaunch
Never complete🔴 CriticalProject appears abandonedUsers can still unwrap & withdraw, but ecosystem dead

What you should do

Before Launch:

  1. Build the keeper bot (2 hours of work)

    • Set it up on Render.com
    • Fund it with 0.1 ETH for gas
    • Test it on testnet
  2. Make completion permissionless (optional)

    • Modify sweepCurrency() to allow anyone
    • Add small incentive (0.1% of raised)
    • Redeploy CCALaunchStrategy
  3. Set up monitoring

    • Discord webhook for auction status
    • Email alerts for day 6, 7, 8
    • Multiple people notified

After Launch:

  1. Monitor daily

    • Check auction progress
    • Watch for end time
    • Be ready on day 7
  2. Have backup plan

    • Share completion link with 3 people
    • Have community member on standby
    • Keep gas funds ready

Financial impact of delay

Example: $10k raised in auction

DelayLost Trading FeesCommunity Impact
1 day~$100Minimal
1 week~$700Noticeable frustration
1 month~$3,000Serious credibility damage

Why fees matter:

  • 6.9% of all trades go to jackpot/burns
  • Early trading volume is highest (hype)
  • Every day counts for fee generation

Summary

Users Are Safe:

  • Can claim ■AKITA from auction
  • Can unwrap to vault shares
  • Can withdraw underlying AKITA
  • No funds lost or locked

But Ecosystem Is Dead Until Completion:

  • No trading pool
  • No fees generated
  • No public market
  • Community disappointed

STRONGLY RECOMMEND:

  1. Build a keeper bot (best solution)
  2. Set multiple reminders (backup)
  3. Make it permissionless (safety net)
  4. Have 3 people ready (redundancy)

Conclusion

Can you launch safely? YES.

Will users lose funds if delayed? NO.

Should you have a backup plan? ABSOLUTELY.

Best solution? Build the keeper bot (takes 2 hours, runs forever).


Would you like me to build the keeper bot for you? It's a simple script that can run for free on Render.com.