A smart, profitable, anti-ban automation bot for Valora. Signs in with your Solana wallet, joins the best server your token-hold qualifies for, and farms the game economy autonomously β combat, gathering, quests, crafting, gear upgrades and the on-chain marketplace β all controlled from a clean Telegram interface.
β οΈ Use at your own risk. Automating an online game may violate its terms of service. This project is for educational purposes. You are responsible for how you use it.
- Solana wallet sign-in β passwordless authentication using your wallet key (ed25519 challenge signing). JWT session is cached and auto-refreshed.
- Smart server routing β automatically detects how many gate tokens your wallet holds and joins the highest-tier server you qualify for (e.g. the priority shard at 30,000+ hold), falling back to standard shards otherwise.
- Economy-first brain β a priority scheduler picks the most valuable, safest activity each tick: survival β banking β stat allocation β gear upgrade β combat / crafting / gathering β quests.
- Character progression β auto-allocates stat points on level-up and auto-equips stronger gear so your character keeps getting stronger.
- On-chain marketplace β supports the in-game token economy (auction house, goldβtoken, fees) with strict confirmation gates.
- Multi-account fleet β run a main account plus any number of sub accounts, each a fully isolated agent (own wallet β own sign-in β own session). Generate, fund, launch and sweep sub accounts entirely from Telegram. Subs play on standard servers (100-token gate) with the same smart/profitable brain as main, while main keeps the priority server (30k gate). New subs auto-create their in-game character β the fleet is hands-off after one command.
- Telegram control β full English UI with inline buttons, live notifications (level-ups, gold gains, fights, disconnects), and a plain-language guide.
- Anti-ban & safety-first β human-like pacing/jitter, exponential backoff, automatic reconnects, a global kill-switch, and a single-instance guard so the bot can never accidentally run doubled.
- Zero-mistake design β test-driven (220+ tests), optimistic-locked saves, a dependency-free Solana client with Token-2022 transfers verified against on-chain ground truth, and mandatory Telegram approval for any action that moves on-chain value or spends gold.
curl -fsSL https://raw.githubusercontent.com/rygroup-dev/valora-bot/main/install.sh | bashThis clones the repo into ~/valora-bot, installs dependencies, and creates your
config files from the templates.
cd ~/valora-bot && git pull --ff-only && npm ci && npm testThis pulls the latest bot code, installs the exact locked dependency versions, and verifies the install before you run it.
git clone https://github.com/rygroup-dev/valora-bot.git
cd valora-bot
npm ci
cp .env.example .env
cp data/wallets.json.example data/wallets.json1. Add your wallet(s) β edit data/wallets.json:
[{ "label": "main", "key": "YOUR_BASE58_SECRET_KEY" }]The key accepts a base58 secret key or a JSON byte array. Need a fresh wallet?
node scripts/new-wallet.js mainYour wallet must hold the game's gate token (the minimum to play) before it can sign in. Hold the priority threshold to auto-join the priority server.
2. Set up Telegram β create a bot with @BotFather,
then in .env:
TELEGRAM_BOT_TOKEN=123456:your-bot-token
TELEGRAM_OWNER_IDS=your-numeric-chat-id(Message the bot once and it will tell you your chat id, or use @userinfobot.)
3. Verify sign-in (no gameplay):
npm run loginnpm startThe bot starts in observe mode (read-only) with dry-run on, so it does
nothing destructive until you say so. Open Telegram and send /menu.
sudo cp valora-bot.service /etc/systemd/system/
sudo systemctl enable --now valora-bot
journalctl -u valora-bot -f| Command | What it does |
|---|---|
/menu |
Open the control panel |
/help |
Full plain-language guide |
/status |
What each bot is doing right now |
/balance |
Gold, server tier and wallet |
/go |
Start farming (active mode) |
/observe |
Watch only (read-only) |
/dryrun |
Toggle safe-test mode (simulate actions) |
/log |
Recent activity & events |
/stop |
Emergency stop (kill-switch) |
/resume |
Resume after a stop |
/travel <map> |
Send an agent to another map (e.g. /travel mine1) |
Run one main account that funds and manages many sub accounts. Every sub plays on a standard server (just needs the 100-token gate) with the same brain as main. All money commands move real on-chain value and ask for Approve / Decline first.
| Command | What it does |
|---|---|
/subacc <label> [amount] |
One-shot: generate a sub wallet, send it amount $VALORA from main (default 110), wait for it to confirm, then launch it live on a standard server (it auto-creates its character) |
/genwallet <label> |
Just generate + save a new sub wallet (no funding) |
/sendval <label> <amount> |
Send $VALORA main β sub (auto-creates the sub's token account) |
/sendsol <label> <amount> |
Send SOL main β sub (needed before a sub can /sweep, to pay its own tx fee) |
/sweep <label> [leave] |
Sweep $VALORA sub β main, leaving leave behind (default 100 so the sub keeps playing; 0 drains a retired sub) |
Typical flow: /subacc trader1 β approve β done. To pull profit back later:
/sendsol trader1 0.002 (one-time, so it can pay the fee) then
/sweep trader1.
Requirements: your main wallet needs enough $VALORA to fund each sub (β₯100 each) plus a little SOL to pay the transfer + token-account-creation fees.
All gameplay commands accept an optional wallet label (e.g. /status main,
/log trader1); the default is all wallets.
Recommended first run: keep Safe-test mode ON, tap Start farming, watch the Activity log. When you're happy, turn Safe-test mode OFF to play for real.
MODE=observeby default β connects and watches, sends no writes.DRY_RUN=trueby default β risky writes are logged, not sent.- Confirmation gate β token transfers, withdrawals, marketplace buys, trades, destroys and stat resets all require explicit Telegram approval.
- Single-instance lock β prevents two copies running at once.
- Kill-switch β
/stophalts everything immediately.
Never commit your .env or data/wallets.json β they are git-ignored by default.
src/
config.js environment + constants
util/ logger, jitter/backoff, shard routing, single-instance lock
wallet/ key loading, message/tx signing, multi-wallet store
auth/ wallet sign-in, JWT cache & refresh
net/ REST client, room client (reconnect bus), Solana RPC,
dependency-free on-chain client (SOL + Token-2022 transfers)
game/ world model, combat, jobs, economy, progression
brain/ ROI-gated activity scheduler
safety/ modes, dry-run, kill-switch, confirmation gates
state/ save manager (optimistic lock), key-value store
multi/ account-fleet manager (generate / fund / sweep / launch subs)
telegram/ owner-only control UI + notifications
Agent.js one wallet's full runtime
index.js boot
npm testMIT