Page cover image

Code Integration

Understand the technical framework behind KOL.exe.

Webhook & Validation

app.post('/webhook', async (req, res) => {
  const data = req.body;

  if (data[0]?.tokenTransfers && data[0].tokenTransfers.length > 0) {
    const lastTransfer = data[0].tokenTransfers[data[0].tokenTransfers.length - 1];
    const contractAddress = lastTransfer.mint;
    const tokenAmount = parseFloat(lastTransfer.tokenAmount);

    // Process transaction
    await generateShillMessage(contractAddress, tokenAmount);
  }
  res.sendStatus(200);
});

DexScreener Integration

async function getTokenTicker(contractAddress, tokenAmount) {
  const url = `https://api.dexscreener.io/latest/dex/tokens/${contractAddress}`;
  const response = await axios.get(url);

  if (response.data && response.data.pairs.length > 0) {
    const pair = response.data.pairs[0];
    const priceUsd = parseFloat(pair.priceUsd);
    const totalValue = priceUsd * tokenAmount;

    return totalValue >= 50 ? pair.baseToken.symbol : null;
  }
  return null;
}

LLM Message Generation

async function generateShillMessage(contractAddress, tokenAmount) {
  const ticker = await getTokenTicker(contractAddress, tokenAmount);

  if (!ticker) return;

  const prompts = [
    `Write a playful tweet about ${ticker}. End with CA: ${contractAddress}.`,
    `Write a bold tweet predicting ${ticker} will 100x. End with CA: ${contractAddress}.`
  ];
  const response = await openai.chat.completions.create({
    model: 'gpt-4o',
    messages: [{ role: 'user', content: prompts[0] }],
    max_tokens: 100,
  });
  const shillMessage = response.choices[0].message.content.trim();
  await postTweet(shillMessage, [ticker]);
}

Deflationary Mechanism

async function burnTokens(contractAddress, tokenAmount) {
  const swapAmount = tokenAmount * 0.8; // 80% of received tokens
  const kolTokens = await swapForKol(swapAmount);
  await sendToBurnAddress(kolTokens);
}

Last updated