BotForge Documentation
Complete documentation for FortiBlox BotForge
#Getting Started
Welcome to BotForge! This guide will help you create your first Telegram price bot for X1 blockchain tokens. Follow these steps to get started.
#Create Your First Bot
Creating a bot with BotForge is straightforward. Here is the process:
- Connect your wallet - Use a Solana-compatible wallet (Phantom, Solflare, or Backpack) with X1 blockchain support.
- Enter token address - Provide the mint address of the X1 token you want to track.
- Create bot with BotFather - Use Telegram is @BotFather to create a new bot and get your token.
- Configure price cards - Choose a template and customize how alerts will appear.
- Set up alerts - Define thresholds for buy/sell notifications.
- Pay and deploy - Subscribe ($50/month) to activate your bot.
#Wallet Setup Requirements
BotForge requires a Solana-compatible wallet configured for the X1 blockchain:
Supported Wallets
- - Phantom
- - Solflare
- - Backpack
- - Glow
- - Any Solana wallet adapter
Network Configuration
- - Network: X1 Mainnet
- - RPC: https://rpc.mainnet.x1.xyz
- - Chain ID: x1-mainnet
1. Open Phantom wallet
2. Settings > Developer Settings > Change Network
3. Add custom RPC: https://rpc.mainnet.x1.xyz
4. Save and switch to X1 Mainnet#USDC.X Acquisition
USDC.X is the stablecoin used for BotForge payments. Here is how to get it:
Option 1: Bridge from USDC
Use the X1 Bridge to convert USDC (Solana) to USDC.X on X1 blockchain. Visit bridge.x1.xyz
Option 2: DEX Swap
Swap XNT or other X1 tokens for USDC.X on XDEX
#Bot Configuration
Configure your bot to track tokens and send customized alerts.
#Token Address Setup
Every bot tracks a single X1 blockchain token. Enter the mint address (44 characters):
5sN7WB75KLQHKNVkxX6wycRhc75C1NDACiKREiWepZ9nBotForge will automatically fetch token metadata including:
- Token name and symbol
- Decimals
- Supply information
- Token image (from IPFS metadata)
#BotFather Integration
Create your Telegram bot using @BotFather:
1. Open Telegram and search for @BotFather
2. Send /newbot
3. Enter a name for your bot (e.g., "PEPE Price Bot")
4. Enter a username (must end in "bot", e.g., "pepe_price_bot")
5. Copy the API token providedBot Token Format
1234567890:ABCdefGHIjklMNOpqrsTUVwxyz-1234567890#Price Card Templates
Customize how price alerts appear in Telegram chats:
Minimal
BUY $PEPE Amount: 1,000,000 PEPE Value: $150.00 MCap: $1.2M
Detailed
BUY $PEPE Amount: 1,000,000 PEPE Spent: 100 XNT ($150) MCap: $1.2M | FDV: $12M Wallet: 7xKX...gAsU [Explorer Link]
Configuration Options
| Option | Description | Default |
|---|---|---|
| headerEmoji | Custom emoji for header | Token logo |
| showSpent | Show XNT amount spent | true |
| showReceived | Show token amount received | true |
| showMcap | Display market cap | true |
| showFdv | Display fully diluted valuation | true |
| explorerLink | Include link to block explorer | true |
| customFooter | Custom footer text | Empty |
#Alert Settings
Fine-tune which transactions trigger alerts:
| Setting | Description | Default |
|---|---|---|
| minBuyAmount | Minimum USD value for buy alerts | $0 (all buys) |
| minSellAmount | Minimum USD value for sell alerts | $0 (all sells) |
| whaleThreshold | USD threshold for whale alerts | $10,000 |
| cooldownSeconds | Minimum time between alerts | 5 seconds |
#Bot Commands
Your bot responds to these commands in Telegram chats:
#/start
/startAny userInitialize the bot in a chat and begin receiving price alerts. The bot will register this chat for notifications.
/startBot responds with welcome message and starts sending alerts#/price
/priceAny userGet the current price and market data for the tracked token.
/priceReturns: $PEPE: $0.00001234 | MCap: $1.2M | 24h: +15.5%#/ca
/caAny userDisplay the contract address (token mint address) for easy copying.
/caReturns: 5sN7WB75KLQHKNVkxX6wycRhc75C1NDACiKREiWepZ9n#/info
/infoAny userShow detailed token information including supply, authorities, and metadata.
/infoReturns full token details with links#/stats
/statsAny userDisplay bot statistics including alerts sent, active chats, and uptime.
/statsReturns: Alerts: 1,234 | Chats: 5 | Uptime: 7d 12h#/mute and /unmute
/muteAdmin onlyTemporarily stop price alerts in the current chat. Use /unmute to resume.
/mute or /unmute/mute - Bot stops sending alerts; /unmute - Alerts resume#/settings
/settingsAdmin onlyView and modify bot settings for this chat (thresholds, display options).
/settings [option] [value]/settings minBuy 100 - Set minimum buy alert to $100#/help
/helpAny userDisplay all available commands and their usage.
/helpReturns list of all commands with descriptions#API Reference
BotForge provides REST APIs for advanced integrations. Full documentation available at API.md
#Orchestrator API
Base URL: http://localhost:3001 (dev) or http://orchestrator:3001 (Docker)
/healthHealth check endpoint
{
"status": "ok",
"service": "orchestrator"
}/config/:botIdFetch bot configuration including card template and alert settings
| Name | Type | Description |
|---|---|---|
botId | string | UUID of the bot |
{
"tokenAddress": "5sN7WB...",
"tokenSymbol": "PEPE",
"cardTemplate": { ... },
"alertSettings": { ... }
}/bots/:botId/deployDeploy a bot container
| Name | Type | Description |
|---|---|---|
botId | string | UUID of the bot |
{
"success": true,
"status": "deployed",
"containerId": "abc123..."
}/bots/:botId/stopStop a running bot container
| Name | Type | Description |
|---|---|---|
botId | string | UUID of the bot |
{
"success": true,
"status": "stopped"
}/bots/:botId/logsFetch bot container logs
| Name | Type | Description |
|---|---|---|
botId | string | UUID of the bot |
tail | number | Number of lines (default: 100) |
#Price Engine API
Base URL: http://localhost:3002 (dev) or http://price-engine:3002 (Docker)
/token/:addressFetch complete token metadata from Token-2022 extensions and IPFS
| Name | Type | Description |
|---|---|---|
address | string | Token mint address (base58) |
{
"address": "5sN7WB...",
"name": "BLACK JACK",
"symbol": "JACK",
"decimals": 9,
"supply": "1000000000000000000",
"imageUrl": "https://...",
"isToken2022": true
}/price/:addressGet current price and market data for a token
| Name | Type | Description |
|---|---|---|
address | string | Token mint address |
{
"priceUsd": 0.00001234,
"marketCap": 12340,
"fdv": 12340000,
"volume24h": 5678.90,
"change24h": 15.5
}/subscribeSubscribe a bot to receive transaction alerts
| Name | Type | Description |
|---|---|---|
botId | string | UUID of the bot |
tokenAddress | string | Token to track |
{
"success": true,
"message": "Subscribed to 5sN7WB..."
}#WebSocket Protocol
Real-time transaction updates via WebSocket connection:
const ws = new WebSocket('ws://localhost:3002');
// Subscribe to token
ws.send(JSON.stringify({
type: 'subscribe',
tokenAddress: '5sN7WB75KLQHKNVkxX6wycRhc75C1NDACiKREiWepZ9n'
}));
// Handle messages
ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
if (msg.type === 'transaction') {
console.log(`${msg.data.type}: ${msg.data.amountToken} ${msg.data.tokenSymbol}`);
}
};Transaction Alert Format
{
"type": "transaction",
"data": {
"type": "buy",
"tokenAddress": "5sN7WB...",
"tokenSymbol": "JACK",
"amountToken": "1000000.00",
"amountXnt": "100.5",
"amountUsd": 10.05,
"walletAddress": "7xKX...",
"txSignature": "5VER...",
"marketCap": 12340,
"timestamp": "2026-01-24T10:30:00.000Z"
}
}