Guides

Documentation

Technical reference for the Glasspad token factory.

Getting Started

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.

QuickAdvanced

Launch a token

glasspad.io/launch

Name
Example Token
Ticker
$EXMPL
Image
Drag & drop, or generate with AI
Deploy Token

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

1

Token created

Your ERC-20 token is created with the name, ticker, and image you provided.

2

Pool initialized

A Uniswap v4 pool is initialized so trading can begin immediately.

3

Liquidity locked

The LP position is locked permanently. No key exists that allows anyone to withdraw it.

4

Sniper protection enabled

Automated buyers bid in an early-access auction instead of front-running the first trades.

5

Rewards accrue

Every swap generates LP fees that accrue to you and can be claimed at any time.

Additional configuration. Switch the form to Advanced to set a custom fee tier, split rewards with a co-creator, or add a vault, dev buy, or airdrop. See Launch Extensions.
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.