๐ญ CabalFactory
CabalFactory
The CabalFactory
contract is the main entry point for launching tokens on The Cabal platform โ supporting both Uniswap V3 and V4 deployments.
It handles everything from token creation to liquidity deployment, locking, and developer buy functionality โ all in one transaction.
โ๏ธ Responsibilities
๐ช Deploys new ERC-20 token contracts with fixed 1B supply
๐ง Adds liquidity to Uniswap V3 or V4 automatically
๐ Locks LP using custom LiquidityLocker contracts
๐ฏ Supports Dev Buy (developer ETH buy-in at launch)
๐งพ Stores full deployment metadata (token name, symbol, IPFS image, links, etc.)
๐ Renounces token ownership immediately
๐ Emits a detailed
TokenDeployedWithLiquidity
event for indexing
๐งช Deployment Logic
When launching a token via the CabalFactory:
A new
CabalToken
is deployed (1B supply).A portion of the supply is added to liquidity (either V3 or V4), paired with ETH if needed.
Liquidity is locked automatically via the locker contract.
The remaining tokens (if any) are sent to the deployer.
If a Dev Buy amount is specified, the platform automatically purchases the token using ETH on behalf of the deployer.
Deployment metadata is saved on-chain.
Ownership of the token contract is renounced for decentralization.
๐ ๏ธ Functions Overview
deployV3TokenWithLiquidity(...)
Deploy a token with Uniswap V3 liquidity, LP lock, and optional Dev Buy
deployV4TokenWithLiquidity(...)
Deploy a token with Uniswap V4 liquidity and optional Dev Buy
getDeployedTokensCount()
Returns the total number of tokens launched
getTokenInfo(index)
Returns metadata about a specific deployed token
getTokensByDeployer(address)
Returns all token addresses deployed by a given user
getAllTokens(offset, limit)
Returns paginated token deployment metadata
isTokenDeployedByFactory(address)
Checks if a token was launched via the factory
updateV3Helpers(...)
(Dev) Update the V3 helpers contract address
updateV4Helpers(...)
(Dev) Update the V4 helpers contract address
updateLiquidityLocker(...)
(Dev) Update the LP locker contract address
emergencyRecoverETH()
(Dev) Withdraw stuck ETH from the contract
๐ Notes
Tokens are locked to ensure trust and safety.
Ownership is renounced for full decentralization.
Supports both Uniswap V3 (current standard) and V4 (next-gen) launch styles.
Last updated