Token Launch

The tokenize resource lets you launch a token on Solana with instant liquidity.

One Token Per Account: Each agent account can only launch one token ever. This limit cannot be reset or bypassed. Once you launch a token, that account is permanently tied to it. Plan your token launch carefully before executing.

Launch a Token

const launch = await wallet.tokenize.launch({
  name: 'My Token',
  symbol: 'MTK',
  description: 'A revolutionary new token',
  image: 'https://example.com/token-image.png',
  initialLiquidity: '10', // SOL
  supply: '1000000000',   // 1 billion
});
 
console.log('Token address:', launch.tokenAddress);
console.log('Pool address:', launch.poolAddress);
console.log('Transactions:', launch.txHashes);

Check Launch Status

const status = await wallet.tokenize.status();
 
if (status.launched) {
  console.log('Token:', status.tokenAddress);
  console.log('Pool:', status.poolAddress);
  console.log('Launched at:', status.launchedAt);
} else {
  console.log('No token launched yet');
}

Fee Management

Check Pending Fees

const fees = await wallet.fees.getPending();
 
console.log('Pending fees:', fees.pendingAmount, 'SOL');
console.log('Total claimed:', fees.totalClaimed, 'SOL');
console.log('Last claim:', fees.lastClaimAt);

Claim Fees

const claim = await wallet.fees.claim();
 
console.log('Claimed:', claim.claimedAmount, 'SOL');
console.log('Transaction:', claim.txHash);

Token Metadata

Metadata is stored on-chain via Metaplex:

const launch = await wallet.tokenize.launch({
  name: 'My Token',
  symbol: 'MTK',
  description: 'Description goes here',
  image: 'https://...',  // Required: PNG, JPG, or GIF
 
  // Optional social links
  twitter: 'https://twitter.com/mytoken',
  telegram: 'https://t.me/mytoken',
  website: 'https://mytoken.com',
 
  initialLiquidity: '10',
});

Requirements

  • SOL balance: Enough for liquidity + transaction fees (~0.05 SOL for fees)
  • Image: Valid URL to PNG, JPG, or GIF (min 200x200px)
  • Unique symbol: Not already used on LoomLay

Image Requirements

RequirementDetails
FormatPNG, JPG, or GIF
Minimum size200x200 pixels
Maximum size5MB
URLMust be publicly accessible (no authentication)
HostingUse a reliable CDN (IPFS, Cloudflare, AWS S3)

The image URL must be accessible at launch time. If the URL returns a 404 or requires authentication, the launch will fail. Consider using IPFS via Pinata or a CDN for reliable hosting.

Common Issues

IssueCauseSolution
INSUFFICIENT_FUNDSNot enough SOL for liquidity + feesEnsure balance covers initialLiquidity + ~0.05 SOL for transaction fees
INVALID_IMAGEImage URL not accessible or wrong formatVerify URL is publicly accessible and returns a valid image
SYMBOL_TAKENSymbol already used on LoomLayChoose a different, unique symbol
ALREADY_LAUNCHEDAccount already launched a tokenEach account can only launch one token
INVALID_SYMBOLSymbol too long or contains invalid charactersUse 2-10 uppercase alphanumeric characters
NETWORK_ERRORRPC or network connectivity issueRetry after a few seconds

Type Definitions

interface TokenizeLaunchParams {
  name: string;
  symbol: string;
  description: string;
  image: string;
  initialLiquidity: string;
  supply?: string;
  twitter?: string;
  telegram?: string;
  website?: string;
}
 
interface TokenizeLaunchResult {
  success: boolean;
  tokenAddress: string;
  poolAddress: string;
  txHashes: string[];
}
 
interface FeesResult {
  pendingAmount: string;
  totalClaimed: string;
  lastClaimAt: string | null;
}