
Créez un bot Telegram Solana en moins de 100 lignes de code
Vous souhaitez suivre les événements Solana en temps réel ? Ce guide vous montrera comment créer un bot Telegram capable de suivre les activités on-chain. Nous utiliserons un outil de suivi des ventes de NFT comme exemple, mais le modèle que nous allons créer peut facilement être adapté à d’autres cas d’usage.
Voici à quoi ressemblera notre exemple de bot :
Ce modèle associe les webhooks Helius pour obtenir les données Solana en temps réel à Cloudflare Workers pour l’hébergement serverless. Que vous suiviez les ventes de NFT, surveilliez des protocoles DeFi ou gardiez un œil sur des portefeuilles précis, cette configuration constitue une base solide.
Configuration de votre projet
Mettons votre projet en service :
1. Clonez le dépôt
git clone https://github.com/helius-labs/cloudfare-telegram-template.git
cd cloudfare-telegram-template2. Installez les dépendances
npm install3. Configurez les variables d’environnement
Ouvrez wrangler.toml et renseignez les clés suivantes :
TELEGRAM_BOT_TOKEN
- Ouvrez Telegram et recherchez @BotFather.
- Démarrez une conversation avec BotFather et envoyez la commande
/newbot. - Suivez les instructions pour choisir un nom et un nom d’utilisateur pour votre bot.
- Une fois le bot créé, BotFather vous fournira un jeton. Il s’agit de votre
TELEGRAM_BOT_TOKEN.
TELEGRAM_CHAT_ID
- Créez un canal et ajoutez votre bot en tant qu’administrateur.
- Envoyez un message dans le canal.
- Accédez à : https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
- Recherchez le champ
"chat":{"id":dans la réponse. Il s’agit de votreTELEGRAM_CHAT_ID. - Regardez cette vidéo pour suivre un guide détaillé :
HELIUS_API_KEY
Votre clé API Helius (obtenez-la auprès de Helius)
AUTH_TOKEN
Ouvrez bash et générez un AUTH_TOKEN unique :
openssl rand -base64 32Ne validez pas ces valeurs dans GitHub.
4. Déployez sur Cloudflare
npm run deployAprès avoir exécuté cette commande, l’URL de votre déploiement apparaîtra dans la sortie de la console. Notez cette URL, car vous en aurez besoin à l’étape suivante.
5. Créez votre webhook
Utilisez l’URL de déploiement obtenue à l’étape précédente pour créer votre webhook :
curl -X POST https://your-worker-url.workers.dev/create-webhookRemplacez "your-worker-url" par l’URL réelle de votre worker.
Vous recevrez une réponse confirmant la réussite de l’opération après avoir exécuté cette commande.
Vous pouvez consulter le nouveau webhook que vous avez configuré dans votre tableau de bord Helius.
Le démarrage complet et la mise en service du nouveau webhook peuvent prendre 2 à 3 minutes.
6. Modifiez votre webhook
Après avoir créé votre webhook, vous pouvez le personnaliser davantage dans le tableau de bord Helius :
- Accédez à la section des webhooks de votre tableau de bord
- Votre nouveau webhook devrait apparaître dans la liste.
- Cliquez sur le webhook pour modifier ses paramètres.
- Vous pouvez y modifier différents paramètres, notamment :
- Les types de transactions que vous souhaitez suivre
- Les adresses de portefeuilles précises à surveiller
- Le réseau (mainnet, devnet)
Ne modifiez pas le champ "Webhook URL". Il doit toujours pointer vers l’endpoint /webhook de votre Cloudflare Worker (https://your-worker- url.workers.dev/webhook).
Explication du code
Commençons par examiner nos imports et nos définitions de types :
import { Hono } from 'hono';
type Env = {
HELIUS_API_KEY: string;
TELEGRAM_BOT_TOKEN: string;
TELEGRAM_CHAT_ID: string;
AUTH_TOKEN: string;
};
Nous utilisons Hono, un framework web léger pour Cloudflare Workers. Le type Env définit nos variables d’environnement pour les intégrations Helius et Telegram.
Configurons ensuite notre application Hono :
const app = new Hono<{ Bindings: Env }>();
app.get('/', (c) => c.text('Solana Action Bot is running!'));Ce code crée notre application et configure un endpoint simple de vérification d’état.
Créons maintenant notre webhook :
app.post('/create-webhook', async (c) => {
const webhookURL = `${new URL(c.req.url).origin}/webhook`;
console.log('Setting up webhook with URL:', webhookURL);
const response = await fetch(
`https://api.helius.xyz/v0/webhooks?api-key=${c.env.HELIUS_API_KEY}`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
webhookURL: webhookURL,
transactionTypes: ["NFT_SALE"],
accountAddresses: ["M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K"], // Magic Eden v2 program
webhookType: "enhanced",
authHeader: c.env.AUTH_TOKEN
}),
}
);
const data = await response.json();
console.log('Helius webhook setup response:', data);
return c.json({ success: true, webhook: data, webhookURL: webhookURL });
});
Cet endpoint configure notre webhook Helius. Dans cet exemple, nous suivons les ventes de NFT du programme Magic Eden v2, mais vous pouvez modifier transactionTypes et accountAddresses selon vos besoins.
Voici comment envoyer des messages à Telegram :
async function sendTelegramMessage(message: string, env: Env) {
const url = `https://api.telegram.org/bot${env.TELEGRAM_BOT_TOKEN}/sendMessage`;
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
chat_id: env.TELEGRAM_CHAT_ID,
text: message,
parse_mode: 'Markdown',
}),
});
return response.json();
}Cette fonction met en forme notre message et l’envoie dans notre chat Telegram.
Enfin, traitons les données reçues par le webhook :
app.post('/webhook', async (c) => {
const authToken = c.req.header('Authorization');
if (authToken !== c.env.AUTH_TOKEN) {
return c.text('Unauthorized', 401);
}
let data;
try {
data = await c.req.json();
console.log('Received webhook data:', JSON.stringify(data, null, 2));
} catch (error) {
console.error('Error parsing webhook data:', error);
return c.text('Error processing webhook', 400);
}
if (!Array.isArray(data) || data.length === 0) {
console.log('No transactions in webhook data');
return c.text('No transactions to process', 200);
}
for (const transaction of data) {
if (transaction.type === 'NFT_SALE') {
const { amount, buyer, seller, signature, nfts } = transaction.events.nft;
const message = `🎉 *NFT Sale*\n\n` +
`*Price*: ${amount / 1e9} SOL\n` +
`*Buyer*: \`${buyer}\`\n` +
`*Seller*: \`${seller}\`\n` +
`*Signature*: [View on Solana Explorer](https://explorer.solana.com/tx/${signature})`;
try {
const result = await sendTelegramMessage(message, c.env);
console.log('Telegram message sent:', result);
} catch (error) {
console.error('Error sending Telegram message:', error);
}
}
}
return c.text('Webhook processed');
});
C’est ici que nous traitons les données provenant de Helius et envoyons des messages mis en forme à Telegram. Selon votre cas d’usage, vous pouvez personnaliser cette partie pour traiter différents types de transactions ou extraire d’autres informations.
Options de personnalisation
Bien que notre exemple porte sur les ventes de NFT, vous pouvez facilement adapter ce modèle à différents cas d’usage :
- Modifiez
transactionTypeslors de la création du webhook pour suivre différents événements - Modifiez
accountAddressespour surveiller des programmes ou des portefeuilles précis - Adaptez la mise en forme des messages dans l’endpoint
/webhookà vos besoins en matière de données - Ajoutez une logique supplémentaire pour filtrer ou traiter les données reçues
Consultez la documentation sur les webhooks Helius pour découvrir toute la gamme de données et d’événements que vous pouvez suivre. Toutefois, ne vous limitez pas aux seuls événements explicitement définis ! Les webhooks Helius sont extrêmement polyvalents et peuvent suivre une grande variété d’activités on-chain, même celles qui ne sont pas directement analysées ou mentionnées dans notre documentation.
Voici quelques exemples d’événements que vous pourriez suivre :
- Transferts de tokens SPL précis
- Nouveaux déploiements de programmes
- Créations de pools Raydium ou ajouts de liquidité
- Créations de propositions de gouvernance ou votes
- Lancements de candy machines Metaplex
- Créations de marchés Serum
En utilisant ce modèle, vous pouvez créer des bots Telegram adaptés à de nombreuses tâches de surveillance sur Solana, du suivi des événements de protocoles DeFi à celui de l’activité des portefeuilles, et bien plus encore.
Si vous avez lu jusqu’ici, merci ! Nous espérons que ce guide vous a aidé à vous lancer dans la création de votre propre bot Telegram Solana. Pensez à vous abonner à notre newsletter pour ne manquer aucune nouveauté sur Solana. Prêt à aller plus loin ? Découvrez dès aujourd’hui les derniers articles du blog Helius et poursuivez votre parcours sur Solana.
Ressources supplémentaires
Articles associés
Abonnez-vous à Helius
Suivez les dernières actualités du développement sur Solana et recevez une notification à chaque publication


