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.