Launching a token on Glasspad takes one transaction. Enter a name and a ticker, upload an image, and deploy the token. Glasspad creates the pool, locks the liquidity, and enables sniper protection automatically.
Launch a token
glasspad.io/launch
The Quick tab on /launch requires only three fields. Fee tier, reward splits, and launch extensions are available under Advanced and are off by default. Connect a wallet and your first launch each day is free: Glasspad pays the gas for it.
What happens after you deploy
Token created
Your ERC-20 token is created with the name, ticker, and image you provided.
Pool initialized
A Uniswap v4 pool is initialized so trading can begin immediately.
Liquidity locked
The LP position is locked permanently. No key exists that allows anyone to withdraw it.
Sniper protection enabled
Automated buyers bid in an early-access auction instead of front-running the first trades.
Rewards accrue
Every swap generates LP fees that accrue to you and can be claimed at any time.
For developers: the raw deployToken() calldata
The form above calls deployToken() with a single DeploymentConfig struct. If you call the contract directly, the struct has the following shape:
struct DeploymentConfig {
TokenConfig tokenConfig;
PoolConfig poolConfig;
LockerConfig lockerConfig;
MevModuleConfig mevModuleConfig;
ExtensionConfig[] extensionConfigs;
}TokenConfig
struct TokenConfig {
address tokenAdmin; // Admin address for the token
string name; // Token name (e.g. "Glasspad Token")
string symbol; // Token symbol (e.g. "EXMPL")
bytes32 salt; // CREATE2 salt for deterministic address
string image; // Token image URI
string metadata; // Additional metadata
string context; // Context string
uint256 originatingChainId; // Chain ID for cross-chain support
}PoolConfig
struct PoolConfig {
address hook; // DynamicHook or StaticHook address
address pairedToken; // Token to pair with (usually WETH)
int24 tickIfToken0IsBonker; // Starting tick
int24 tickSpacing; // Pool tick spacing
bytes poolData; // Hook-specific pool config
}LockerConfig
struct LockerConfig {
address locker; // LpLocker address
address[] rewardAdmins; // Admin per reward recipient
address[] rewardRecipients; // Who receives LP fees (up to 7)
uint16[] rewardBps; // Fee share per recipient (basis points, sum = 10000)
int24[] tickLower; // LP position lower ticks
int24[] tickUpper; // LP position upper ticks
uint16[] positionBps; // Liquidity split per position
bytes lockerData; // Additional locker config
}ExtensionConfig
struct ExtensionConfig {
address extension; // Extension contract (or address(0))
uint256 msgValue; // ETH to send to extension
uint16 extensionBps; // Token supply % for extension (basis points)
bytes extensionData; // Extension-specific config
}For the full field reference and a working viem example, see SDK Integration.
