Initiate a CTO Vote

Start a Community Takeover vote to replace the current token deployer. Requires a 5% token stake and a small ETH/BNB fee.

Prerequisites

  • Token must be graduated (registered in the Hook)
  • No active CTO vote for this token
  • You need 60,000,000 tokens (5% of total supply) approved to the Hook
  • CTO fee: 0.0001 ETH (Base) / 0.0002 BNB (BSC)

Initiate the Vote

const hook = new ethers.Contract(HOOK_ADDRESS, HOOK_ABI, signer);
const token = new ethers.Contract(TOKEN_ADDRESS, ERC20_ABI, signer);

// Check eligibility
const canInitiate = await hook.canInitiateCTO(TOKEN_ADDRESS);

// Approve 60M tokens to Hook
const stake = ethers.utils.parseUnits("60000000", 9);
await (await token.approve(HOOK_ADDRESS, stake)).wait();

// Initiate vote
const tx = await hook.initiate_cto_vote(TOKEN_ADDRESS, {
    value: ethers.utils.parseEther("0.0001")
});
const receipt = await tx.wait();

// Get vote contract address from event
const event = receipt.events.find(e => e.event === "CTOVoteInitiated");
const voteContract = event.args.vote_contract;
Initiator = New Deployer

If the vote succeeds, the initiator becomes the new deployer. The initiator's staked tokens automatically count as YES votes.