High-level demo with a production-style split: a low-latency Rust executor for the hot-path and a flexible Node.js/TypeScript orchestrator for event ingestion, heuristics, and coordination.
| Platform | Link |
|---|---|
| 📱 Telegram | t.me/novustch |
| wa.me/14105015750 | |
| 💬 Discord | discordapp.com/users/985432160498491473 |
Feel free to reach out for implementation assistance or integration support.
- Rust executor (Actix + ethers-rs): minimal, deterministic hot-path that builds, signs, and submits swaps (e.g.,
swapExactETHForTokensSupportingFeeOnTransferTokens). - Node orchestrator (TypeScript): listens to on-chain events (e.g.,
PairCreated), performs pre-buy heuristics/safety checks, batches requests (bundler), monitors volume, and sends execution requests to the executor. Integrates with Telegram for notifications.
This separation keeps the execution path fast and predictable in Rust while enabling rapid iteration and richer tooling in Node.js.
- Pair discovery and liquidity event monitoring
- Pre-buy safety checks (ownership, transfer simulation, ERC-20 metadata,
getAmountsOutvalidation) - Volume bot: BNB volume monitoring with alerting and automated bundler triggers
- Bundler: batch multiple buy tasks and dispatch concurrently to the executor
- Telegram notifications: high-volume alerts, bundler success/failure, and pre-buy results
- Node.js 16+ and npm
- Rust toolchain (stable) if building the executor from source
- BSC testnet (or fork) with both WS and HTTP RPC endpoints
- Copy example environment files and edit values (never commit secrets):
node-orchestrator/.env.example→node-orchestrator/.env- Create an executor
.envif your executor reads configuration from env
- Ensure your RPC endpoints and test keys are valid for your environment.
cd node-orchestrator
npm ci
npm run build
# Development
npm run dev
# Production (after build)
npm startThe orchestrator uses EXECUTOR_URL to post execution requests to the Rust executor.
cd rust-executor
cargo build --release
# Run the built binary (example path)
./target/release/rust-executor
# Or run directly in dev
cargo run --releaseThe executor exposes a simple HTTP API to receive buy requests from the orchestrator.
Copy .env.example → .env and edit the values. Never commit secrets.
Example (node-orchestrator/.env):
WS_RPC=wss://bsc-testnet.example/ws
HTTP_RPC=https://bsc-testnet.example
PRIVATE_KEY=0xYOUR_TESTNET_PRIVATE_KEY
FACTORY_ADDRESS=0xCA143Ce32Fe78f1f7019d7d551a6402fC5350c73
ROUTER_ADDRESS=0x6725F303b657a9451d8BA641348b6761A6CC7a17
WBNB_ADDRESS=0x...
EXECUTOR_URL=http://127.0.0.1:8080
# Demo knobs
BUY_AMOUNT_BNB=0.02
SLIPPAGE=0.30
DEADLINE_SECS=60
# Volume Bot
VOLUME_WINDOW_SECS=60
VOLUME_ALERT_THRESHOLD_BNB=1.0
# Bundler
BUNDLER_CONCURRENCY=3
# Telegram Notifier
TELEGRAM_BOT_TOKEN=123456:ABCDEF
TELEGRAM_CHAT_ID=987654321- Endpoint:
POST /buy - Headers:
Content-Type: application/json
Example request body:
{
"to": "0x...",
"amountEth": "0.02",
"slippage": 0.3,
"deadlineSecs": 60,
"privateKey": "0x..."
}The executor returns JSON with a success flag and transaction hash or an error message.
- Keep the hot-path (build/sign/submit) minimal and deterministic in Rust.
- Put business logic, heavy checks, and experimentation in the Node orchestrator or separate services.
- Suggested CI:
- Rust:
cargo fmt,cargo clippy,cargo test, release builds for production images - Node:
npm ci,npm run lint,npm run build, unit tests for pre-checks and bundler
- Rust:
- Containerize both services and inject secrets at runtime. Do not bake secrets into images.
node-orchestrator/— TypeScript orchestrator: event listeners, bundler, Telegram notifierrust-executor/— Actix + ethers-rs executor binary for signing and sending transactionsassets/— images used in this README
No license file is included. Add a LICENSE (e.g., MIT/Apache-2.0) if you plan to open-source.

