Dedicated guide
Running Onyx for your customers
Everything you do as a dedicated seller happens in Telegram. You get a private backend group that controls one customer's instance: load accounts and proxies, start and stop scanning, watch bot health, and swap out banned accounts. No dashboard, no server access.
The idea
Two groups, two keys, one instance
Every customer you sell to gets their own instance. That instance is controlled from two separate Telegram groups, and each group is unlocked by its own key.
The backend group
A private group only you are in. This is your control panel: accounts, proxies, start and stop, bot health. Unlocked with the backend key, which your provider types for you.
The customer's group
The customer's own group where alerts land and they run their commands. Unlocked with the registration key, which they type themselves.
Before you start
What you need from your provider
Registration keyGoes to the customer. Looks like NX-05-ABC123-DEF456-…
Backend keyFor your backend group. Looks identical to the registration key. Label both immediately.
Your provider, in personOnly they can bind your backend group. They need to be in the group to type the command.
Game accountsOne per line as IGG;UDID;ACCESSKEY, separated by semicolons.
ProxiesOne per line as host:port:user:pass, separated by colons. Proxies without a username and password cannot be used.
/register accepts it without any error, their group binds with the wrong key, and you are left holding a key that will not work. Recovery means the customer runs /unregister and your provider re-issues.Setup
From two keys to a scanning customer
Work through these in order. Each step depends on the one before it.
Create and bind your backend group
Make a new private group
Do not reuse the customer's group or another instance's backend group.
Add the Onyx bot and make it admin
Without admin it cannot rename the group and will remind you hourly.
Please make the bot admin of this group to function normally.Add your provider and ask them to bind it
They type the backend command. You cannot run it yourself, and if you try you just get a refusal.
/setbackend {backend key} ✅ Backend group bound. Here you can run /uploadbots, /uploadproxies, /poolinfo, /savepool, /start, /stop.Check the group title
Within a few minutes the bot renames the group, something like [05-TG] Onyx Backend | TAG | 3x | 30 Days. That title is your only licence countdown, so learn to read it.
Load accounts
Stop first
Uploading while running is refused.
/stopSend the accounts
Small lists: type the command then paste accounts on the lines below it. Big lists: attach a .txt file with the caption set to exactly /uploadbots.
Read the follow-up message
A second reply tells you the pool was resized. This overwrites settings you may have chosen.
Auto-sized: 32 active bots, set size 300.Verify
/poolinfo /listbotsLoad proxies
Still stopped, upload them
Same two ways: paste, or a .txt with the caption exactly /uploadproxies.
Confirm the count
/statusHand over the registration key
Send the customer the registration key only
Double-check it is not the backend key.
They create their group, add the bot, make it admin
They type the command themselves
It must be typed in their group, not a private chat.
/register {registration key} ✅ Activated. Then: 1. Move your kingdom 2. View all commands 3. Set alertsCustomer picks the kingdom
They set it in their own group
Plain number, no K. Valid range is 1 to 2016. K70 and K2000 are event-only and blocked.
/move 45 ⏳ Processing kingdom move to K45...There is a cooldown
One move per minute on most plans, one per 10 minutes on Lite.
Start and verify
Start it
Anything other than success is a pre-flight refusal listing exactly what to fix.
/start Bots started.Wait 30 to 90 seconds, then check
Bots stagger their logins, so "started" does not mean online yet.
/showbotsRead the two status icons per bot
First icon is the heartbeat, second is scan traffic. 🟢 healthy · ⚠️ slow · 🔴 in trouble · 🔵 not running yet.
/restart usually clears it.Day to day
Monitoring and keeping it healthy
/showbotsLive health of every scanning bot, with the two status icons. Your main check.
/statusProxy count, account count, active set and spares.
/poolinfoGame version, set size, active bot count, scan delay and per-set counts.
/listbotsEvery account grouped by set. Set 1 entries are numbered, and those numbers are what /deletebot uses.
/checkduplicatesFinds accounts shared with another instance. Shared accounts kick each other in a loop and eventually get banned. Remove from one side.
/autoreplace on|offAutomatically swap a banned account for a spare. Leave it on.
/replacenowReplace banned accounts immediately rather than waiting. Also works as /replacebannedbots.
/resetproxylistReload proxies from disk. No stop needed.
/mapspeed {ms}How fast the bots scan the map, in milliseconds. Minimum 1500. Higher is slower and safer. Also works as /setmapscandelay.
/setactivecount {n}How many bots actually scan. Only these values work: 1, 2, 4, 8, 16, 32, 64, 128. It cannot be higher than the number of accounts in the active set, or /start refuses. See the note at the bottom about 256.
/setsetsize {n}How many accounts a set can hold. This is the ceiling /fillset and /moveset fill up to. Any upload pushes it back to at least 300.
/loginalerts on|offWhether duplicate-login warnings for the guild chat and scout accounts go to the customer's group, or stay in your backend group only.
/savepoolWrite the account pool to disk. Runs automatically after changes, so you rarely need it.
/commandsThe built-in command list. Also works as /help. Note it still lists sets 1 to 6, which is wrong.
/start · /stop · /restartControl scanning. Nothing tells the customer you stopped, so warn them first.
/status reports hundreds of spares. Check with /poolinfo that Set 1 is larger than your active count, and top it up with /fillset 1./replacenow and expect to upload fresh accounts.Read before using
Commands that can destroy accounts
Nothing on this page can be undone, and there is no backup. Always keep your own offline copy of the account and proxy lists.
/fillset 3 and /moveset 1 3 permanently delete the accounts they move. There is no recovery except re-uploading your original list. /useset 3 and above will also brick startup until you run /useset 1./clearset 1No confirmation prompt. Permanently discards that whole set. Accounts are not returned to Spares. To empty Set 1 safely use /moveset 1 2 instead.
/deletebot 5 12 30Deletes Set 1 accounts by their row number, not by IGG. Requires /stop. Numbers shift after every deletion, so put them all in one command and re-run /showbots before the next one.
/wipebots confirmDeletes every account in Spares, Set 1 and Set 2. Requires /stop. Without confirm it only previews.
/wipeproxies confirmDeletes every proxy. Requires /stop. Follow with /resetproxylist.
/useset 1|2Stops the agent and does not restart it. Always run /start afterwards or you have silently killed the customer's scanning.
/moveset 2 1Moves until the target is full or the source is empty. On a normal pool that drains the source completely.
Quick reference
Commands that need /stop first
These refuse while the bot is running. The refusal always talks about uploading, even when you are doing something else.
/uploadbotsIncluding the .txt version
/uploadproxiesIncluding the .txt version
/deletebotDelete Set 1 accounts by number
/wipebots confirmDelete all accounts
/wipeproxies confirmDelete all proxies
/setguildchat {igg}Assign the guild-chat account
/setscoutbot {igg}Assign the scout account
Extras
Guild chat and scout accounts
Both must already be in the pool. Upload them first, then stop the bot, assign, and restart.
/setguildchat {igg}The account that posts alerts into in-game guild chat.
/setscoutbot {igg}The account that scouts, front tests, shields itself, heals and claims gifts.
/listbotsCheck it worked. The Guild chat and Scout bot rows show the assigned account.
/start fails with "not enough bots" and nothing connects the two events. Run /fillset 1 after assigning. The scout account also has to be switched on by the customer from their own /scoutbot menu.Licensing
Expiry and renewal
Their side
What the customer runs, and what they will ask you
Customer commands only work in their group. Typing them in your backend group just returns "Unknown command", and the same happens the other way round.
/commandsTheir full command list. Blocked once the subscription expires.
/settingsAlert toggles and might ranges. Group admins only.
/expiryTime remaining on their subscription.
/accsTheir view of scan health. A couple of slow bots on your side shows here as "🟡 need attention", so expect a message after any ban wave.
/langLanguage picker. It is /lang, not /language.
/resetsettings. Confirming it also deletes every linked kingdom and its routing, and the confirmation text does not mention that. A customer who only wanted to reset alerts will lose all their extra kingdom links and you will have to walk them through re-linking./move is not restricted to admins, so anyone in their group can retarget the whole instance.Troubleshooting
The failures you will actually hit
Only an operator can bind a backend groupYou tried /setbackend yourself. Only your provider can run it. Ask them to join the group and type it.
This is a registration keyYou used the wrong key. The backend key is the other one. If the customer already registered with it, they must /unregister and your provider re-issues.
Licence is invalid or expiredRegistration is refused. The licence ran out before the customer registered, or was never issued. Only your provider can fix it.
Kingdom not set/start is blocked. Only the customer can fix this, with /move in their group. There is no backend command for it.
Not enough bots in the current setActive bot count is higher than the accounts in the active set. Run /fillset 1, or lower /setactivecount.
Owner not registeredThe customer has not run /register yet.
Uploaded accounts do not appearThey land in Spares first. Run /fillset 1 to pull them into the scanning set.
Every account came back "invalid"You used colons instead of semicolons. Accounts are IGG;UDID;ACCESSKEY; only proxies use colons.
❌ Licence update failedYou attached a .txt without the exact caption. The caption must be exactly /uploadbots or /uploadproxies, and the file must be .txt.
Stop the bot firstRun /stop, do the operation, then /start.
Re-uploaded proxies all show as "dup"Proxies are deduplicated on host and port only, ignoring credentials. To rotate passwords you must /wipeproxies confirm first, then upload.
Bots stay 🔵 after several minutesUsually proxies or a login throttle, not bans. Give it five minutes; if it persists, replace the proxy list and /restart.
🟢🔴 heartbeat fine, no scanningStuck on the map server. /restart usually clears it.
Bots keep disconnectingRun /checkduplicates. An account shared with another instance makes both kick each other in a loop.
Everything is bound but the group is silentCheck the bot is still admin of the group, and that you are typing in the bound backend group rather than another chat.
Renewed but still downRun /start. Renewal never restarts the instance by itself.
/restart left it stoppedRestart stops first, then re-runs the full pre-flight. If any check fails in between it stays down. Always re-check /showbots after a restart.
State not loadedThe instance is still reading its saved data. Wait a minute and run /start again.
Game Version Mismatch lock is activeThe game updated and the bot is locked until the version is set. You cannot clear this. Stop retrying and ask your provider to update the version and start it.
Customer's group answers "Unknown command" to everythingTheir group was bound as a backend group by mistake, so it now expects backend commands. Only your provider can undo it, and then a separate group has to be used for backend.
Spares dropped to 0 and no set gained anythingA set command was run with a number above 2 and the accounts were deleted. There is no recovery. Re-upload from your own copy of the list.
Dead after switching sets, /showbots empty/useset stops the agent, so run /start. Also check /poolinfo shows the current set as 1 or 2.
/replacenow runs but nothing improvesYour reserve is empty even if spares look high. Run /poolinfo: if Set 1 equals your active count, run /fillset 1 or lower /setactivecount, then /restart. The reserve is only worked out when the agent starts.
/info, /gear or /find stopped, but bots are greenScanning is fine, profile fetching is not. Those settings are not yours to change, so ask your provider.
Customer cannot add a 3rd or 4th kingdomKingdom slots come from your bot count, not their plan. Raise /setactivecount if Set 1 has the accounts, then /restart.
"Please make the bot admin" every hourPromote the bot to admin. Do not rename the group afterwards, the bot rewrites the title and that title is your licence countdown.
Told to run /unsetgroup or /unsetchannelNeither command exists. The customer uses /unregister in their own group. Backend bindings can only be cleared by your provider.
Customer cannot /unregister their second instanceOne Telegram account owning two instances always resolves to the first. Ask your provider to clear it, and use a separate account per instance from then on.
"Already linked to another backend group" but that group is deadYour provider clears it from their side. If the old group still exists, running the bind again in that same chat also works.
Not yours to do
What only your provider can do
None of these have a reseller command. If you need one, ask.
Binding your backend groupThey must type /setbackend in the group themselves. There is no unbind command either.
Creating instancesOne instance per customer, created on their side.
Issuing and renewing licencesIncluding cancelling a subscription and re-issuing a revoked key.
Generating keysBoth registration and backend keys.
Unlocking a stuck registrationWrong owner account, customer locked out, or a group bound with the wrong key.
Game version updatesA version mismatch blocks startup and only they can clear it.