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.

Yours

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.

Theirs

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.

Never the same chat. Binding both roles to one group breaks the customer's commands, and only your provider can undo it. Always two separate groups.

Before you start

What you need from your provider

Registration key

Goes to the customer. Looks like NX-05-ABC123-DEF456-…

Backend key

For your backend group. Looks identical to the registration key. Label both immediately.

Your provider, in person

Only they can bind your backend group. They need to be in the group to type the command.

Game accounts

One per line as IGG;UDID;ACCESSKEY, separated by semicolons.

Proxies

One per line as host:port:user:pass, separated by colons. Proxies without a username and password cannot be used.

⚠ Label your keys the moment you get them. The two keys look identical. If you send the customer the backend key by mistake, /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.

Step 1

Create and bind your backend group

1

Make a new private group

Do not reuse the customer's group or another instance's backend group.

2

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.
3

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.
4

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.

Step 2

Load accounts

1

Stop first

Uploading while running is refused.

/stop
2

Send 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.

/uploadbots ✅ Added 40 bots (2 dup, 1 invalid).
3

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.
4

Verify

/poolinfo /listbots
Step 3

Load proxies

1

Still stopped, upload them

Same two ways: paste, or a .txt with the caption exactly /uploadproxies.

/uploadproxies ✅ Added 120 proxies (0 dup, 3 invalid).
2

Confirm the count

/status
Step 4

Hand over the registration key

1

Send the customer the registration key only

Double-check it is not the backend key.

2

They create their group, add the bot, make it admin

3

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 alerts
Step 5

Customer picks the kingdom

1

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...
2

There is a cooldown

One move per minute on most plans, one per 10 minutes on Lite.

Step 6

Start and verify

1

Start it

Anything other than success is a pre-flight refusal listing exactly what to fix.

/start Bots started.
2

Wait 30 to 90 seconds, then check

Bots stagger their logins, so "started" does not mean online yet.

/showbots
3

Read the two status icons per bot

First icon is the heartbeat, second is scan traffic. 🟢 healthy · ⚠️ slow · 🔴 in trouble · 🔵 not running yet.

Blue for the first minute or two is normal. Still blue after about three minutes is a real problem. Green heartbeat with a red second icon means the bot is stuck on the map server, and a /restart usually clears it.

Day to day

Monitoring and keeping it healthy

/showbots

Live health of every scanning bot, with the two status icons. Your main check.

/status

Proxy count, account count, active set and spares.

/poolinfo

Game version, set size, active bot count, scan delay and per-set counts.

/listbots

Every account grouped by set. Set 1 entries are numbered, and those numbers are what /deletebot uses.

/checkduplicates

Finds accounts shared with another instance. Shared accounts kick each other in a loop and eventually get banned. Remove from one side.

/autoreplace on|off

Automatically swap a banned account for a spare. Leave it on.

/replacenow

Replace banned accounts immediately rather than waiting. Also works as /replacebannedbots.

/resetproxylist

Reload 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|off

Whether duplicate-login warnings for the guild chat and scout accounts go to the customer's group, or stay in your backend group only.

/savepool

Write the account pool to disk. Runs automatically after changes, so you rarely need it.

/commands

The built-in command list. Also works as /help. Note it still lists sets 1 to 6, which is wrong.

/start · /stop · /restart

Control scanning. Nothing tells the customer you stopped, so warn them first.

⚠ The "spares" number is not your replacement pool. Replacements come from unused accounts inside the active set, not the spares bucket. If Set 1 holds exactly as many accounts as your active bot count, you have zero replacements available even though /status reports hundreds of spares. Check with /poolinfo that Set 1 is larger than your active count, and top it up with /fillset 1.
Bans. A banned account is detected automatically, dropped from the set, and replaced from the reserve if auto-replace is on. Two limits worth knowing: auto-replace stops working when more than 10 accounts are banned at once, and it needs strictly more free accounts than banned ones. After a big wave, run /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.

🚨 Never use a set number above 2. Only Set 1, Set 2 and Spares exist. The set commands still accept 3 to 6 and reply as if they worked, but /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 1

No 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 30

Deletes 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 confirm

Deletes every account in Spares, Set 1 and Set 2. Requires /stop. Without confirm it only previews.

/wipeproxies confirm

Deletes every proxy. Requires /stop. Follow with /resetproxylist.

/useset 1|2

Stops the agent and does not restart it. Always run /start afterwards or you have silently killed the customer's scanning.

/moveset 2 1

Moves until the target is full or the source is empty. On a normal pool that drains the source completely.

Never add a customer to your backend group.

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.

/uploadbots

Including the .txt version

/uploadproxies

Including the .txt version

/deletebot

Delete Set 1 accounts by number

/wipebots confirm

Delete all accounts

/wipeproxies confirm

Delete 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.

/listbots

Check it worked. The Guild chat and Scout bot rows show the assigned account.

Use the customer's own character for the scout account. It shields, heals, claims gifts and sends guild help as that player, so a throwaway scanner account makes the feature pointless.
⚠ Two silent traps. Neither feature starts at all unless at least 16 bots are running. Below that the account is saved but never logs in, and nothing tells you. And assigning an account removes it from Set 1, so if Set 1 was exactly at your active bot count the next /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

⚠ Deliver and register the same day. An unregistered licence still counts down from the moment it was created. If it runs out before the customer ever registers, registration is refused and the key is dead, so your provider has to issue a new one. This is brutal on short KvK keys, which can leave roughly 36 hours to register.

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.

/commands

Their full command list. Blocked once the subscription expires.

/settings

Alert toggles and might ranges. Group admins only.

/expiry

Time remaining on their subscription.

/accs

Their 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.

/lang

Language picker. It is /lang, not /language.

⚠ Warn them about /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.
Two things they will report as bugs. "The buttons do nothing" usually means the bot is stopped. Typed commands still work when it is off, but inline buttons are blocked. And "the kingdom changed by itself" is almost always another group member: /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 group

You tried /setbackend yourself. Only your provider can run it. Ask them to join the group and type it.

This is a registration key

You 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 expired

Registration 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 set

Active bot count is higher than the accounts in the active set. Run /fillset 1, or lower /setactivecount.

Owner not registered

The customer has not run /register yet.

Uploaded accounts do not appear

They 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 failed

You attached a .txt without the exact caption. The caption must be exactly /uploadbots or /uploadproxies, and the file must be .txt.

Stop the bot first

Run /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 minutes

Usually proxies or a login throttle, not bans. Give it five minutes; if it persists, replace the proxy list and /restart.

🟢🔴 heartbeat fine, no scanning

Stuck on the map server. /restart usually clears it.

Bots keep disconnecting

Run /checkduplicates. An account shared with another instance makes both kick each other in a loop.

Everything is bound but the group is silent

Check 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 down

Run /start. Renewal never restarts the instance by itself.

/restart left it stopped

Restart 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 loaded

The instance is still reading its saved data. Wait a minute and run /start again.

Game Version Mismatch lock is active

The 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 everything

Their 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 anything

A 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 improves

Your 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 green

Scanning is fine, profile fetching is not. Those settings are not yours to change, so ask your provider.

Customer cannot add a 3rd or 4th kingdom

Kingdom 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 hour

Promote 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 /unsetchannel

Neither command exists. The customer uses /unregister in their own group. Backend bindings can only be cleared by your provider.

Customer cannot /unregister their second instance

One 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 dead

Your 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 group

They must type /setbackend in the group themselves. There is no unbind command either.

Creating instances

One instance per customer, created on their side.

Issuing and renewing licences

Including cancelling a subscription and re-issuing a revoked key.

Generating keys

Both registration and backend keys.

Unlocking a stuck registration

Wrong owner account, customer locked out, or a group bound with the wrong key.

Game version updates

A version mismatch blocks startup and only they can clear it.

🚨 Do not run 256 accounts right now. As of 25 July 2026 the 256 account setup is unstable. We are working on optimising it. Until that is done, please run a maximum of 128 accounts. We will message every dedicated seller as soon as it is sorted.