---
id: document_item.moon-kernel
page_type: documentation_article
title: "Moon Kernel"
description: "Moon Kernel separates the Moonbot client and VPS server components to improve exchange connectivity and reduce latency, and can work with MoonTerminal for strategy and report analysis."
section: documentation
category: "\"Menu\" Button"
url: https://moonbot.pro/documentation/menu-button/moon-kernel?format=md
locale: en
alternate_ru: https://moonbot.pro/ru/documentation/menu-button/moon-kernel?format=md
parent: https://moonbot.pro/documentation/menu-button?format=md
previous: https://moonbot.pro/documentation/menu-button/moon-streamer?format=md
next: https://moonbot.pro/documentation/menu-button/manage-triggers?format=md
status: published
updated_at: 2026-10-19T04:34:22+03:00
---

# Moon Kernel

The **Moon Kernel** module is a client-server technology that separates functionality when executing exchange operations: the **client part (Moonbot Client)** is configured on the user’s local computer, while the **server part (Moonbot Kernel)** is deployed on a dedicated VPS server for trading. Using a VPS for a trading bot is key to ensuring stable automation: the system’s core runs round the clock, and restarting or switching off your home PC does not interrupt the execution of strategies.

This architecture is used not only in automated trading but also in manual trading: it helps to achieve a more stable connection to the exchange and significantly reduce the ping to the exchange, which directly affects the speed at which orders are placed, stop orders are triggered and other exchange operations are carried out. The lower the ping from the VPS to the exchange, the faster trades are executed - this is particularly important in high-frequency trading and when dealing with volatile assets.

Furthermore, for both manual and automated trading, this architecture - featuring the **Moonbot Kernel** server component - is used in conjunction with the **[MoonTerminal](https://github.com/Moonbot-Tech/MoonTerminal)** trading and analytics add-on ([distributed as open source](https://github.com/Moonbot-Tech/MoonTerminal)), which enables users to connect to all VPS servers for trading on which the Moon Kernels are installed, collect data from them regarding strategies, reports, and perform analysis to adjust strategy parameters in order to improve profits. **MoonTerminal** Telegram group (discussions, new features, testing, new releases for Windows and macOS): [https://t.me/moonbotterminal](https://t.me/moonbotterminal)

The Moon Kernel functionality is available in the **PRO version and Free** **version** **of Moonbot** if the **MoonBonus** module is active — a bonus package of additional features provided to users who registered on exchanges using our referral links published on the [MoonBonus](https://moonbot.pro/en/moonbot-pro/modules/moonbonus?format=md) page.

**Terms**:

- **Moonbot Kernel** (“Kernel”) or **Moonbot Server** (“Server”) — an instance of Moonbot installed on a dedicated VPS server for trading and configured as the server-side component with a connection to the exchange. \
  Follow standard VPS recommendations: 1 Moonbot per 1 VPS; to do this, in Moonbot go to **Menu → System settings → System settings** window and enable the **VDS Mode (optimization)** option.
- **Moonbot Client** (“Client”) or **Moonbot Terminal** (“Terminal”) — an instance of Moonbot installed on the user’s local computer, configured as the client-side component with a connection to the Kernel.

To use the **Moon Kernel** architecture, you need to create two copies of the folder with the PRO version of Moonbot:

- one copy place on a dedicated server (VPS for trading) and configure it in Kernel mode;
- another copy place on a local computer and configure it in Client mode.

### Setting up Moon Kernel on the VPS side (Moonbot Kernel)

1\. **On the VPS, open a free UDP port for incoming connections in the Windows firewall.**

To do this, enter **wf.msc** in the **Windows search field** and run it to open the **Windows Defender Firewall with Advanced Security** window.

![Windows search field](https://moonbot.pro/storage/editor-images/Wf.%20msc.jpg)

![Windows search field (dark)](https://moonbot.pro/storage/editor-images/Wf.%20msc.jpg)

In the opened window, in the left panel click **Inbound Rules**, then right-click to open the context menu and select **New Rule…** — the **New Inbound Rule Wizard** window will open:

![New Inbound Rule Wizard window](https://moonbot.pro/storage/editor-images/Inbound%20Rules.jpg)

![New Inbound Rule Wizard window (dark)](https://moonbot.pro/storage/editor-images/Inbound%20Rules.jpg)

In the opened window, select the **Port** option and click **Next**:

![New Inbounded Rule Wizard window](https://moonbot.pro/storage/editor-images/%D0%9E%D0%BF%D1%86%D0%B8%D1%8F%20Port.jpg)

![New Inbounded Rule Wizard window (dark)](https://moonbot.pro/storage/editor-images/%D0%9E%D0%BF%D1%86%D0%B8%D1%8F%20Port.jpg)

Then select the **UDP** option and enter a free UDP port number that you plan to open in the **Specific local ports** field, for example **3000**, and click **Next**:

![New Inbounded Rule Wizard window (picture 2)](https://moonbot.pro/storage/editor-images/%D0%9E%D0%BF%D1%86%D0%B8%D1%8F%20UDP.jpg)

![New Inbounded Rule Wizard window (picture 2) (dark)](https://moonbot.pro/storage/editor-images/%D0%9E%D0%BF%D1%86%D0%B8%D1%8F%20UDP.jpg)

In the next window, make sure the **Allow the connections** option is selected and click **Next**:

![](https://moonbot.pro/storage/editor-images/%D0%9E%D0%BF%D1%86%D0%B8%D1%8F%20Allow%20the%20connections.jpg)

![(dark)](https://moonbot.pro/storage/editor-images/%D0%9E%D0%BF%D1%86%D0%B8%D1%8F%20Allow%20the%20connections.jpg)

Then make sure **all three checkboxes are selected** and click **Next**:

![](https://moonbot.pro/storage/editor-images/Profile.jpg)

![(dark)](https://moonbot.pro/storage/editor-images/Profile.jpg)

Specify a rule name, for example **UDP-3000**, and click **Next**:

![](https://moonbot.pro/storage/editor-images/UDP-3000.jpg)

![(dark)](https://moonbot.pro/storage/editor-images/UDP-3000.jpg)

![](https://moonbot.pro/storage/editor-images/UDP%20%D0%BF%D0%BE%D1%80%D1%82%203000.jpg)

![(dark)](https://moonbot.pro/storage/editor-images/UDP%20%D0%BF%D0%BE%D1%80%D1%82%203000.jpg)

After that, **UDP** port **3000** on the VPS for trading will be **opened**.

If necessary, you should also open the port in your VPS provider account (for example, this is required by Amazon).

**Attention!** Make sure that the open port in Moonbot Kernel on the VPS does not match the port number in its **Settings -> Advanced -> System** field **Listen UDP port**. In our example, port **3000 is opened for Moonbot Kernel**; therefore, **in Moonbot Kernel, the Listen UDP port field should not specify port 3000** - that is, any other port different from this value can be specified in this field. Otherwise, there will be a conflict of occupied ports, and Moonbot Client will not be able to connect to Moonbot Kernel.

2\) Run a copy of the Moonbot PRO version on the VPS as administrator.

Open **Menu → System Settings**, in the **System Settings** window enable the **VDS Mode (optimization)** option, then restart Moonbot.

You can open the **Moon Kernel** settings window via **Menu → Moon Kernel**, or by left-clicking on the **green connection indicator** in the bottom-left corner of the main Moonbot window.

![](https://moonbot.pro/storage/editor-images/Settings.jpg)

![(dark)](https://moonbot.pro/storage/editor-images/Settings.jpg)

The **Info** window will open, and on the bottom line you will see the message **Moon Kernel OFF Settings**, which indicates that Moonbot is currently operating in normal mode and the Moon Kernel functionality is disabled.

Click **Settings** to open the **Moon Proto** window, which contains 2 tabs:

\- The **Settings** tab with Moon Kernel configuration:

![](https://moonbot.pro/storage/editor-images/%D0%92%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0%20Settings%20%D1%81%20%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0%D0%BC%D0%B8%20%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9.jpg)

![(dark)](https://moonbot.pro/storage/editor-images/%D0%92%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0%20Settings%20%D1%81%20%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0%D0%BC%D0%B8%20%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9.jpg)

\- The **Info** tab with informational lines:

![](https://moonbot.pro/storage/editor-images/image10_.jpg)

![(dark)](https://moonbot.pro/storage/editor-images/image10_.jpg)

On the **Settings** tab in **Moonbot Kernel** on a VPS for trading:

1. In the **Port** field, enter the **UDP** port number that you opened earlier (for example, 3000);
2. Select the **IP Version IPv4** option;
3. In the **VPS** **IP** field, enter the **IP** address of the dedicated server;\
   After a successful connection via IPv4, you can later select the IPv6 option and enter the VPS IPv6 address if the provider supports this protocol version, as it improves performance.
4. Select the **V2** option;
5. Enable the **Kernel** **(VPS)** option;
6. Click the **Apply** button to apply the specified settings. \
   You can verify that the selected port is open by clicking the **Test Port** button.\
   The check is performed by pinging our server; if you opened the port but configured an IP whitelist for allowed access, the check will fail — this is not an issue, and in this case you can verify it later by connecting the Client to the Kernel.\
   If everything is configured correctly on the Kernel side, a green message **Server activated on port 3000** will appear (in this example, for port 3000).
7. Click the **New** **Key** button to generate an access key for the Client;
8. Click the **Copy** **Key** button to copy it to the clipboard. The key can be saved in a text file or immediately pasted into the **Moon Proto** window on the Client (local computer).

As a result, the settings in the **Moon Proto** window on the **Settings** and Info tabs on the **Moonbot Kernel** side will look as follows:

![](https://moonbot.pro/storage/editor-images/%D0%9E%D0%BF%D1%86%D0%B8%D1%8F%20Kernel-1774378717.jpg)

![(dark)](https://moonbot.pro/storage/editor-images/%D0%9E%D0%BF%D1%86%D0%B8%D1%8F%20Kernel-1774378717.jpg)

![](https://moonbot.pro/storage/editor-images/Server%20activated%20on%20port-1774378740.jpg)

![(dark)](https://moonbot.pro/storage/editor-images/Server%20activated%20on%20port-1774378740.jpg)

Also in the **Info** window, it will display **VDS Mode: ON** and **Moon Kernel Server Settings**, indicating that VDS mode is enabled and the server-side Moon Kernel functionality is active.

![](https://moonbot.pro/storage/editor-images/%D0%9E%D0%BA%D0%BD%D0%BE%20Info-1774378798.jpg)

![(dark)](https://moonbot.pro/storage/editor-images/%D0%9E%D0%BA%D0%BD%D0%BE%20Info-1774378798.jpg)

### Configuring Moon Kernel on the local computer (Moonbot Client)

To configure a Moonbot instance as a Client, perform the following actions on your local computer:

1\) Run a copy of the Moonbot PRO version as administrator;

2\) Open the **System Settings** window via **Menu → System Settings** and make sure that the **VDS Mode (optimization)** checkbox is not enabled. If the checkbox was enabled and you disabled it, restart Moonbot;

3\) To open the **Moon Kernel settings** window, left-click on the green connection status indicator circle in the lower-left corner of the main Moonbot window.

4\) The **Info** window will open, and on the bottom line you will see the message: **Moon Kernel OFF Settings**, which indicates that Moonbot is currently operating in normal mode and the Moon Kernel functionality is disabled.

5\) Click **Settings** to open the **Moon Proto** window, which contains 2 tabs:

\- The **Settings** tab with Moon Kernel configuration parameters:

![](https://moonbot.pro/storage/editor-images/%D0%92%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0%20Settings-1774379000.jpg)

![(dark)](https://moonbot.pro/storage/editor-images/%D0%92%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0%20Settings-1774379000.jpg)

\- The **Info** tab with informational messages:

![](https://moonbot.pro/storage/editor-images/%D0%92%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0%20Info%20%D1%81%20%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8%20%D1%81%D1%82%D1%80%D0%BE%D1%87%D0%BA%D0%B0%D0%BC%D0%B8-1774379056.jpg)

![(dark)](https://moonbot.pro/storage/editor-images/%D0%92%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0%20Info%20%D1%81%20%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8%20%D1%81%D1%82%D1%80%D0%BE%D1%87%D0%BA%D0%B0%D0%BC%D0%B8-1774379056.jpg)

6\) In the **Settings** tab:

1. Click the **Paste Key** button and paste the key from the clipboard that you previously copied in **Settings** Moonbot Kernel;
2. In the **Port** field, enter the **UDP** port number that you previously opened on the VPS server for trading;
3. Select the **IP Version IPv4** option;
4. In the VPS IP field, enter the IP address of the VPS server;\
   After a successful IPv4 connection, you can later select the **IPv6** option and enter the VPS IPv6 address if your provider supports this protocol version, as this may further speed up data transfer and reduce the ping to the exchange.
5. Select the **V2** option;
6. Enable the **Terminal** checkbox;
7. On the Client side, it is recommended to enable the **Full Proxy** checkbox. \
   Note: \
   the Moon Kernel functionality on the Client side can operate in two modes:
   1. If the **Full Proxy** checkbox is enabled, then everything related to the exchange runs on the VPS for a trading bot on Moonbot Server (Kernel), while on the Client side in the user's Moonbot only the interface (visual display) is handled. In this mode, the Moonbot Client (Terminal) does not interact with the exchange at all. There is no need to whitelist IP addresses for the API keys added to the Moonbot Client (Terminal).
   2. If the **Full Proxy** checkbox is not enabled, then order processing is handled on the VPS in Moonbot Server (Kernel), while everything else (charts, leverage, market deltas) is handled in the Moonbot Client (Terminal).
8. Click **Apply** to apply the specified settings. \
   If everything is configured correctly on the Client side, a green message **Client: Connected!** will appear.

If this message does not appear, then there are two possible reasons:

1. An error in following the instructions. Carefully repeat the setup step by step.
2. Traffic blocking.\
   In this case, if you previously had a connection using the V0 option, you should check the connection using the V1 and V2 options one by one as follows:
   1. First set the **V1** option in the **Settings** of the Kernel on the server; change the UDP port there and then click **Apply** in the **Settings** of the Kernel on the server;
   2. Then do the same in the Client Settings on the local computer;
   3. If this does not help, then set the **V2** option first in the **Settings** of the Kernel on the server; change the UDP port there again and then click **Apply** in the **Settings** of the Kernel on the server.

**Additional check:**

1. Make sure that the access keys in Moonbot Kernel and Moonbot Client are identical.\
   In the **Moon Proto** window, on the **Settings** tab, only the beginning of the key is visible, the full key is not displayed here - this part is only needed to visually confirm that the keys begin the same way;
2. In the **Moon Proto** window, on the **Info** tab of Moonbot Kernel, if the connection between the Kernel and the Client is successfully established, the **R** value (received packets counter) will increase;
3. Symptoms of traffic blocking: **R** increases slightly during the first connection attempt, then does not change. In this case, try connections using the **V1** or **V2** options, changing the UDP port each time you switch options.

**Operational considerations and the impact of ping on trading:**

1. It is not recommended to use VPNs or proxies (the Full Proxy mode should be sufficient).
2. If you still use third-party proxies, then with some of them, for example Proxycap, short connection drops are possible due to that proxy losing connectivity. Moonbot restores the connection automatically within a few seconds.
3. When Moonbot Client is updated on the dedicated server, Moonbot Kernel is updated automatically as well, including updates via the coin search bar in the main window to test and release versions.
4. The local computer on which the Moonbot Client is installed and the VPS server for trading on which the Moonbot Kernel is installed must be set to the same time zone so that the funding time on the Moonbot Client is displayed correctly. Otherwise, the funding time on the Moonbot Client may be displayed as zero and remain unchanged.
5. Several Clients can be connected to a single Kernel.
6. During an auto-update, all Clients connected to a single Kernel are updated.
7. Synchronisation takes place between the Kernel and the Clients for various settings: leverages, V-Stop, triggers (in FullProxy mode), auto-start settings, "do not check position limits" and others.

As a result, if everything is configured correctly, the settings in the **Moon Proto** window on the **Settings** and **Info** tabs on the Client side will look as follows:

![](https://moonbot.pro/storage/editor-images/Full%20Proxy.jpg)

![(dark)](https://moonbot.pro/storage/editor-images/Full%20Proxy.jpg)

![](https://moonbot.pro/storage/editor-images/Client%20Connected.jpg)

![(dark)](https://moonbot.pro/storage/editor-images/Client%20Connected.jpg)

And the **Info** window will display: **VDS Mode: OFF** and **Moon Terminal Settings**, which means that VDS mode is disabled and the client-side functionality of Moon Kernel is connected.

![](https://moonbot.pro/storage/editor-images/VDS%20Mode.jpg)

![(dark)](https://moonbot.pro/storage/editor-images/VDS%20Mode.jpg)

**Displaying and interpreting ping values when working with Moon Kernel**

Furthermore, when using the Moon Kernel features in the **Moonbot Client**, information regarding the ping to the exchange and to the Kernel will be displayed:

![](https://moonbot.pro/storage/editor-images/Moon%20Kernel%20Client%20133%20eng.jpg)

![(dark)](https://moonbot.pro/storage/editor-images/Moon%20Kernel%20Client%20133%20eng.jpg)

In the figure, “**Kernel: 133 / 25 ms**” means:

- the first value 133 is the ping in milliseconds to Moonbot Kernel (one way);
- the second value 25 is the order ping in milliseconds from the VPS itself (from Moonbot Kernel to the exchange).

It is the second figure that is the key indicator of trading speed: the lower the ping to the exchange from a trading VPS, the faster orders are executed and the more reliably stop and limit orders are triggered. When choosing a VPS, it is worth paying attention not only to the CPU and RAM, but also to the geographical proximity of the server to the exchange’s servers: this directly affects the quality and speed of order execution.

### Working with strategies when using the Moon Kernel module

It is not recommended to have more than 100 strategies in one Moonbot.

In both modes (with or without the **Full Proxy** checkbox), strategies operate as follows:

- on the **VPS for trading in Moonbot Kernel**: only strategies with enabled auto-buy **AutoBuy=YES** are executed — when activated, a yellow indicator light appears, as well as MoonShot strategies;
- on the **local computer in Moonbot Client:** only strategies without auto-buy **AutoBuy=NO** — when activated, a yellow indicator light appears, meaning these are detection-only strategies.\
  Exception: Manual MoonHooks (paired strategies Manual+MoonHook) are also processed in the Kernel.

#### The order of light bulb color display in active strategies

- All active strategies in **Moonbot Client** are displayed with **blue lights**;

![](https://moonbot.pro/storage/editor-images/Moonbot%20Client%20light%20strat.png)

![(dark)](https://moonbot.pro/storage/editor-images/Moonbot%20Client%20light%20strat.png)

- All active strategies in **Moonbot Kernel** are displayed with **yellow lights**.

![](https://moonbot.pro/storage/editor-images/Moonbot%20Kernel%20light%20strat.png)

![(dark)](https://moonbot.pro/storage/editor-images/Moonbot%20Kernel%20light%20strat.png)

**Explanation:**

Since all order operations are performed in Moonbot Kernel, strategies that execute trades also run in Moonbot Kernel.

**The “source of truth” for settings is Moonbot Kernel on the VPS.** If you enable a strategy from one Moonbot Client, it will also be enabled on other Moonbot Clients (for example, when launched from different locations or when running two Moonbot Clients simultaneously). If you make changes to a strategy in Moonbot Client, those changes are automatically transferred to Moonbot Kernel, and from there to other Moonbot Clients when they connect to Moonbot Kernel later.

If the strategy is active in the Moonbot Kernel, detects the coin and places orders, then this data is transmitted to the Moon Client for full control over trading.

If you turn off Moonbot Client while Moonbot Kernel continues to operate and execute trades, then after turning Moonbot Client back on, its report will not include the trades that were executed in the Kernel during the period when the Client was offline, meaning that after startup Moonbot Client does not automatically retrieve the report from Moonbot Kernel.

**Practical advice on choosing and using a VPS for a trading bot**

- Choose a VPS for trading with low network latency to the exchange’s servers: look for locations as close as possible to the exchange’s data centres.
- Check the ping to the exchange not only at the time of setup, but also periodically: network load and routes can change, which affects trading stability.
- For high-frequency strategies and a large number of simultaneous trades, choose a VPS with guaranteed CPU resources rather than "best effort" - this reduces the risk of order execution delays.
- Keep an eye on Moonbot updates and time synchronisation: a time discrepancy between the VPS and your local machine can lead to errors in funding time calculations and other time-related metrics.

## Navigation

Path: [Main](https://moonbot.pro/?format=md) / [Documentation](https://moonbot.pro/documentation?format=md) / ["Menu" Button](https://moonbot.pro/documentation/menu-button?format=md) / Moon Kernel

Parent section: ["Menu" Button](https://moonbot.pro/documentation/menu-button?format=md)

Previous: [Moon Streamer](https://moonbot.pro/documentation/menu-button/moon-streamer?format=md)

Next: [Manage Triggers](https://moonbot.pro/documentation/menu-button/manage-triggers?format=md)

## Related

- [Manage Triggers](https://moonbot.pro/documentation/menu-button/manage-triggers?format=md)
- [Log Analyzer](https://moonbot.pro/documentation/menu-button/log-analyzer?format=md)
- [BackTest](https://moonbot.pro/documentation/menu-button/backtest?format=md)
- [Moon News](https://moonbot.pro/documentation/menu-button/moon-news?format=md)
- [Exit](https://moonbot.pro/documentation/menu-button/exit?format=md)
