> This is part 1 of 2 of the full documentation (pages 1–100 of 155).
> The content is paginated: fetch every part to see all of it.
> Next part: https://docs.goodcrypto.app/llms-full.txt/1
> Page index: https://docs.goodcrypto.app/llms.txt

# What is goodcryptoX 3.0

Download goodcryptoX [for Mac](https://goodcrypto.app/download/mac?utm_source=docs\&utm_medium=page\&utm_campaign=home-mac) · [for Windows](https://goodcrypto.app/download/windows?utm_source=docs\&utm_medium=page\&utm_campaign=home-windows) · [for Linux](https://goodcrypto.app/download/linux?utm_source=docs\&utm_medium=page\&utm_campaign=home-linux) · or set it up on a [server](/goodcryptox-3.0/set-up-on-a-server) or on a [NAS](/goodcryptox-3.0/set-up-on-a-nas), and use it from any computer or your phone.

[Why we moved](/#why-we-moved) · [What it is](/#what-it-is) · [Roadmap](/#roadmap) · [How it works](/#how-it-works) · [Secure and free to run](/#secure-and-free-to-run) · [Set up on your Mac](/goodcryptox-3.0/set-up-on-your-mac) · [Set up on Windows](/goodcryptox-3.0/set-up-on-windows) · [Set up on Linux](/goodcryptox-3.0/set-up-on-linux) · [Set up on a NAS](/goodcryptox-3.0/set-up-on-a-nas) · [Set up on a server](/goodcryptox-3.0/set-up-on-a-server) · [Phone access](/goodcryptox-3.0/phone-access) · [Telegram alerts](/goodcryptox-3.0/telegram-alerts) · [Moving](/goodcryptox-3.0/moving-goodcryptox)

## Why we moved

goodcryptoX ran on our servers: the candles you saw came from our servers, your orders and bots lived there. That business model was not sustainable, and 2.0 was shut down. You asked us to bring it back, so we built goodcryptoX 3.0, a version you run yourself. It needs no servers of ours, so it is sustainable, and you do not depend on us: once installed, it works for you even if we disappeared tomorrow. We develop it AI-first.

## What it is

goodcryptoX 3.0 is goodcryptoX self-hosted: it runs on your machine, or on a server you rent, and it is yours to run. For now, in the beta, we start with Hyperliquid: manual trading and the DCA bot. More will follow.

What each version brings is in the release notes: Settings › General › Version history in the app, and [goodcryptoX's releases](https://github.com/GoodCryptoApp/gcx/releases).

This is goodcryptoX 3.0 beta: we fix what you find as it comes, and updates come often. Once installed, on your Mac or on a server, it keeps itself up to date: new versions install by themselves, nothing for you to do. Support is where it always was: [t.me/goodcrypto](https://t.me/goodcrypto).

## Roadmap

We want to bring back everything we built in 2.0, and much more: with AI-accelerated development, the features that sat on the roadmap for years. The roadmap is public: [goodcrypto.app/roadmap](https://goodcrypto.app/roadmap?utm_source=docs\&utm_medium=page\&utm_campaign=roadmap-3-0). You vote by burning GOOD: upvote or downvote the ideas on the board, or add your own, and we shape our work by it.

## How it works

goodcryptoX trades only while it runs, so once an order or a bot is in, you want it running day and night. Where it runs is up to you, and you can change your mind at any time.

The easy way to start is your Mac: install it, connect an account, see it work. A desktop Mac that is rarely off, with a reboot now and then, can be goodcryptoX's home for good. A laptop that travels and sleeps is a place to start, not to stay: while the computer is off or asleep, goodcryptoX is off too, and your bots go blind. Orders resting on the exchange still fill. A short break is fine: when the computer is back, goodcryptoX reads every position, order and fill and catches up.

When you are ready, move it to a [NAS at home](/goodcryptox-3.0/set-up-on-a-nas) or a [rented server](/goodcryptox-3.0/set-up-on-a-server): one file, a few minutes, accounts and bots included ([Moving goodcryptoX](/goodcryptox-3.0/moving-goodcryptox)). Or start there: any computer sets up a server or a NAS, Windows and Linux included, and so does your phone alone.

Wherever it runs, you use it in a browser, and its notifications reach you in Telegram. On your Mac, click the icon. On a server, open the first link once, then my.goodcrypto.app ([more](/goodcryptox-3.0/set-up-on-a-server#sign-in)).

## Secure and free to run

Free to run: no subscription, no limits. The one charge is 0.03 % of each filled trade goodcryptoX places for you (on spot, of each sell), collected by Hyperliquid on top of its own fees ([Terms of service](/legal/terms-of-service)).

Your keys stay on your machine. They can trade, never withdraw.

## Set up on your Mac

Steps for your Mac: [Set up on your Mac](/goodcryptox-3.0/set-up-on-your-mac).

## Set up on Windows

Steps for a Windows PC: [Set up on Windows](/goodcryptox-3.0/set-up-on-windows).

## Set up on Linux

Steps for a Linux desktop: [Set up on Linux](/goodcryptox-3.0/set-up-on-linux).

## Set up on a NAS

Steps for a NAS at home: [Set up on a NAS](/goodcryptox-3.0/set-up-on-a-nas).

## Set up on a server

Steps for a rented server: [Set up on a server](/goodcryptox-3.0/set-up-on-a-server).

## Phone access

Wherever it runs, your phone sees and does everything: pair it once in Settings › Devices, then open my.goodcrypto.app ([Phone access](/goodcryptox-3.0/phone-access)).

## Telegram alerts

Alerts reach you in your own Telegram bot, with buttons to act on them ([Telegram alerts](/goodcryptox-3.0/telegram-alerts)).


# Set up on your Mac

macOS 13.5 or later, Apple silicon or Intel.

{% hint style="warning" %}
**goodcryptoX trades only while this Mac is on and online.** It watches your orders and bots while it runs. A short break is fine: a dropped connection for a few minutes, a restart of the app or of the Mac, and goodcryptoX catches up when it is back. If this Mac is not normally on day and night, run goodcryptoX on a [NAS at home](/goodcryptox-3.0/set-up-on-a-nas) or a [rented server](/goodcryptox-3.0/set-up-on-a-server) instead: set it up once, step by step, then use it the same way from your browser or your phone, and never worry about a missed order. You can start here and [move it later](/goodcryptox-3.0/moving-goodcryptox) in one file.
{% endhint %}

## Start goodcryptoX

1. [Download goodcryptoX](https://goodcrypto.app/download/mac?utm_source=docs\&utm_medium=page\&utm_campaign=setup-mac) and open the `.dmg`.
2. Drag **goodcryptoX** onto **Applications**, then double-click **goodcryptoX** in the same window.
3. goodcryptoX appears in the menu bar at the top right, and your browser opens it. **Set up goodcryptoX** on the Dashboard walks you through the rest: your exchange accounts, then your Telegram bot.

<details>

<summary>If macOS asks before opening it</summary>

The first time, macOS says goodcryptoX was downloaded from the internet and that Apple checked it: choose **Open**. You do this once. If an older goodcryptoX is installed, quit it first (its menu, **Quit goodcryptoX**) and choose **Replace**. If your Mac asks for an administrator password to copy it, use the Applications folder in your home folder instead.

</details>

The dot on goodcryptoX's mark in the menu bar says how things stand: green, all is well; yellow, something to look at; red, something needs you now. goodcryptoX starts when you log in and keeps running with the browser closed. With **Keep the Mac awake** on (Settings › General › Installation), it keeps a plugged-in Mac from sleeping.

## Another browser

To use goodcryptoX in another browser on this Mac, type localhost:8128 in its address bar and press Unlock. If that address does not open, choose Copy sign-in link in the goodcryptoX menu and paste it there.

## Add a phone or another computer

Your phone and your other computers connect from Settings › Devices › **Add a device** ([Phone access](/goodcryptox-3.0/phone-access)).


# Set up on Windows

Windows 10 (version 1903 or later) or Windows 11, 64-bit, including Windows 11 on Arm. One download for every Windows PC.

{% hint style="warning" %}
**goodcryptoX trades only while this PC is on and online.** It watches your orders and bots while it runs. A short break is fine: a dropped connection for a few minutes, a restart of the app or of the PC, and goodcryptoX catches up when it is back. If this PC is not normally on day and night, run goodcryptoX on a [NAS at home](/goodcryptox-3.0/set-up-on-a-nas) or a [rented server](/goodcryptox-3.0/set-up-on-a-server) instead: set it up once, step by step, then use it the same way from your browser or your phone, and never worry about a missed order. You can start here and [move it later](/goodcryptox-3.0/moving-goodcryptox) in one file.
{% endhint %}

## Start goodcryptoX

1. [Download goodcryptoX](https://goodcrypto.app/download/windows?utm_source=docs\&utm_medium=page\&utm_campaign=setup-windows) and open it. If your browser says the file is not commonly downloaded, choose to keep it.
2. Setup needs no administrator password: choose **Install**.
3. goodcryptoX appears by the clock, and your browser opens it. **Set up goodcryptoX** on the Dashboard walks you through the rest: your exchange accounts, then your Telegram bot.

<details>

<summary>If Windows says it protected your PC</summary>

goodcryptoX for Windows is not signed yet. Windows will say it protected your PC: choose **More info**, then **Run anyway**. If Windows says Smart App Control blocked goodcryptoX, this PC blocks every unsigned program and goodcryptoX cannot be installed on it until the signed version ships.

</details>

Windows may tuck the goodcryptoX icon under the arrow by the clock: drag it next to the clock to keep it in sight. Its menu has **Open the dashboard**, **Copy sign-in link**, the version and **Quit goodcryptoX**.

goodcryptoX updates itself, as on a Mac.

goodcryptoX starts when you log in and keeps running with the browser closed. To turn that off: Settings › General › **Start goodcryptoX when I log in**, or Windows Settings › Apps › Startup. **Quit goodcryptoX** stops it properly: it finishes what it is doing first.

## Your data

goodcryptoX keeps its data in `%LOCALAPPDATA%\GCX`, and the program in `%LOCALAPPDATA%\Programs\GCX`.

## Removing goodcryptoX

Windows Settings › Apps, then goodcryptoX › **Uninstall**. goodcryptoX stops properly first. Your data stays in `%LOCALAPPDATA%\GCX`: delete that folder yourself to delete your data too. Orders and positions on the exchange are not affected.


# Set up on Linux

A Linux desktop, x64 or arm64, with systemd.

{% hint style="warning" %}
**goodcryptoX trades only while this computer is on and online.** It watches your orders and bots while it runs. A short break is fine: a dropped connection for a few minutes, a restart of the app or of the computer, and goodcryptoX catches up when it is back. If this computer is not normally on day and night, run goodcryptoX on a [NAS at home](/goodcryptox-3.0/set-up-on-a-nas) or a [rented server](/goodcryptox-3.0/set-up-on-a-server) instead: set it up once, step by step, then use it the same way from your browser or your phone, and never worry about a missed order. You can start here and [move it later](/goodcryptox-3.0/moving-goodcryptox) in one file.
{% endhint %}

## Start goodcryptoX

1. [Download goodcryptoX](https://goodcrypto.app/download/linux?utm_source=docs\&utm_medium=page\&utm_campaign=setup-linux). One file runs on x64 and on ARM computers.
2. Unpack it and install:

   ```
   tar -xzf goodcryptoX-linux.tar.gz
   cd gcx-*-linux
   ./gcx install
   ```
3. goodcryptoX starts and your browser opens it. **Set up goodcryptoX** on the Dashboard walks you through the rest: your exchange accounts, then your Telegram bot.

`./gcx install` is safe to run again. It puts the program in `~/.local/opt/gcx`, the `gcx` command in `~/.local/bin`, and your data in `~/.local/share/gcx`.

goodcryptoX starts when you log in and keeps running with the browser closed. **goodcryptoX** in the applications menu opens the panel, signed in; `gcx open` does the same from a terminal. If goodcryptoX stops unexpectedly it is started again within about 10 seconds.

## The tray

Where your desktop shows tray icons (KDE, or GNOME with the AppIndicator extension), goodcryptoX's icon is there while it runs. Its menu says how goodcryptoX is doing and has **Open the dashboard** and **Quit goodcryptoX**.

## The key store

The secret that unlocks your API wallet keys is kept in your desktop's keyring (the Secret Service: GNOME Keyring, KDE Wallet and others). Connecting your first account needs a graphical login with the keyring unlocked.

## Another browser

`gcx open --print` prints a signed-in link to paste into another browser.

## Add a phone or another computer

Your phone and your other computers connect from Settings › Devices › **Add a device** ([Phone access](/goodcryptox-3.0/phone-access)).

## Stop, update, remove

* **Quit goodcryptoX** in Settings › General › Installation, or `gcx stop` in a terminal, stops goodcryptoX properly: it finishes what it is doing first. It stays stopped until you open goodcryptoX again from the applications menu or log in again.
* goodcryptoX updates itself at a quiet moment. To install a download by hand, unpack it and run `./gcx install` in its folder: it stops the running goodcryptoX first. Your data stays.
* **Start goodcryptoX when I log in** in Settings › General › Installation turns the start at login on or off. It is the same as `systemctl --user enable gcx` and `systemctl --user disable gcx` in a terminal, and turning it off does not stop goodcryptoX while it runs.
* `gcx uninstall` removes the program, the start at login and the applications-menu entry. Your data folder stays: delete `~/.local/share/gcx` yourself to delete your data too. Your orders on the exchange are not affected either way.

## Keeping the computer awake

With the keep-awake switch on (Settings › General › Installation), goodcryptoX keeps the computer from sleeping while there is something to trade on: an order resting, a stop being watched, or a bot with an entry, an averaging order or a timer due. It needs no password and changes no system setting; the hold ends when goodcryptoX stops. Closing a laptop's lid still puts it to sleep, and goodcryptoX with it. On a system without `systemd-inhibit`, Settings says goodcryptoX cannot keep the computer awake.


# Set up on a NAS

A NAS at home runs goodcryptoX day and night, with nothing to rent. Start here, or start on your Mac and move it here later in one file. The steps below use a Synology; other makers' container apps take the same file.

## Check your NAS

goodcryptoX needs three things:

1. **The maker's container app:** Synology Container Manager, QNAP Container Station, Asustor Docker Engine, UGREEN Docker, TerraMaster Docker Manager.
2. **At least 2 GB of memory installed,** with about 1 GB left free.
3. **A 64-bit processor** (x86-64 or ARM64).

On Synology, the Plus models from 2018 on (DS218+, DS220+, DS224+, DS920+, DS923+ and others) and the DS223 and DS423 qualify. The j and play models, the DS124, and the DS118, DS218 and DS418 do not. Not sure? Ask in the goodcryptoX Telegram group, [t.me/goodcrypto](https://t.me/goodcrypto), with your exact model.

## Start goodcryptoX

1. In **Package Center**, install **Container Manager**.
2. Download goodcryptoX's compose file: [compose.yaml](https://github.com/GoodCryptoApp/gcx/releases/latest/download/compose.yaml).
3. In Container Manager, **Project › Create**: name it `gcx`, set its path to a new folder on the NAS's own disk (such as `docker/gcx`), choose **Upload docker-compose.yml** and pick the file. Press **Next** until **Done**. goodcryptoX starts.

The file is goodcryptoX's latest release on GitHub.

<details>

<summary>If this does not work</summary>

Choose **Create docker-compose.yml** instead of the upload, and paste the file's text:

```yaml
services:
  gcx:
    image: ghcr.io/goodcryptoapp/gcx:latest
    container_name: gcx
    network_mode: host
    init: true
    restart: unless-stopped
    stop_grace_period: 60s
    volumes: [gcx-data:/data, gcx-secret:/secret]
  updater:
    image: ghcr.io/goodcryptoapp/gcx:latest
    container_name: gcx-updater
    entrypoint: [gcx, updater]
    user: "0:0"
    network_mode: none
    init: true
    restart: unless-stopped
    volumes: [/var/run/docker.sock:/var/run/docker.sock, /root/.docker:/docker:ro, gcx-data:/data]
volumes:
  gcx-data: {name: gcx-data}
  gcx-secret: {name: gcx-secret}
```

</details>

## Sign in

In Container Manager, open the `gcx` container and its log. At the first start its first lines show a link: copy it, paste it into the browser on your computer and create a passkey with Touch ID or your computer's own unlock. goodcryptoX opens at my.goodcrypto.app. Your phone comes next, from the panel: Settings › Devices › **Add a device** shows a QR code that scans.

The first link is one-time: it dies the moment a device uses it. It also expires after 10 minutes: for a fresh one, restart the container, or run `gcx pair` in the container's terminal. The link is a key: never share it or paste it anywhere.

The link goes through goodcryptoX's relay.

<details>

<summary>If this does not work</summary>

Reach goodcryptoX through a tunnel instead. Turn on SSH on the NAS (**Control Panel › Terminal & SNMP › Terminal › Enable SSH service**; only an administrator account may sign in). On your computer, open Terminal (PowerShell on Windows), run this line with your user and the NAS's address, enter your password, and keep the window open:

```
ssh -N -L 8128:127.0.0.1:8128 <user>@<your NAS's address>
```

In a second window, sign in to the NAS with `ssh <user>@<your NAS's address>`, run `sudo docker exec gcx gcx open --print`, and open the link it prints in your browser within 60 seconds. goodcryptoX opens at `http://gcx.localhost:8128`. A network address such as `http://192.168.1.20:8128` does not open it.

</details>

From here, everything is as on a server: [adding a phone or another computer](/goodcryptox-3.0/set-up-on-a-server#add-a-phone-or-another-computer), [updates and backups](/goodcryptox-3.0/set-up-on-a-server#updates-and-backups).


# Set up on a server

A rented server runs goodcryptoX day and night. You set it up from any computer, or from your phone alone; start here, or start on your Mac and move it here later in one file.

Any provider works. We recommend Hostinger for now: by far the easiest to set up that we found, and cost-effective too. The steps below show Hostinger screen by screen; the same steps work on any cloud provider, AWS, DigitalOcean, Google Cloud, Azure or any other.

[**Open Hostinger**](https://www.hostinger.com?REFERRALCODE=HBDNPMHGJLZB)

[Hostinger](https://www.hostinger.com?REFERRALCODE=HBDNPMHGJLZB): through this link you get 20 % off your first purchase, and goodcryptoX gets a share of it.

You are free to go to Hostinger without the link, or to use any other provider.

## Rent a server

What you do: create your Hostinger account, rent the server, install goodcryptoX on it, then connect the browser on your computer and your phone to it. Here is how, step by step.

As Hostinger's screens looked in October 2026:

**1. Sign up.** No card is asked for until you pay, a few screens later.

**2. VPS › Set up VPS**

![The VPS page, the arrow at Set up VPS](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FD26LrS81FEgl8jRZ8mNp%2F01-vps-page.webp?alt=media)

**3. Location.** Choose the city nearest you, then **Next**.

![Choose a server location, the arrow at Next](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FKnqdRzOiMwhffOA3ylnm%2F02-location.webp?alt=media)

**4. What to install.** Open **Applications**, or search for "Docker".

![Choose what to install, the arrow at Applications](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FoFH1NbvQXp6T7o18eNJ2%2F03-choose-what-to-install.webp?alt=media)

Pick the plain **Docker** tile, not Docker and Traefik, Docker Registry or Dockge.

![The search for Docker, the arrow at the Docker tile](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FOhqKVwMqEmtPzx10A9Eb%2F04-docker-search.webp?alt=media)

Its card says "Installed in Ubuntu 24.04": press **Select**.

![The Docker card, the arrow at Select](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FK9dFTkNd6LDff4LaHCjQ%2F05-docker-select.webp?alt=media)

**5. Root password.** Press **Generate** and keep the password in your password manager: it opens your server. Skip the SSH key.

![Secure your VPS access, the arrow at Generate](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FGURQ1lHXj01wMLVaj4IC%2F06-root-password.webp?alt=media)

**6. Additional features.** Leave both boxes empty, then **Next**.

![Additional features, the arrow at Next](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FZfUFKCjj5c2MVdD72Ma1%2F07-additional-features.webp?alt=media)

**7. Plan.** KVM 1 is enough for goodcryptoX: press its **Select**.

![The plans, the arrow at KVM 1's Select](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FBIvuVDLlz8xyH7bFhmxr%2F08-plan.webp?alt=media)

**8. Billing period.** The price is your choice. On 18 October 2026, KVM 1 cost $6.49 a month on 24 months, $6.99 on 12 months and $9.99 on 1 month, tax on top; prices change, so read the shape of the deal:

* The low price is for the first term only, paid up front.
* After it, 12 and 24 months renew at the regular price ($11.99 a month that day), 1 month at the full price ($19.49 a month).
* You can change the period later, at the regular price, never the introductory one.
* Testing first? Take 1 month. Keeping it? Take 12 or 24 months from the start. A 1-month server that proves itself: rent a new one on 12 or 24 months, [move goodcryptoX there](/goodcryptox-3.0/moving-goodcryptox#from-one-server-to-another), and cancel the old one before it renews.
* A new purchase has a 30-day money-back guarantee.

![The billing period, the arrow at 24 months](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FvZgio5OVuDOHjYXv0a97%2F09-billing-period.webp?alt=media)

![The billing period on 1 month, renewing at the full price](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FmSnMcsOxlYPhRRsrEyN2%2F09b-billing-1-month.webp?alt=media)

**9. Pay.** Hostinger sets up your server in about 5 minutes and sends an e-mail when it is ready.

**10. Ready.** Press **Manage VPS**. Skip the free domain: goodcryptoX does not need one.

![You're ready, the arrow at Manage VPS](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FiVX6oToXo48DkHprXnO9%2F11-ready.webp?alt=media)

**11. Overview.** A short survey opens: press **Skip**. Then press **Docker manager** on the Docker card.

![The VPS Overview, the arrow at Docker manager](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FATZSsAgushY2rUYZbkh7%2F13-overview-clean.webp?alt=media)

<details>

<summary>On another provider</summary>

Rent a small server with Ubuntu and Docker, 2 GB of memory or more, in a region near you. Many providers offer Ubuntu with Docker ready to install.

</details>

## Start goodcryptoX

**12. Compose › Compose from URL**

![Docker Manager, the arrow at Compose](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FSymgD80tIrlMPo8Ehzn2%2F15-docker-manager.webp?alt=media)

![The Compose menu, the arrow at Compose from URL](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2F3BcS0b2gxfprdWNzyQ3y%2F16-compose-menu.webp?alt=media)

**13. The link and the name.** Paste this link (goodcryptoX's latest release on GitHub), name the application `gcx` and press **Deploy**.

```
https://github.com/GoodCryptoApp/gcx/releases/latest/download/compose.yaml
```

![Compose from URL filled in, the arrow at Deploy](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FURDHEwbPttMnLtfCfEDK%2F17b-compose-from-url-filled.webp?alt=media)

**14. Running.** Within a minute or two, `gcx` shows **Running**. Close the HTTPS banner: goodcryptoX does not need it.

![Docker applications: gcx, Running, the arrows at Terminal and at the row's menu](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Foe7JxflEBcdpnE1Q429k%2F19-running.webp?alt=media)

<details>

<summary>If this does not work</summary>

Two other ways.

The file's text. On Hostinger, choose **Compose › Compose manually** and paste it into the **.yaml editor** tab, with the name `gcx`. In another Docker panel, create the project by hand and paste it.

```yaml
services:
  gcx:
    image: ghcr.io/goodcryptoapp/gcx:latest
    container_name: gcx
    network_mode: host
    init: true
    restart: unless-stopped
    stop_grace_period: 60s
    volumes: [gcx-data:/data, gcx-secret:/secret]
  updater:
    image: ghcr.io/goodcryptoapp/gcx:latest
    container_name: gcx-updater
    entrypoint: [gcx, updater]
    user: "0:0"
    network_mode: none
    init: true
    restart: unless-stopped
    volumes: [/var/run/docker.sock:/var/run/docker.sock, /root/.docker:/docker:ro, gcx-data:/data]
volumes:
  gcx-data: {name: gcx-data}
  gcx-secret: {name: gcx-secret}
```

A terminal. Open your provider's web console, or `ssh root@<your server's address>` from your computer, and run this line on the server (with `sudo` before each `docker` where it needs it); the log follows in the same window:

```
curl -fsSLo compose.yaml https://github.com/GoodCryptoApp/gcx/releases/latest/download/compose.yaml && docker compose up -d && docker logs -f gcx
```

</details>

## Sign in

**15. The logs.** On the `gcx` row, open the **⋮** menu (the arrow at the row's right in the picture above) and press **View logs**, then the **Logs** tab.

**16. The link.** At the first start the log's first lines show a link: select it and copy it.

![The Logs tab at the first start, the arrow at the link](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FUjEpV1h7Kpfd7BhOC28f%2F22-logs-link.webp?alt=media)

**17. Open it.** Paste the link into the browser on your computer and create a passkey with Touch ID, Face ID or your computer's own unlock. goodcryptoX opens at my.goodcrypto.app, and from now on that address is the way in on this device. A passkey saved in iCloud or Google works on your other devices in the same account; any other device is added from Settings › Devices › **Add a device**. Your phone comes next, from the panel: Settings › Devices › **Add a device** shows a QR code that scans ([Add a phone or another computer](/goodcryptox-3.0/set-up-on-a-server#add-a-phone-or-another-computer)).

The link works once: it dies the moment a device uses it. It also expires after 10 minutes; for a fresh one, press **Restart** in the row's menu. The link is a key: never share it or paste it anywhere else.

The same device opens the panel from its bookmark or home-screen icon and signs in with Face ID or Touch ID, no link, no code. That is the passkey the pairing created. **Set up goodcryptoX** on the Dashboard walks you through the rest: your exchange accounts, then your Telegram bot.

<details>

<summary>What my.goodcrypto.app relies on</summary>

Your server keeps one outgoing connection to goodcryptoX's relay, and my.goodcrypto.app reaches your server through it: over the internet, not by a direct call. Everything that passes is sealed between your browser and your server; the relay forwards it and can read or keep none of it. The one thing it means: if our relay is ever gone, this address stops working. goodcryptoX itself keeps running and trading on your server. The way in then is the tunnel in the fold below; it needs nothing of ours.

</details>

<details>

<summary>If this does not work</summary>

To scan a code with your phone instead, or for a fresh link another way: open the container's terminal (on Hostinger, **Terminal** on the `gcx` row) and run `gcx pair` (elsewhere `docker exec gcx gcx pair`); a terminal draws the code so that it scans.

Or reach goodcryptoX through a tunnel instead. On your computer, open Terminal (PowerShell on Windows) and run this line with your server's address (on Hostinger, after **IPv4** on the Overview):

```
ssh -N -L 8128:127.0.0.1:8128 root@<your server's address>
```

Answer `yes` the first time, then enter the server's password (on Hostinger, the root password from step 5). Nothing more appears, which is right: keep the window open while you use goodcryptoX. Then run `gcx open --print` in the container's terminal (elsewhere `docker exec gcx gcx open --print`) and open the link it prints in your browser within 60 seconds. goodcryptoX opens at `http://gcx.localhost:8128`. If the log names a port other than 8128, use that number on both sides of the line and in the address.

</details>

## Add a phone or another computer

Once your phone is added, no computer is needed: you can run everything from it.

A new phone or computer is added from a device that is already in: Settings › Devices › **Add a device** ([Phone access](/goodcryptox-3.0/phone-access)).

Every device lost is the only case that goes back to the server: on Hostinger, **Terminal** on the `gcx` row, then `gcx pair` for a fresh link (elsewhere `docker exec gcx gcx pair`). That is the recovery; no e-mail reset, since there is no account with us.

## Updates and backups

goodcryptoX keeps itself up to date on the server: a new version installs by itself at a quiet moment, as on a Mac, finishing what it is doing first. Settings › General › Installation shows the version, and its **Update** button installs a new one at once if you do not want to wait.

<details>

<summary>If this does not work</summary>

On Hostinger, choose **Update** in the `gcx` row's menu; elsewhere, run `docker compose pull && docker compose up -d` in the folder of `compose.yaml`.

</details>

goodcryptoX keeps your data in two Docker volumes, `gcx-data` and `gcx-secret`. Back them up together: `gcx-data` alone cannot open your keys.


# Phone access

goodcryptoX does not run on your phone. It runs on your Mac, NAS or server, and your phone connects to it: it sees and does everything. Your other computers connect the same way.

## Pair a device

On a device that is already in, open Settings › Devices › **Add a device**. It shows a QR code, and under it the same link with **Copy**. Scan the code with your phone's camera, or open the link on the other device, and confirm once with Face ID, Touch ID or the device's own unlock.

From then on, the device opens goodcryptoX at my.goodcrypto.app, from its bookmark or home-screen icon, and signs in the same way, no link, no code.

The link works once: it dies the moment a device uses it. It also expires after 10 minutes; for a fresh one, press **Add a device** again. On a server, the first device comes from the link in its log ([Sign in](/goodcryptox-3.0/set-up-on-a-server#sign-in)).

A passkey saved in iCloud or Google already works on your other devices in the same account, so a new iPhone on the same Apple ID often needs nothing at all; such a device has the rights of the one whose passkey it shares.

## The shortest way

* **A Mac, then your phone.** [Set up on your Mac](/goodcryptox-3.0/set-up-on-your-mac), then on the Mac open Settings › Devices › **Add a device** and scan the code with your phone.
* **A server, then only your phone.** [Set up on a server](/goodcryptox-3.0/set-up-on-a-server) and add your phone. Once your phone is added, no computer is needed: you can run everything from it.
* **A server, with your Mac and your phone.** Open the server's first link on the Mac, then add the phone from the Mac. If the phone came first, open my.goodcrypto.app on the Mac: a passkey from iCloud signs you in; if not, press **Add a device** on the phone and open its link on the Mac.
* **Another computer.** **Add a device** on a device that is in, **Copy**, and open the link on the new computer.

## Each device is a key

Each device in the list has a switch: **Can trade** does everything you can; **Read-only** only looks. Give a shared or borrowed phone Read-only. Removing a device is a row in the same Settings list; it stops within a second.

There is no other limit. Your keys never leave the machine goodcryptoX runs on.

## On the home screen

goodcryptoX is not an app from a store. Saved to your home screen, it opens and feels like one, full screen, with no browser bar. After the phone sleeps, it comes back by itself.

<details>

<summary>On an iPhone, step by step</summary>

**1.** Open my.goodcrypto.app in Safari and press the three lines at the left of the address bar.

![The address bar's menu, the arrow at the three lines](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Fa2N3UpsDMTXUeIHBCQgd%2F01-menu.webp?alt=media)

**2.** Press **Share**.

![The menu, the arrow at Share](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FuagUINfMuRLaU2Utcjyg%2F02-share.webp?alt=media)

**3.** Press **View More**.

![The share sheet, the arrow at View More](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FIHcrKuXI3KojIncm9FWH%2F03-view-more.webp?alt=media)

**4.** Press **Add to Home Screen**.

![The arrow at Add to Home Screen](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FolfRVFfTZx9ocuEMSZBD%2F04-add-to-home-screen.webp?alt=media)

**5.** Leave **Open as Web App** on, keep the name **goodcryptoX**, and press **Add**.

![The arrow at Open as Web App, left on, and at Add](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FTt6EXQvcIpcYInOiMv4K%2F05-open-as-web-app.webp?alt=media)

The icon then works from your home screen, even from the dock, just like the old goodcryptoX app.

</details>

On Android, in Chrome, open the browser's menu (the three dots) and press **Install and create shortcut**. The first time, the menu may say **Add to Home screen** instead; that works too.

![Install and create shortcut in Chrome's menu](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FwX0gnzO4tXuW8Y2Ky8BV%2Fandroid-01-install.webp?alt=media)

When Chrome offers **Install goodcryptoX** at the top of the page by itself, press **Install**: it is the same thing.

![Chrome's own Install goodcryptoX bar](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FjIQdbIevi4lxB3GnKIyv%2Fandroid-02-install-bar.webp?alt=media)

On some phones (Samsung among them) the installed goodcryptoX lands in the apps list, not on the home screen: hold its icon there and choose **Add to Home screen**.


# Telegram alerts

For some people this is all they need. goodcryptoX sends its alerts through a Telegram bot that is yours, with buttons under them to act right there. goodcryptoX talks to Telegram directly; nothing you are told passes through a server of ours.

## Connect

From your computer or your phone, the same steps:

1. Open **Settings › Alerts** and press **Create my Telegram bot**. Telegram opens.
2. Telegram shows your new bot with its name filled in. Confirm it.
3. Press **Start** in your bot's chat. Your bot writes "Your goodcryptoX is now linked to this Telegram chat" and the alerts arrive there. If it stays silent, press **Open your bot** in Settings › Alerts, then **Start**.

You do not set the bot's picture: it appears by itself when you come back from Telegram.

<details>

<summary>With your own bot from BotFather</summary>

If you want no server of ours anywhere, create the bot yourself.

1. In Telegram, start a chat with **@BotFather** and send `/newbot`.
2. Send a name for the bot, then a username ending in `bot`.
3. BotFather answers with a token. Copy it.
4. In **Settings › Alerts**, press **Enter your bot's token**, paste it and press **Connect**.
5. Press **Open your bot**, then **Start** in its chat.

</details>

<details>

<summary>If this does not work</summary>

* Telegram did not open: press **Create my Telegram bot** again. It opens the same link and starts nothing new; after ten minutes, a press starts a new set-up.
* The bot answers "To link a chat, press Open your bot in Settings › Alerts": do that, and press **Start** in the chat that opens.
* Anything else: Settings › Alerts says what happened and what to press.

</details>

## Open your bot

Whichever way you got the bot, until a chat is linked goodcryptoX shows **Open your bot**. It opens your bot's chat in Telegram; press **Start**, and the alerts arrive there.

## Turn on topics

Optional. With topics, each kind of alert arrives in its own topic of your bot's chat: **Bots**, **Manual orders** and **Account**. Only BotFather can turn them on:

**1.** In Telegram, open **BotFather** and press **Open** at the bottom (not the buttons in its chat).

![The arrow at Open](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FxYi2SwDJ7kddwcD7uFZV%2F04-botfather-open.webp?alt=media)

**2.** Under My bots, tap your bot.

![The arrow at your bot under My bots](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Fw8YLV3tMFz3XPnpAQOOt%2F05-my-bots.webp?alt=media)

**3.** Press **Bot Settings**.

![The arrow at Bot Settings](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FTLAkblztzWmpvrnz03g6%2F06-bot-page-settings.webp?alt=media)

**4.** Under Threads Settings, turn **Threaded Mode** on.

![The arrow at Threaded Mode, on](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FQldBcYF6p1RZTB9s8xGX%2F07-threaded-mode.webp?alt=media)

goodcryptoX notices by itself and sorts your alerts into topics.

The long way works too: in your bot's chat, tap its picture, then **Bot Settings**, then **Change Bot Settings**, which opens BotFather; then steps 3 and 4.

![The arrow at the bot's picture](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FQuFCR2ddsQYconj8lqO6%2F01-bot-chat.webp?alt=media)

![The arrow at Bot Settings](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FVW1vus1AZTAbjIJYlJ4l%2F02-bot-settings.webp?alt=media)

![The arrow at Change Bot Settings](https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FTIG8o7hhXLnHD9WGhmH0%2F03-change-bot-settings.webp?alt=media)

## Disconnect

Press **Disconnect** in Settings › Alerts. Your chat is told, and nothing more is sent. The bot itself stays yours in Telegram; delete it in BotFather if you no longer want it.

## What you get

Everything below is on at first. Each is a switch in Settings › Alerts:

* **Orders from goodcryptoX**: the fill and the trigger of your manual orders.
* **External orders**: a fill of an order you placed with the exchange's own app or another tool, sent with "(external)" in its title.
* **Bot stop or error**, **Take profit / stop loss** and **Entry and averaging orders**: what every new bot starts with. Change a bot's own alerts in its form or its details.

With no switch, you always get what needs you, a reminder every hour while a position is left without its stop-loss, and one message after goodcryptoX was away, with what happened meanwhile.

## Shortcut buttons

Under an alert about one of your bots or orders sit the buttons that fit it:

* **Your order filled** (a buy, or a sell on perpetuals): **TP +5 %**, **TP & SL 5 %** or **TP & SL 10 %** add a take-profit, or a take-profit and a stop-loss, to it.
* **A bot is running**: **Stop bot**, and **Close position** while it holds one.
* **A bot's averaging order failed**: **Stop bot** and **Retry order**.
* **A bot ended**: **Relaunch** starts a new one with its settings, and **Close position** if its position is still open.
* **A bot or an order needs you**: the same answers as on its page, such as **Retry**, **Exchange is right** or **Cancel order**.
* **The hourly reminder**: its item's buttons, and **Silence** to stop the reminders.

Each button does what the same button in the panel does. Two switches in Settings › Alerts, under Telegram, both on at first:

* **Shortcut buttons**: off, the alerts come without them.
* **Confirm before acting**: a button first says what it is about to do, and acts only after you press **Confirm**.

If someone else can use your phone or your Telegram, turn the shortcut buttons off.

## What comes next

We will keep adding to Telegram: the goal is that most of what the app does can be done from Telegram too.


# Moving goodcryptoX

goodcryptoX moves as one locked file: your accounts with their API wallet keys, bots, settings and history. Every move is the same two steps, **Export** on the old machine and **Bring** on the new one; only where the file travels differs.

Between the export and the import, goodcryptoX's own stops, trailing stops and bots are **not watched**. Orders resting on the exchange, and the exchange's own stops, keep working. Check your positions first and finish the move in one sitting.

## The steps

1. **Set up goodcryptoX on the new machine** and open it, but do not connect an account there yet.
2. **Export.** On the old machine, open **Settings › General › Move or remove goodcryptoX**, press **Export** and choose a passphrase. Keep the file it saves.
3. **Bring.** On the new machine, open **Settings › General › Move or remove goodcryptoX › Bring goodcryptoX from another machine** (or its card on the Dashboard), choose the file, enter its passphrase and press **Import**.

From the export, the old machine places no new orders. Your accounts and bots continue on the new one by themselves, with the same API wallets: nothing to approve. Phones and computers paired with the old machine come along. A browser paired only with the new one signs in there again ([Sign in](/goodcryptox-3.0/set-up-on-a-server#sign-in)).

Keep the file and its passphrase safe: together they can trade your accounts, never withdraw.

## To another computer

Install goodcryptoX on the new computer ([Set up on your Mac](/goodcryptox-3.0/set-up-on-your-mac)), copy the file there (AirDrop, a drive, a cloud folder), and Bring it.

## To a NAS or a server

Set goodcryptoX up there first ([on a NAS](/goodcryptox-3.0/set-up-on-a-nas), [on a server](/goodcryptox-3.0/set-up-on-a-server)), then Export on your computer and Bring in the new panel: your browser sends the file, nothing to copy onto the machine.

## From one server to another

Set up the new server, Export in the old one's panel (the file comes to your browser), Bring in the new one's, then cancel the old server.

## Back to a computer

Install goodcryptoX on the computer, Export in the server's panel, and Bring on the computer.

## The old machine afterwards

Every page there shows the moved date, **Bring it back** and **Start fresh here**; both keep the old data in a `moved-<date>` folder. If the same file runs on two machines, both trade the same accounts: keep one running.


# Terms of service

Version 1 · 1 October 2026

These terms are an agreement between you and GoodC International Ltd., British Virgin Islands. By installing or using goodcryptoX, or connecting an account, you accept them and our [privacy policy](/legal/privacy-policy). If you do not agree, do not use goodcryptoX. Contact: <info@goodcrypto.app>.

## 1. What goodcryptoX does

goodcryptoX is a trading program you run on your computer or server. It displays your accounts, sends orders, runs bots and delivers alerts. Hyperliquid holds your funds and executes your trades. We cannot see your panel or trading keys, and we do not hold, receive or control your funds.

You can open the panel from a phone, or from a computer away from your server, by pairing that device. A device is set to **Can trade**, which may do everything you can do at your computer, or to **Read-only**, which only looks. You change the switch, or remove the device, in Settings › Devices. A passkey synced by Apple or Google carries its switch to your other devices in that account.

## 2. No advice or exchange service

We are not your broker, exchange, custodian or investment adviser. Nothing in goodcryptoX, including bot settings, previews, ratings and displayed figures, is investment, financial, legal or tax advice. You decide what to trade and remain responsible for it.

## 3. Connecting an account

Your own wallet approves goodcryptoX’s API wallet and, if needed, our builder fee. The trading key is created and kept on your machine; it can trade but cannot withdraw. Keep it private and renew approvals when needed. Expiry or revocation can prevent goodcryptoX from placing, cancelling or closing orders; orders already resting on Hyperliquid remain there.

## 4. Our fee

Today our builder fee is **0.03 %** of each filled trade placed through goodcryptoX on Hyperliquid, in addition to exchange fees; on spot it applies only to sells. Hyperliquid collects it and asks your wallet to approve it once per main account, never charging above your approved maximum. Settings shows the current rate and approved maximum; older approvals may have a higher maximum, and we may change our rate at our discretion by updating these terms. You can revoke approval on Hyperliquid, but it may then refuse your orders, stop-losses and closes until you approve again.

## 5. Referrals and partner codes

The optional referral offered when connecting an eligible account follows Hyperliquid’s own discount rules and may earn us a share of its fees. A partner code may reduce our fee and pays the partner a share of it. Once entered, the code covers your goodcryptoX’s accounts and cannot be changed or removed; signed order records go to our server as the privacy policy explains. We may change or end codes at our discretion. Partners’ earnings and payments are governed by their separate agreements with us.

## 6. Trading risks

You can lose all the money you trade with. Leverage increases losses, and liquidation can affect your account beyond one position. Bots follow your settings, not your intentions or predictions.

goodcryptoX’s own stops, trails and waiting bot orders work only while it runs with working keys and market data. Power loss, sleep, a lost connection, updates, expiry or removal of an account can leave positions unprotected. Actions may execute when it resumes, at worse prices. Partial fills, refused orders or uncertain replies can also leave a position without its intended exit. Check your accounts and protect positions directly on Hyperliquid when necessary.

Software, networks and exchanges can fail. A leaked key can trade your account into losses. A vault’s leader is responsible for trading followers’ money. Anyone allowed to use your trading keys, computer, Telegram shortcuts or a paired phone can act with your funds. Start small, with money you can afford to lose.

A paired device opens the panel through a page our server delivers. If that page, our servers or our web address were taken over, whoever did it could act on every Can-trade device opened in the meantime, with your funds, and read what a Read-only device shows. Set a device to Read-only if it should never trade, and remove one you lose or no longer use.

## 7. No warranty

goodcryptoX is beta software, provided “as is” and “as available”, without warranties of availability, accuracy, completeness, profitability, merchantability, fitness or non-infringement. We do not promise uninterrupted or error-free operation. Displayed figures may be late or wrong; Hyperliquid’s records are authoritative.

## 8. Your responsibilities

You must be at least 18 and legally permitted to use goodcryptoX and Hyperliquid where you live. You are responsible for your orders, bots, delegated actions, wallet, approvals, security, taxes and compliance with law and Hyperliquid’s terms. We cannot recover lost keys or wallets. Do not evade our fee, infringe others’ rights, or copy, decompile, resell or redistribute goodcryptoX except as law allows.

## 9. Our services

We may change, suspend, restrict or discontinue goodcryptoX, its features, venues, servers, partner program and update channel at our discretion without notice. We owe no support or obligation to maintain a version or interface. If we stop providing services, a locally running copy can still trade without our servers; updates, setup, relay and reports services may stop. Reports and daily usage records are handled as the privacy policy describes.

## 10. Liability

As far as law allows, we and those delivering goodcryptoX are not liable for trading losses, indirect, incidental, special or consequential damages, lost profits or data, interruption or substitute costs, however caused. Our total liability is limited to the fees you paid us through goodcryptoX, or **10 US dollars** if you paid none. We are not responsible for failures of exchanges, wallets, Telegram, your equipment, network or connected agents. Mandatory legal rights are not excluded.

## 11. Indemnity

You will compensate and hold harmless GoodC International Ltd. and its officers, directors, staff and agents for claims, losses, costs and reasonable legal fees arising from your use or breach of these terms.

## 12. Disputes

British Virgin Islands law governs these terms. Disputes are settled by binding individual arbitration, except individual small-claims actions or court orders protecting intellectual property. You and we waive jury trials and class or representative actions; claims cannot be combined. You may opt out by emailing <info@goodcrypto.app> within **30 days** of first accepting these terms; disputes then go to British Virgin Islands courts. If the class-action ban is unenforceable, this section does not apply.

## 13. Changes

We may publish new terms and a new privacy policy, effective when published. Check the version and date in Settings; continuing to use goodcryptoX means you accept changes. A later published version briefly explains its changes under the date.

## 14. Ending and general terms

You can quit and remove goodcryptoX at any time. Its own stops end with it; your positions and orders resting on Hyperliquid remain, so close or protect them there. Delete local data and revoke approvals if you wish. We may end these terms for you at any time; responsibilities for prior use survive. These terms and the privacy policy are the whole agreement. Invalid provisions do not invalidate the rest. You may not transfer the agreement; we may. Not enforcing a right does not waive it.


# Privacy policy

Version 1 · 1 October 2026

goodcryptoX runs on your computer. GoodC International Ltd., British Virgin Islands, provides it under our [terms of service](/legal/terms-of-service). You have no account with us, and goodcryptoX uses no analytics service or tracking.

## What stays on your machine

Your data folder holds accounts, encrypted trading keys, orders, trades, positions, bots, balances with a daily record of them, notes, settings, chart layouts, logs, backups, downloaded updates and translations, and the devices you paired: each one's name, its passkey's public key, its switch, and when it was paired and last used. If you linked Telegram, it also holds your bot’s token and message copies. Your system or a passphrase unlocks the trading keys; browser passkeys can sync through your own password provider. Logs stay for 14 days at most, within the size you set in Storage (200 MB by default); exchange traffic is compressed after each hour and kept for 7 days or three quarters of that size, whichever comes first. Display choices stay in your browser. The installation’s signing key identifies its messages to our servers, but cannot trade or withdraw. A copy of the data folder or a move-export file contains private data, the paired devices included: keep it safe. After a move, the earlier data stays in a `moved-<date>` folder in the data folder until you delete it.

## What leaves your machine

Each recipient below sees your IP address:

* **Hyperliquid:** account-data and market-data requests, signed orders and account actions, and wallet approvals. Its blockchain publicly records trades, orders, positions and our builder fees.
* **Hyperliquid’s website:** requests for public coin logos, by coin name, without your account or wallet.
* **GitHub:** version checks and update downloads, including the release channel and machine type. Docker installations download their image from its container registry; their updater asks it for a newer one every hour (every 5 minutes on Internal), with the server's own registry login where it has one.
* **Reown / WalletConnect:** wallet-connection events, your wallet address, the panel address and signing requests. A wallet provider you choose, such as Coinbase, may also receive connection data under its own policy.
* **Telegram, if linked:** your bot’s messages, account-related alerts, shortcut actions and message requests.
* **Our Telegram setup server:** temporarily receives a new bot’s identity and the Telegram id of the account that created it, passes its token and that id to goodcryptoX (kept there until your chat is linked or you disconnect, so goodcryptoX can write to that account to link it, and only that account’s Start can) and once sets the new bot’s profile photo to our manager bot’s. Telegram lets our manager read or replace these bots’ tokens. Your own bot avoids this server; see [Telegram](/goodcryptox-3.0/telegram-alerts).
* **Our phone relay, while a device is paired or pairing:** carries end-to-end encrypted traffic it cannot read; sees connection identities, IP addresses, times and sizes; keeps no log, only when your machine last went offline. We serve its page, which keeps in that browser the machine it pairs with, a key that lets the open tab reconnect for 15 minutes, and a service worker that routes the panel through the encrypted connection; nothing else.
* **Our reports server:** anonymous problem reports and daily usage records, with order/bot details, diagnostic events, system/version information, the running tier and traded volume, under a random installation number and its signing key. No keys, account addresses or names, balances or Telegram ids are included. A note you add is sent as written. Daily records add goodcryptoX's memory and processor use. Turning automatic reports off leaves only a daily sign that the installation exists. Internal test versions also send these figures, free disk and alerts once per run past an hour, even with reports off.
* **Our partner-code server, if you enter a code:** the code, installation public key and version, and signed order records with account addresses and order numbers. We read those accounts’ public trades to pay the partner. This reporting is independent of the Reports switch and cannot be turned off while the code applies.
* **Our news service, only if you subscribe:** your email address, for goodcryptoX news, on the website’s waitlist.
* **Our translations site:** requests for your chosen language, without an installation identifier; English needs no request.
* **AI providers:** Anthropic may process reports and partner records for us. An AI agent you authorize can send data its access key permits to the model provider you choose, under that provider’s policy.

Our services run on Cloudflare, under its terms, and do not retain IP addresses. A trade in an anonymous report can be matched to its public Hyperliquid address, which does not itself name a person.

## What we hold

We use reports and daily usage records to fix problems and improve goodcryptoX, keeping them for 180 days and retaining aggregate totals. Partner order records stay while we pay partners; their public trades are kept for 30 days after a day is counted, or while paying the partner. Partner payout records remain in our accounts. We hold subscribed email addresses for news and correspondence to answer you. These records do not give us your trading keys or control of your funds.

## Deleting your data

Removing an account without keeping its history restarts goodcryptoX to erase its local records; logs, shared wallet records still needed by another account, sent messages/reports and saved exports may remain. Settings › General › Storage can delete a removed account’s history, or completed history up to a chosen month, on this computer. Quit goodcryptoX and delete its data folder to remove all local data, keys included. This does not erase Hyperliquid’s public records, Telegram messages or copies already sent elsewhere. To delete our reports and daily records, email <info@goodcrypto.app> with the installation number shown in Reports; deleted within 30 days. Use the same address to leave the news list or ask about partner records. Your wallet can revoke the API wallet on Hyperliquid.

## Changes and contact

We may publish a new policy; using goodcryptoX afterwards means you accept it. Check its version and date in Settings. Later versions briefly describe their changes under the date.

Questions: <info@goodcrypto.app>


# Intro

goodcryptoX is a multi-exchange terminal for **CEXs** and **DEXs**, offering advanced orders, fully automated trading bots, portfolio tracking, alerts, and market research tools — everything you need to manage your crypto portfolio in one place.

Launched in 2019 as GoodCrypto, the platform started as a terminal for centralized exchanges. Since then, over $5 billion has been traded through the app, with over 400,000 users onboarded.

In 2024, we added *decentralized trading* and rebranded to goodcryptoX to reflect our expanded mission. You may still see GoodCrypto in some places — rest assured, GoodCrypto and goodcryptoX are the same platform at different stages of evolution.

***

#### :chart\_with\_upwards\_trend: **Centralized exchange trading**

goodcryptoX supports over 30 major CEXs (spot and derivatives) through a unified interface with advanced orders and fully automated trading bots — including DCA, Grid, and Infinity Trailing strategies.

All CEX integrations are non-custodial: connect your exchange accounts via API keys and keep full control of your funds.

#### :repeat:  **Decentralized exchange trading (Spot)**

DEX trading in goodcryptoX is live on Solana and leading [EVM chains](/goodcryptox-2.0/supported-blockchains), offering tools typically available only on centralized platforms. You can place [limit](/dex-trading-spot/manual-orders/limit) and [trailing](/dex-trading-spot/manual-orders/trailing) orders, run [DCA](/dex-trading-spot/bots/dca-bot) and [Grid](/dex-trading-spot/upcoming-functionality/grid-bot) bots, use [screeners](/dex-trading-spot/dex-screener) with [auto-buying](/dex-trading-spot/bots/sniper-bot), and [more](/dex-trading-spot/upcoming-functionality).

Built-in wallets are secured with enterprise-grade MPC technology across all supported chains. On EVM networks, we leverage account abstraction and smart contract wallets to enable fully non-custodial trading.

On-chain futures trading is coming soon to goodcryptoX through integrations with platforms like Hyperliquid and dYdX. These integrations will unlock the same bots and advanced order types already available for centralized exchanges — bringing the full power of goodcryptoX to on-chain perpetuals from day one.

#### :zap: Perp DEXs

goodcryptoX supports [Hyperliquid](/perp-dexs/hyperliquid) with more Perp DEXs coming soon.&#x20;

On Hyperliquid, goodcryptoX provides the same advanced toolset available on CEXs — from [trailing stops](/sex-trading/manual-orders/trailing-stops) and multi-target [take-profits](/perp-dexs/manual-orders/tp+sl-combo) to automated [bots](/perp-dexs/bots) (Grid, DCA, Infinity Trailing), TradingView [webhooks](/perp-dexs/webhooks), and more.

Our Hyperliquid integration is non-custodial: you [connect an API wallet ](/perp-dexs/hyperliquid/how-to-connect)that enables order placement through goodcryptoX but does not permit withdrawals.

***

#### 💳 **Subscription & fees**

We don’t charge trading fees on centralized exchanges, and basic functionality is free. A [subscription](/ecosystem/subscription-plans) is required to unlock advanced features — including higher limits on bots, alerts, and other tools.

On decentralized exchanges (both Spot and Perp DEXs), trading is available without a subscription, but a [swap fee](/ecosystem/dex-swap-fee) applies. This fee can be reduced through increased [trading volume](/ecosystem/loyalty-program), [holding the GOOD token](/good-token/holding-benefits), getting a higher [subscription plan](/ecosystem/subscription-plans),  or owning our [Ultimate NFT](/ecosystem/nfts).

***

#### 🪙 **GOOD token**

The [GOOD token](/good-token/summary) powers the goodcryptoX ecosystem. Holding $GOOD unlocks [revenue sharing](/ecosystem/revenue-sharing), swap fee [discounts](/good-token/holding-benefits), and other exclusive benefits.

GOOD is long-term deflationary, with a fixed supply of 1 billion, and ongoing [burns](/good-token/burn) to reduce the supply over time.

You can [buy](/good-token/how-to-buy-good) GOOD directly inside the goodcryptoX app or via Solana DEXs through Jupiter or Raydium.

{% embed url="<https://www.youtube.com/watch?v=73lb1_gBvCs>" %}

***

#### 👥 **Referral program**

We have one of the most profitable [referral programs](/ecosystem/referral-program) in crypto:\
Earn **up to 50%** of your referrals’ DEX swap fees (on Spot and Perp DEXs), plus a share of their subscription payments, and rebates on their CEX trading volume.

***

#### 🎁 **Airdrops**

GOOD token ecosystem includes ongoing airdrops that reward active traders and loyal holders. Airdrop One rewarded our earliest app adopters before TGE, while [Airdrop Two](/good-token/airdrops) is now live with **2M GOOD** to be allocated to the most active traders.&#x20;

***

#### **🚀 Getting started**

**CEX trading**

1. Connect your CEX account via API key
2. Choose an order type or bot and launch your first trade.

**Perp DEXs (Hyperliquid)**

1. Connect the wallet that controls your Hyperliquid account
2. Approve API wallet creation and builder fee
3. Choose an order type or bot and launch your first trade.

**DEX trading (Spot)**

1. [Create a wallet](/wallets/built-in-wallet/create-wallet) with one click
2. [Transfer](/wallets/built-in-wallet/receive-coins) coins from another wallet you control or [buy](/wallets/built-in-wallet/buy-coins-with) them with :credit\_card:
3. Choose an [order type](/dex-trading-spot/manual-orders) or [bot](/dex-trading-spot/bots/dca-bot) and send your first swap or launch your first DEX bot.

***

#### **📱 Platforms**

Full goodcryptoX functionality is available on [Web](https://app.goodcrypto.app/), [Android](https://play.google.com/store/apps/details?id=app.goodcrypto), and [iOS](https://apps.apple.com/app/id1462654566).

***

#### 🌐 **Investors**

Our investors include [Fenbushi Capital](https://www.fenbushicapital.vc/index_en.html) – a prominent crypto VC, [GSR](https://www.gsr.io/) – the largest crypto market maker, [Cointelegraph](https://cointelegraph.com/) – a leading crypto media outlet, and several hundred of our most active early adopters, whom we invited into our pre-seed round.


# App platforms

Full goodcryptoX functionality — centralized and decentralized — is available in our unified app on [Web](https://app.goodcrypto.app/x), [Android](https://play.google.com/store/apps/details?id=app.goodcrypto), and [iOS](https://apps.apple.com/app/id1462654566).

The latest Android APK is always available for direct download [here](https://goodcrypto.app/apk/latest).

You can connect your CEX account to goodcryptoX, or create your built-in DEX trading [wallet](/wallets/built-in-wallet), on any platform. Just sign in with the same goodcryptoX account to seamlessly access all your data across Web, Android, and iOS.

Your bots, orders, alerts, screeners, favorites, etc. are always in perfect sync across all platforms.

We also plan to develop Telegram and Discord companion bots that will notify you of order executions and offer quick shortcuts (e.g., "add 10% TP", "double position at -5%", etc.).


# Supported blockchains

#### 🔁 Trading

You can currently trade on the following chains via goodcryptoX:

* Solana
* Ethereum
* Base
* BNB Chain
* Arbitrum

If you’d like us to support additional chains, feel free to [reach out](mailto:support@goodcrypto.app).

***

#### 👛 Wallet tracking

You can also track your balances and transactions on a wide range of blockchains — simply by adding your wallet address tp goodcryptoX.

There’s no need to connect your external wallet to track it — we fetch on-chain data in read-only mode.

Supported chains for wallet tracking include:

* Arbitrum
* Avalanche
* Base
* Bitcoin
* Ethereum
* BNB Chain
* Bitcoin Cash
* Celo
* Dash
* Dogecoin
* Ethereum Classic
* Litecoin
* NEM
* Optimism
* Polygon
* Solana
* Symbol
* TRON
* XRP


# Supported AMM DEXs

#### Solana

On Solana, we route orders via the **Jupiter** aggregator, giving you access to liquidity across top Solana DEXs — from Raydium and Meteora to Orca and PumpSwap.

#### EVM chains

On Ethereum, Base, and Arbitrum trades are routed through **1inch**, providing coverage across major DEXs such as Uniswap, SushiSwap, Aerodrome, and more.

On BNB Chain trades are routed to **PancakeSwap** via its native router contract.


# Supported Perp DEXs

At the moment we fully support [Hyperliquid](/perp-dexs/hyperliquid) with other major decentralized futures exchanges coming soon.

Same as with CEXs, our goal is to eventually support all major on-chain Perp trading venues.


# Supported CEXs

goodcryptoX supports multiple centralized exchanges (CEXs) for both trading and portfolio tracking.

All integrations are non-custodial — you connect your own exchange accounts via API keys and retain full control over your funds at all times.

We support **spot trading** on all exchanges listed below and **futures trading** on selected platforms, where available and supported via API. You can track balances, trade history, and launch advanced trading bots across your connected accounts.

We currently support the following exchanges:

| Exchange          | Spot | Futures | API setup guide                                                                                                        |
| ----------------- | :--: | :-----: | ---------------------------------------------------------------------------------------------------------------------- |
| Binance           |   ✅  |    ✅    | [Link](https://goodcrypto.app/binance-api-key/)                                                                        |
| Binance US        |   ✅  |    ❌    | -                                                                                                                      |
| Bitfinex          |   ✅  |    ❌    | [Link](https://goodcrypto.app/how-to-configure-bitfinex-api-keys-and-add-them-to-good-crypto/)                         |
| Bitget            |   ✅  |    ✅    | [Link](https://goodcrypto.app/how-to-configure-bitget-api-key-and-add-it-to-good-crypto/)                              |
| Bithumb Global    |   ✅  |    ❌    | -                                                                                                                      |
| BitMart           |   ✅  |    ❌    | [Link](https://goodcrypto.app/how-to-configure-bitmart-api-key-and-add-it-to-goodcrypto-app/)                          |
| BitMEX            |   ✅  |    ✅    | [Link](https://goodcrypto.app/how-to-configure-bitmex-api-key-and-add-it-to-good-crypto-app/)                          |
| Bitstamp          |   ✅  |    ❌    | -                                                                                                                      |
| Bybit             |   ✅  |    ✅    | [Link](https://goodcrypto.app/how-to-configure-bybit-api-keys-and-add-them-to-good-crypto/)                            |
| Coinbase Advanced |   ✅  |    ❌    | [Link](https://goodcrypto.app/how-to-configure-coinbase-api-key-and-add-it-to-good-crypto/)                            |
| Crypto.com        |   ✅  |    ❌    | -                                                                                                                      |
| EXMO              |   ✅  |    ❌    | -                                                                                                                      |
| Gate.io           |   ✅  |    ✅    | [Link](https://goodcrypto.app/how-to-configure-gate-io-api-key-and-add-it-to-good-crypto/)                             |
| Gemini            |   ✅  |    ❌    | -                                                                                                                      |
| HitBTC            |   ✅  |    ❌    | -                                                                                                                      |
| HTX (Huobi)       |   ✅  |    ✅    | [Link](https://goodcrypto.app/how-to-configure-huobi-api-keys-and-huobi-futures-api-keys-and-add-them-to-goodcrypto/?) |
| Indodax           |   ✅  |    ❌    | -                                                                                                                      |
| Kraken            |   ✅  |    ❌    | [Link](https://goodcrypto.app/kraken-api-key/)                                                                         |
| KuCoin            |   ✅  |    ✅    | [Link](https://goodcrypto.app/how-to-configure-kucoin-api-keys-and-add-them/)                                          |
| MEXC              |   ✅  |    ❌    | [Link](https://goodcrypto.app/how-to-configure-mexc-api-keys-and-add-them-to-goodcrypto/?)                             |
| OKX               |   ✅  |    ✅    | [Link](https://goodcrypto.app/how-to-configure-okx-api-key-and-okx-futures-api-key-and-add-it-to-good-crypto/)         |
| Phemex            |   ✅  |    ✅    | [Link](https://goodcrypto.app/how-to-configure-phemex-api-key-and-add-it-to-good-crypto/)                              |
| Poloniex          |   ✅  |    ❌    | -                                                                                                                      |
| Tokocrypto        |   ✅  |    ❌    | -                                                                                                                      |
| WhiteBIT          |   ✅  |    ✅    | [Link](https://goodcrypto.app/how-to-configure-whitebit-api-key-and-add-it-to-good-crypto/)                            |

Here is an overview on how to connect your exchange account to goodcryptoX via API keys:

{% embed url="<https://youtu.be/ut4X4GCkFuw?si=uREnB8G1NLR84DUA>" %}

If you want to try our CEX tools risk free, demo (paper) trading on goodcryptoX is possible via Bitget:

{% embed url="<https://youtu.be/_OXZtblnSgE?si=w5dbSQOmZ1GrwFrG>" %}


# Manual orders

goodcryptoX currently supports the following manual order types on decentralized AMM (Spot) exchanges:

* [Swap](/dex-trading-spot/manual-orders/swap) (market) - executed immediately at the best available price via an aggregator (Jupiter on Solana, 1inch on EVM chains);
* [Limit](/dex-trading-spot/manual-orders/limit) (stop market) - swap is submitted when the market price reaches your specified trigger price;
* [Trailing](/dex-trading-spot/manual-orders/trailing) (trailing stop market) - follows the market price as it moves in your favor. Executes when the price reverses by the trailing percentage you’ve set;

#### Attached orders:

* [Take Profit](/dex-trading-spot/manual-orders/tp-+-sl-combo) - triggers when the price moves in your favor by the specified percentage relative to the execution price of your main (base) swap. If a Stop Loss is also set, it is cancelled when the Take Profit triggers;
* [Stop Loss](/dex-trading-spot/manual-orders/tp-+-sl-combo) -  triggers when the price moves against you by the specified percentage relative to your main swap’s execution price. If a Take Profit is set, it is cancelled when the Stop Loss triggers;
* [Trailing Stop Loss](/dex-trading-spot/manual-orders/trailing-stop-loss) - follows the market price as it moves in your favor. If the price reverses by your trailing percentage, the order executes — locking in profit or minimizing losses.

More order types [coming soon](/dex-trading-spot/upcoming-functionality).


# Swap

Swap (or market order) executes immediately at the current market price.

To set up a swap choose the coin you want to 'Spend' and the one that you want to 'Get' as the result of the swap:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FEPL0TE2vKcgOWVGa80cG%2Fimage.png?alt=media&amp;token=4d627c6c-7f06-47a6-a464-f0298c67d58d" alt="" width="375"><figcaption></figcaption></figure>

Now enter the amount. You can either set an exact amount of the coin to spend (in this case we will calculate how much of the other coin you will get), or an exact amount of the coin to get (in this case we will calculate how much of the other coin you need to spend).

Once you enter the amount, we will build the most optimal route to execute your swap across Uniswap or PancakeSwap pools, and calculate the amount of the coin you will get (if 'Spend' amount was set) or spend (if 'Get' amount was set).

We will also show you the expected execution price of the swap and the expected gas cost (in USD):

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2F7BQa2eXTjuNIcdLsOYBC%2Fimage.png?alt=media&amp;token=b3648332-0dbf-436a-bfa3-7e5127249fe8" alt="" width="375"><figcaption></figcaption></figure>

Note that the expected execution price can differ somewhat from the 'Last price' you see on chart. Expected execution price takes into account the potential price impact of your order and the pool fees.

If you want more details, you can expand the route section:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Fz7KivJHBnLvte4yd4kim%2Fimage.png?alt=media&amp;token=eafe4e69-0b79-4401-85d9-d1e357ad7392" alt="" width="375"><figcaption></figcaption></figure>

**Price impact** - is by how much your order will move the price of the token. \
Larger orders on less liquid tokens will impact the price more.

**Max. slippage** - if the market moves so that the actual amount of tokens you'll receive will be less than your expected amount by this % or more, the swap will be reverted. It is set by default to 5% and can be changed manually if neede&#x64;*.*

**Swap fee** - goodcryptoX [fee](/ecosystem/dex-swap-fee) including all discounts.

**Network fee** - expected gas cost of this swap.

**Order routing** - which pools and in which proportion the swap will be routed to.

You can attach a [Stop Loss](/dex-trading-spot/manual-orders/stop-loss) and/or a [Take Profit](/dex-trading-spot/manual-orders/take-profit) to each swap:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FNucHPCPT0xFHsgmWtsc2%2Fimage.png?alt=media&amp;token=9cd18cdf-3d3d-4da2-ab8a-d614184161ce" alt="" width="375"><figcaption></figcaption></figure>

Once you complete the setup, click 'confirm swap' to send your swap to the exchange. You'll see a loader on the 'confirm swap' button while the system waits for its execution. Once your swap gets confirmed, it will appear in the 'Orders' list under the chart, showing you how many tokens you've spent/received as the result of the swap and its actual execution price:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2F7Giy0KZtVhPLnJplEqxd%2Fimage.png?alt=media&amp;token=c72da6fe-e45d-49b4-82c0-2cc54b1d3595" alt="" width="375"><figcaption></figcaption></figure>

You can click on it to expand the swap details:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FG6mBLbJ13jO8Ql2LFEdf%2Fimage.png?alt=media&amp;token=9a8ad066-4396-4a0a-b8cb-1779a5d690c0" alt="" width="375"><figcaption></figcaption></figure>

You can see here your actual [gas cost](/wallets/built-in-wallet/gas-fees), the [swap fee](/ecosystem/dex-swap-fee) that we charged, the actual route of your order and its price impact. If any transactions were [batched](/wallets/built-in-wallet/smart-contract-wallets/transaction-batching) with your swap (e.g. token spend approve) - they will also appear here.&#x20;

We also provide links to view your swap on blockchain explorers. jiffyscan is tailored to smart contract wallets transactions. If you want to dive under the hood to [understand](/wallets/built-in-wallet/smart-contract-wallets/decoding-scw-swaps) all the nitty-gritty details - it's the place to go.


# Limit

Limit (or stop market) order sends a swap to the exchange when the chosen limit price is reached.

Setting up a limit order has only one difference from setting up a [swap](/dex-trading-spot/manual-orders/swap) order - you have to set the price at which you want your swap to be sent to the exchange:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FQ4V0ELKBf6upEYja8Sxx%2Fimage.png?alt=media&amp;token=c66eed01-0481-4fc7-8a7a-443d34630c01" alt="" width="375"><figcaption></figcaption></figure>

On this screenshot we are bying ETH ('Get') with USDT ('Spend'). Current market price is 3,370.11 USDT for 1 ETH as shown on chart. We set the limit price to 3,000 USDT for 1 ETH. Once the swap is confirmed, our system will wait for the market price to fall to 3,000 USDT and send the swap to the exchange once it does.&#x20;

Since goodcryptoX is a [non-custodial](broken://pages/L4Iv87EmMqUe8950OX0w) wallet, we will use the [session key](/wallets/built-in-wallet/smart-contract-wallets/session-keys) to execute (sign) the swap.

Note that if we want to sell ETH for USDT, the limit price will initially be denominated in ETH (the 'Spend' or quote currency):

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FenDI8KOGUyDd4AKflUVe%2Fimage.png?alt=media&amp;token=7ea53f7f-5ddc-45f1-96ff-8cb1c1bd4c03" alt="" width="375"><figcaption></figcaption></figure>

The chart will show the USDT/ETH pair.

However, by clicking on 'ETH' in the limit price field, you can switch the price to USDT ('Get' or base currency). This way, it will be easier to set up an order that, say, will sell ETH when its price rises to, for example, 5,000 USDT or falls to 2,000 USDT.

Switching the limit price currency will automatically switch the chart as well.

Also note, that the route and its details, such as price impact and expected gas cost, are based on the current market. Your limit order, however, will execute at some point in the future. Thus, the route, the price impact, and the gas cost might be different at that point.

Before confirming the swap, choose whether to attach a [Stop Loss](/dex-trading-spot/manual-orders/stop-loss) and/or a [Take Profit](/dex-trading-spot/manual-orders/take-profit) to this order.

Once you confirm the swap, it will immediately appear in the 'Orders' list (at this point your order lives on our servers only) as 'Waiting':

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FYkYruHTGBgptZpHIomQ8%2Fimage.png?alt=media&amp;token=3e1c2ffb-af72-4fe1-94e3-665ffca61fb6" alt="" width="375"><figcaption></figcaption></figure>

You can cancel an open ('Waiting') limit order at any point by clicking the 'cancel' button next to it.

Note that despite setting the limit price in USDT ('Get') for this order, it will still be shown in ETH ('Spend') in the orders list. If you want to see its USDT ('Get') equivalent, click on the order to expand its details:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2F7mIeqDRXeposiBQ5sx0e%2Fimage.png?alt=media&amp;token=dd0fa875-940b-4f94-b9d0-6b88c3d31abc" alt="" width="375"><figcaption></figcaption></figure>

Once your target limit price is reached, the order will trigger and send the swap to the exchange. Once it executes, the order status will change to 'Swapped' and will show the actual execution price, actual amount of coins that you received or spent, actual price impact, and the gas cost.

Note that the limit price that you set ('Trigger Price' in order details) and the actual execution price of the swap will differ due to price impact, slippage, and pool fees:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FNNG3pbonhDHtWE7M8C7w%2Fimage.png?alt=media&amp;token=62150d2e-2a2e-46dc-89bf-6e089cc1d4fa" alt="" width="375"><figcaption></figcaption></figure>

If you've enabled push notifications for GoodCrypto in your browser or have them set up in GoodCrypto iOS or Android apps, you will receive a [notification](broken://pages/EK7yY7NIySAZ1HhY8LZj) once your limit order executes.

If you attached TP and/or SL to your limit order, they will become active ('Waiting') at this point.


# Trailing

Trailing (or trailing stop) order follows the market price at the chosen distance when it moves in your favor, but stays in place when the price moves against you.&#x20;

When the market price touches the order, the swap is sent to the exchange.

Trailing order can be used to enter a position (buy coin) at a lower price at the exact moment the price stops falling and starts going up:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Fn0XWLwa75w3CcCKu3GXI%2Fimage.png?alt=media&amp;token=c1ea3336-8347-43c9-b09b-ec786563428b" alt="DEX trailing stop buy order" width="563"><figcaption><p>trailing buy moves lower each time the market price moves lower, but stays in place when it rises</p></figcaption></figure>

Trailing stop can also be used to exit a position (sell coin) at a higher price at the exact moment it stops growing and starts falling:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Fhrb818YjmQ8RthTZ2yyd%2Fimage.png?alt=media&amp;token=645b490e-e373-47f4-8e1d-811f62354adf" alt="DEX trailing stop sell order" width="563"><figcaption><p>trailing sell moves higher each time the market price moves higher, but stays in place when it falls</p></figcaption></figure>

### Setting up `trailing buy` order

To set up a trailing buy order, enter the coin you want to buy into the 'Get' field and choose the distance that you want your order to follow the market price at:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FIIx8wT5fcmdUtIbdC9wZ%2Fimage.png?alt=media&amp;token=50bddf81-09fd-4525-a0cf-05ea93eece07" alt="" width="375"><figcaption></figcaption></figure>

In this example I'm buying 100m PEPE with a 10% follow distance. This means that my order will initially be placed 10% above the current market price. If the price moves lower (PEPE becomes cheaper), the order will move lower automatically (to keep it at 10% from the new, lower market price).

If the price will rise, the order will not move. This means that it will be triggered when the price rises 10% from the lowest point it reaches after I create the order.

The worst case scenario in this example is that the price will rise 10% immediately after I create the order. In this case I will buy PEPE at 10% higher than I could have bought at if I sent a [swap](/dex-trading-spot/manual-orders/swap) order instead.

The amount in the 'Spend' field reflects this worst case scenario - that's why it says 'Not more than:'. That's the amount you'll spend if the price goes against you (rises) right away and never moves in your favor. If the price goes lower even a bit - you'll spend less.

To ensure that I will buy cheaper than the market price at the time of the order creation, I need the price to fall 10% or more.

Keep the above in mind when choosing your 'Follow price at' percentage: you need to set it high enough so that the order will not be triggered by the short-term market movements. But also not too high - since it will increase the probability that the price never moves in your favor enough.

The best 'Follow price at' distance will depend on the volatility of the coin you are buying and the general market volaitilty at that moment. More volatile coins and more volatile market generally require higher 'Follow price at' percentage.

### Setting up `trailing sell` order

To set up a trailing sell order enter the coin you want to sell into the 'Spend' field and choose the distance that you want your order to follow the market price at:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Fq1YJpgqSDDs2cLWt6por%2Fimage.png?alt=media&amp;token=38468e2f-43de-4034-97bc-7e390ceabf69" alt="" width="375"><figcaption></figcaption></figure>

Note, that the chart shows 'Get'/'Spend' (ETH/PEPE) price by default. Switch it manually to 'Spend'/'Get' (PEPE/ETH) for a more intuitive order setup (switching the chart does not affect the order, but makes it easier to understand the setup):

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FwNjOZFrpTDjpRGVhOMqY%2Fimage.png?alt=media&amp;token=b6647afc-33e3-4062-952f-ead23145ba4c" alt="" width="375"><figcaption></figcaption></figure>

In this example I'm selling 100m PEPE with a 10% follow distance. This means that my order will initially be placed 10% below the current market price. If the price moves higher (PEPE becomes more expensive), the order will move higher automatically (to keep it at 10% from the new, higher market price).

If the price will fall, the order will not move. This means that it will be triggered when the price falls 10% from the highest point it reaches after I create the order.

The worst case scenario in this example is that the price will fall 10% or more immediately after I create the order. In this case I will sell PEPE at 10% lower than I could have sold at if I sent a [swap](/dex-trading-spot/manual-orders/swap) order instead.

The amount in the 'Get' field reflects this worst case scenario - that's why it says 'At least:'. That's the amount you'll get if the price goes against you (falls) right away and never moves in your favor. If the price goes higher even a bit - you'll get more.

To ensure that I will sell higher than the market price at the time of the order creation, I need the price to rise 10% or more.

Keep the above in mind when choosing your 'Follow price at' percentage: you need to set it high enough so that the order will not be triggered by the short-term market movements. But also not too high - since it will increase the probability that the price never moves in your favor enough.

The best 'Follow price at' distance will depend on the volatility of the coin you are selling and the general market volaitilty at that moment. More volatile coins and more volatile market generally require higher 'Follow price at' percentage.

### Trailing Start (optional)

By default, trailing orders start following the market price immediately after you confirm them.

However, you can choose when your order starts trailing after you create it. In the trailing distance field, there is a toggle:

`Now` – start trailing immediately (default)

`At price` – start trailing only when the market hits a specific price

`Webhook` – start trailing only after a webhook alert is received

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FwxgprW7wQnAVneUeGct2%2Fimage.png?alt=media&amp;token=23e1b683-1d50-4671-b801-a4333ca80844" alt="" width="375"><figcaption></figcaption></figure>

⸻

**Example – Trailing Buy with Price Start**

Let’s say you want to start trailing only if ETH drops to $1,500.

You select Start at: Price → $1,500, and set a 5% trailing distance.

This means the trailing logic begins only if ETH hits $1,500 — then it will start trailing 5% above the falling market price.

If ETH bounces, you’ll buy on a 5% rebound. If it keeps falling, your entry price improves.

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2F5PO7NYCEUbewpiTAjlBM%2Fimage.png?alt=media&amp;token=842a116c-abca-471d-9c4a-aacb94acba98" alt="" width="375"><figcaption></figcaption></figure>

⸻

**Example – Trailing Sell with Webhook Start**

You want to start trailing only if a TradingView alert fires — for example, when ETH breaks a resistance line.

You select Start at: **Webhook**, and set a 10% trailing distance.

When the webhook is received, the order starts trailing 10% below the price — and will sell if ETH falls by that amount after the webhook trigger.

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FezKdkZppRhhcur4zxh18%2Fimage.png?alt=media&amp;token=9d5590c6-7938-4dbb-b877-f944760e3680" alt="" width="375"><figcaption></figcaption></figure>

Once the order is created, go to its details to find the Webhook URL you need to point your TradingView alert to (more details in our [Webhooks](/dex-trading-spot/webhooks) section):

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FdRRplyrSDHzyoXJ8xZgK%2Fimage.png?alt=media&amp;token=4b304d13-ae3a-40d1-bf36-3403ddd8c2fa" alt="" width="375"><figcaption></figcaption></figure>

⸻

Once the start condition is met, the trailing behaves exactly as usual: the trigger moves with the price as long as it’s going in your favor, and the order fires when the market reverses by the trailing distance.

***

Note that the route and its details, such as price impact and expected gas cost, are based on the current market. Your trailing order, however, will execute at some point in the future. Thus, the route, the price impact, and the gas cost might be different at that point.

Before confirming the order, choose whether to attach a [Stop Loss](/dex-trading-spot/manual-orders/stop-loss) and/or a [Take Profit](/dex-trading-spot/manual-orders/take-profit) to this order.

Once you confirm the swap, your trailing stop order will immediately appear in the 'Orders' list (at this point it lives on our servers only) as 'Trailing' - meaning it is active and is trailing (following) the market price:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FhDwHnc3OME5uwFqXDPYX%2Fimage.png?alt=media&amp;token=ac879239-3ad5-4485-a2a9-72a960868902" alt="" width="375"><figcaption></figcaption></figure>

Once the trigger conditions are met (the price moves against you by the follow percentage), the order will trigger and send the swap to the exchange. Once it executes, the order status will change to 'Swapped' and will show the actual execution price, actual amount of coins that you received or spent, actual price impact, and gas cost.


# Take Profit

When enterng a position (buying a coin), Take Profit order allows you to set up an exit (order to sell the coin) by simply inputting your desired profit %.

To add a Take Profit to your order, click '+TP' in the swap setup form:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FNEhKEcZwpqRBfEQOQECT%2Fimage.png?alt=media&amp;token=d338187d-52f1-46e9-892c-432d9390571b" alt="How to add Take Profit order on Uniswap DEX" width="563"><figcaption></figcaption></figure>

Input your desired profit level into the 'Take Profit' field - and you are good to go:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2F5hssSLt917jPcWPsmn9n%2Fimage.png?alt=media&amp;token=87e446ab-bd25-483d-bed4-21f2408015a1" alt="" width="563"><figcaption></figcaption></figure>

Once your main order executes, we will automatically open a Take Profit order to sell the exact amount of coins you've received, and will calculate where to place its trigger based on the actual execution price of your main order and your desired profit percentage:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FuBe77eaQvsOUUbviZGVT%2Fimage.png?alt=media&amp;token=17543726-886f-42c9-abcf-8a9596f87e96" alt="" width="563"><figcaption></figcaption></figure>

You can see that I bought 1 DEGEN on Base at 0.000010564 ETH, and the system placed a Take Profit order to sell 1 DEGEN at 10% higher (at 0.000011621 ETH).

Once my target price is reached, the Take Profit will be triggered and the swap will be sent to the exchange.

***

You can connect Take Profit to any order: Swap, Limit or Trailing.

You can set your desired profit between 0.1% and 999%.

You can choose to connect only Take Profit to your main order - if you are are willing to hold the coins until the price reaches your desired level no matter how low it might fall in the interim.

Or, you can protect your downsinde by connecting a [Stop Loss](/dex-trading-spot/manual-orders/stop-loss) order as well - making it a [TP + SL combo](/dex-trading-spot/manual-orders/tp-+-sl-combo).

***

Coming soon: Trailing Take Profit, Multiple Take Profit Targets, realized and unrealized PnL calculation for the main order.


# Multiple Take Profits

*documentation* *coming soon...*


# Stop Loss

When enterng a position (buying a coin), Stop Loss order allows you to protect your downside and limit your losses in case the market moves against you. Stop Loss order exits your position (sells the coins) at maximum loss % you are prepared to tolerate. All you need to do to set it up is input the %.

To add a Stop Loss to your order, click '+SL' in the swap setup form:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FG9dlXIsygf4sn3xEwwu2%2Fimage.png?alt=media&amp;token=aed33dc3-2b8a-4abc-bb63-bd643f405dd4" alt="" width="563"><figcaption></figcaption></figure>

Input the maximum loss % you are prepared to tolerate into the 'Stop Loss' field - and you are good to go:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Fs4UHjbxXstPlzB2Mh6Ga%2Fimage.png?alt=media&amp;token=0a18e2fa-63dd-4f98-bdd2-d9203ae57f04" alt="" width="563"><figcaption></figcaption></figure>

Once your main order executes, we will automatically open a Stop Loss order to sell the exact amount of coins you've received and will calculate where to place its trigger based on the actual execution price of your main order and your Stop Loss percentage:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FFJ3ZOaOSGl83e8rR5Big%2Fimage.png?alt=media&amp;token=c99c422e-90ac-4159-b358-702bc8079a1e" alt="" width="563"><figcaption></figcaption></figure>

You can see that I bought 1 DEGEN on Base at 0.000010770 ETH and the system placed a Stop Loss order to sell 1 DEGEN at 5% lower (at 0.000010231 ETH).

If the market goes against me and the price falls to my stop loss target, the Stop Loss will be triggered and the swap will be sent to the exchange.

***

You can connect Stop Loss to any order: Swap, Limit or Trailing.

You can set your Stop Loss percentage between 0.1% and 99.9%.

You can choose to connect only Stop Loss to your main order - if you are willing to let the coin 'run' and have not decided when to take the profit yet, but want to protect your downside.

Or, if you know how much profit you are comfortable with, you can connect a [Take Profit](/dex-trading-spot/manual-orders/take-profit) order as well - making it a [TP + SL combo](/dex-trading-spot/manual-orders/tp-+-sl-combo).

***

Coming soon: Trailing Stop Loss, move to SL to breakeven, realized and unrealized PnL calculation for the main order.


# Trailing Stop Loss

*coming soon...*


# TP + SL combo

*coming soon...*


# Modify orders

{% embed url="<https://youtu.be/Dreeo0VYb2I?si=SmYVCmMIfhwCI3JK>" %}

*documentation* *coming soon...*


# Bots


# DCA bot

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Fc7sD2GZjv4GEC8y3UwV7%2Fimage.png?alt=media&amp;token=93da429f-ba00-479c-87fe-0f4cf25d200f" alt="DEX DCA bot"><figcaption></figcaption></figure>

DEX DCA bot is a versatile tool enabling multiple trading strategies previously only available on cetralized exchnages.

DCA stands for dollar-cost averaging, meaning that the bot enters a position and then places additional orders if the price moves against you, averaging down your cost basis.&#x20;

The bot automatically adjusts your Take Profit and Stop Loss as your position changes.

After Take Profit or Stop Loss are triggered the bot can either stop or repeat with the same settings.

This enables several use cases for the bot:

1. **SAFETY NET**\
   Enter positions knowing that should the market move against you, you'll buy more at a lower price and your TP will be adjusted to reflect that. All without you lifting a finger.
2. **VOLATILITY SCALPER**\
   Run the bot on volatile coins on repeat - rack up hundreds of profitable iterations by covering 50%+ price range with averaging orders and going martingale on orders size (each averaging order 2x of previous).
3. **SCALE ORDER**\
   If your entry strategy involves placing multiple orders on several levels - use the bot to do that for you. If you don't plan to use the bot's automated TP - set it at an unreasonable level (say, 999%) and stop the bot once it enters the required position.
4. **MULTIPLE TAKE PROFITS**\
   If you want to place multiple Take Profits to your existing position, select the position's coin in the bot's "Spend" field. The bot's entry and averaging orders will act as your Take Pofit levels. Set the bot's TP to an unreasonable level so it won't mess with your setup.
5. **BTFD**\
   Buy the f\*ing dip! Accumulate ETH, BTC, SOL and other top coins automatically taking advantage of the market dips. Trend is your friend - if you believe that the coin will ultimately go up, then the lower it goes the more you want to buy it. DCA bot is the perfect tool for it.

Here is our DCA bot's video overview:

{% embed url="<https://youtu.be/P5o1s9-YoYE>" %}
Part 1: Overview
{% endembed %}

We are also running a dedicated [TG channel](https://t.me/+EFAh0cdHrXw0OTNh) where we post our best-performing DCA setups - both for centralized and decentralized exchanges. Join to get new trading ideas and share your experience.


# Features & setup

Watch the features & setup video overview and/or read the step-by-step instructions below:

{% embed url="<https://youtu.be/e1jKrYwzsbU>" %}
Part 2: Features and setup
{% endembed %}

***

Choose the blockchain you want to run your DCA bot on and select "DCA" as the order type:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FAUurzZ7C2QysuVDMYLEl%2Fimage.png?alt=media&amp;token=024950fb-5139-43a6-8f7e-5f0d353e8167" alt="Base DCA bot"><figcaption></figcaption></figure>

Next, select the coins your DCA will be spending and getting:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FikeqR9pFxCFXzCiiDPKA%2Fimage.png?alt=media&amp;token=6ecb62b2-9824-429a-9d3a-c1ab162754f2" alt=""><figcaption></figcaption></figure>

The bot's profit/PnL will be in "Spend" coin.

Next, you have the presets that you can use to pre-fill all the settings:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Fhlwqo4ZDB5Nj3bBvKqAp%2Fimage.png?alt=media&amp;token=c48fde4d-e142-4ef3-a805-84a993802536" alt=""><figcaption></figcaption></figure>

We do not recommend using these setups blindly. Instead, view them as foundations for creating your own setups. Customize them according to token’s volatility, your risk tolerance, and the market regime.

* 🥇 **Prime** - use for established coins with relatively low volatility. Such coins are typically found within the top-300 by market cap;
* 🔥 **Degen** - aggressive setup for ~~shit~~ memecoins, covering a much larger price range and offering higher profit potential;
* 🛡️ **Vault** - conservative setup, best suited for relatively stable coins like BTC, ETH, or SOL.

After selecting the coins you want to trade, the next step is to define how the bot will open its initial position. For this you need to select the entry order size and choose the order type it will use:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2F7w739KWpthsxelXgfzS8%2Fimage.png?alt=media&amp;token=ae6191be-8407-4e6d-ac67-0cb368e5a85b" alt=""><figcaption></figcaption></figure>

The entry order by default is set in the "Spend" currency. It means that the bot is runnung in "Cost" mode where you set the amount of funds you want to at each level. You can switch it to "Get" currency to define the amount of coin you want to buy at each level. This switches the bot into "Size" mode. We suggest to stick with the default "Cost" mode. You can understand the modes better by watching this video:

{% embed url="<https://youtu.be/3ahAXp69uWk>" %}

There are three order types available to use here:

* [**Swap**](/dex-trading-spot/manual-orders/swap) - will enter the position right away;
* [**Limit**](/dex-trading-spot/manual-orders/limit) - will be placed at the chosen distance below the market price (limit distance). E.g., if you set it at 5%, the entry order will be placed 5% below the current market price. If the bot is set to repeat itself after taking profit, the next entry order will be placed 5% below the TP level;
* [**Trailing**](/dex-trading-spot/manual-orders/trailing) - will keep its trigger at the chosen distance (trailing distance) above the market price if it falls, but will stay in place if it rises. Will enter position when the price rises enough to touch the trigger. E.g., if you set the trailing distance at 10%, the bot will initially place the order trigger 10% above the current market price. If the price falls, the trigger will go down with it, maintaining the 10% distance. Whenever the price rises by 10% from its low, the order will trigger.

Next, you need to set the averaging orders that will be placed below the entry and will act as a "safety net". Here, you need to determine how many of those orders you want to place (`Orders #`), how far down the price range (`Price step` + `Price step multiple`), and what their size will be (`Size multiple`):

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2F9P0lWjV2ILtEQyUwQGTp%2Fimage.png?alt=media&amp;token=254bf755-1ef1-48b3-80db-d83454089d50" alt="DCA bot safety orders"><figcaption></figcaption></figure>

**Orders #** - choose how many additional orders you want to place below the entry order.

**Size multiple** - defines the size of each averaging order relative to the previous one. I.e., if you set the multiple at 1, the size of each order will be equal to the previous one. If you set the size multiple at 2, each subsequent order will be two times larger in size than the previous. Size of the first averaging order is defined relative to the entry order size.

**Price step** - basic distance between the averaging orders.

**Price step multiple** - if set to 1, the distance between all averaging orders will be equal to the price step. If to >1, the distance will increase with each order, if to <1, the distance will decrease.

I.e., if you set the price step at 2.5%, and the price step multiple to 1, all averaging orders will be placed at 2.5% from each other. If you increase the price step multiple to 2, the first averaging order will be placed 2.5% below the entry order, the second averaging order at `2.5% x 2` from the first, the third at `5% x 2` from the second and so on.

Next, you need to set your **Take Profit** and (optionally) Stop Loss:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FzeOzs72LdtNABwnwRjyG%2Fimage.png?alt=media&amp;token=e34bb63b-9186-4770-9933-cde2a71e041a" alt="" width="375"><figcaption></figcaption></figure>

There are two options for the Take Profit order type: [swap](/dex-trading-spot/manual-orders/swap) or [trailing](/dex-trading-spot/manual-orders/trailing). With the swap selected, once the target level is reached, the order will execute immediately.

The Trailing Take Profit, on the other hand, once the target level is reached, won't trigger but will start trailing (following) the market price at the set distance (trailing distance) below it. If the price continues rising, your Take Profit will move higher with the market, potentially capturing additional upside. Once the price falls by the trailing distance from its high, the Trailing Take Profit will execute.

**Stop Loss** percentage is the distance from the last averaging order, not from your entry price. I.e. if you set it at 5%, your Stop Loss will be placed 5% below the last averaging order. The Stop Loss is optional - you can run the bot without it, if you are comfortable holding the coin you buy even if the price falls below your bot's price range.

Next up are **Stop** and **Repeat** settings:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2F7bLXzdHvHQuZcvugVoEM%2Fimage.png?alt=media&amp;token=e2bf1b1b-f85a-440f-aefe-f92526bd4e7b" alt="" width="375"><figcaption></figcaption></figure>

**Repeat on TP and SL** - if you turn them on, the bot will repeat itself with the same settings after hitting either Take Profit or Stop Loss. If you turn them off - it will simply stop. You can also choose to repeat the bot after Take Profit, but stop after reaching the Stop Loss.

**Cooldown** - defines the time period that the bot will wait after TP and/or SL before starting the new cycle.

**Close pos. on stop** - if turned on, the bot will try to close its position whenever stopped, - either manually or because of encountering an error, e.g. "insufficient funds" or "max. slippage" on TP/SL.

Funds needed:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FjXUH6hMvgCnaU1cna6x2%2Fimage.png?alt=media&amp;token=3086aa2a-319d-4690-867e-07fbfea71ac1" alt="" width="375"><figcaption></figcaption></figure>

**Funds needed** - total value of entry and all averaging orders. Shows the amount of "Spend" coin you need to hold for all the bot's orders to execute. \
**NB:** If you are running the bot in Size mode 'on repeat', this amount will increase/decrease with the market price of the coin you trade.

**NB:** you also need to hold blockchain's native currency to pay for gas fees (ETH for Ethereum, Base, and Arbitrum, BNB for BSC, SOL for Solana. Once we add the support for gas in any ERC20 token you'll be able to select the currency you want to pay the gas fees in. If you are running the bot 'on repeat', make sure you have sufficient funds to pay for gas in all the planned bot's iterations.


# Running the bot

{% embed url="<https://youtu.be/R7NRtc7162M>" %}
Part 3: Running the bot
{% endembed %}


# Webhooks

{% embed url="<https://youtu.be/Mx-nD_p2Pgw>" %}

*documentation* *coming soon...*


# 💎 sniper bot

gems sniper is an advanced market screener that lets you discover and auto-buy up-and-coming coins based on plethora of predefined criteria.&#x20;

You can screen the token universe on price, volume, and liquidity changes, social followers growth, number of holders, buying or selling pressure, number of experienced buyers, and a lot more. You can filter your selection by coin age, market cap, security score, and other metrics.

Once you've established your criteria, you can either receive a notification each time a new coin fits your selection or automatically buy such coins with a market ([swap](/dex-trading-spot/manual-orders/swap)) or a [trailing](/dex-trading-spot/manual-orders/trailing) order and attach [Take Profit and Stop Loss](/dex-trading-spot/manual-orders/tp-+-sl-combo) to it.

With this tool even a simple strategy of automatically buying every coin that, for example, reaches $100k TVL and gains over 100k Twitter followers, can produce spectacular results, especially during the bull run.&#x20;

For instance, if you had this tool at your disposal during the previous bull run, you would have bought SHIB in March 2021 and gained over 3,000x two months later. That buy alone would have paid for 2,999 buys of other coins even if all of them went to zero afterwards and you did not sell any. And who knows how many other 100+ baggers you would have caught among those 2,999 coins.

:gem: Gem sniper bot is currently available in TEST MODE (paper trading) with full trading mode coming soon:

{% embed url="<https://youtu.be/Gp5IYj5zRFk?si=KyeOVJM1eF5cmfut>" %}


# DEX screener

The DEX screener is your tool for discovering up-and-coming tokens to trade. Set the criteria that define what an interesting token looks like to you — price action, volume, holders, age, launchpad, anything — and the screener gives you a live list of every actively-traded token across all [supported blockchains](/goodcryptox-2.0/supported-blockchains) that matches.

Once you've found a combination that catches the kind of gems you're looking for, you can either keep using the screener as a discovery dashboard, or hand the same filters off to the [💎 sniper bot](/dex-trading-spot/bots/sniper-bot) to start buying matching tokens automatically.

{% hint style="info" %}
**A few things to know upfront**

* The screener refreshes every **\~10 minutes**. Time periods on filters and columns (**1H, 1D, 1W, 1M**) are **rolling** — "1D" means "the last 24 hours from now", not "yesterday".
* Spent time on a filter combination you like? **Save it as a preset** with one tap. Presets follow you everywhere — they're available here on the screener and inside the 💎 sniper bot setup.
* Click **Launch bot** at the top of the screener at any point to send your current filters straight into a sniper bot setup form, pre-filled and ready to launch.
  {% endhint %}

#### **Filters**

Tap **Add filter** to pick a criterion, set a value, and apply it. Stack as many as you like.

{% hint style="info" %}
**Filters combine with AND.** A token has to pass *every* active filter to show up. There's no OR option — if you want two different sets of criteria, save each one as a preset and switch between them. Multiple filters means "this AND this AND this", always.
{% endhint %}

Tap any filter below to see what it means and when it's useful.

<details>

<summary><strong>Coin age</strong> — how long the token has been actively trading</summary>

Days since the token first started trading on-chain. Useful for either side of the freshness coin — set a low value (like < 1 day) to find brand-new launches, or set a high value to filter out fresh tokens you don't trust yet.

Note that this tracks first *trading* activity, not contract creation. A token whose contract was deployed weeks ago but only became tradable yesterday will show 1 day old, not weeks.

</details>

<details>

<summary><strong>Market cap</strong> — current price × circulating supply</summary>

Standard market cap in USD. Lets you filter for micro-caps, mid-caps, or anything else. For most new meme launches with 100% of supply unlocked, market cap equals FDV — for projects with vesting or locked allocations, the two diverge.

</details>

<details>

<summary><strong>Fully diluted valuation</strong> — current price × total supply</summary>

What the market cap would be if all the token's total supply was in circulation, at the current price. Useful when combined with Market cap: when the two are roughly equal, supply is fully unlocked and there's no hidden dilution coming. When FDV is much higher than market cap, a lot of supply is still locked up and will hit the market over time — relevant if you're worried about future sell pressure from unlocks or vesting.

</details>

<details>

<summary><strong>Trading volume</strong> — total trading volume across all pools over the period</summary>

How much money has changed hands trading this token over the chosen period. Higher volume generally means more interest, more liquidity, and easier entry/exit. Low volume on a token you're considering is usually a red flag.&#x20;

On the other hand, volume can (and often is) manipulated. So do not rely solely on it when looking for potential opportunities.

</details>

<details>

<summary><strong>Price change</strong> — how much the price moved over the period</summary>

The classic momentum filter. "Price up 50% in the last hour" finds tokens having a moment; "Price down 30% in the last day" finds dips. Pair with a volume and/or liquidity, number of traders etc. floors so you're not catching artificial moves on tokens that nobody trades.

</details>

<details>

<summary><strong>Buying pressure</strong> — net buy vs sell volume in USD</summary>

Total buy volume minus total sell volume over the period. A positive number means more was bought than sold; a negative number means the reverse. The size tells you how strong the imbalance is.

When you see a rising price but buying pressure is weak it usually means the price is being moved by very thin orderflow — a few small trades pushing the price disproportionately because no one's there to absorb. That's the classic setup for **wash trading or manipulation on illiquid tokens**: a manipulator can buy a tiny amount to spike the price, paint the chart, attract retail buyers, then dump.

Whereas a rising price with **strong positive buying pressure** = likely lots of real money flowing in = harder to fake.

</details>

<details>

<summary><strong>Volume change %</strong> — how much volume has grown or shrunk over the period</summary>

Percentage change in trading volume compared to the previous period of the same length. Going from $10K to $100K in an hour shows a 900% volume change.

{% hint style="info" %}
**Combine this with an absolute volume floor.** A token going from $1,000/hour to $1,500/hour shows a 50% increase but is still a tiny market. Pair it with absolute volume floor to find tokens that already have real liquidity *and* are accelerating.
{% endhint %}

</details>

<details>

<summary><strong>Holders</strong> — unique wallets holding the token</summary>

The headline holder count. More holders generally means broader distribution and stronger community.

{% hint style="warning" %}
**Holders can be gamed.** Anyone can airdrop dust to thousands of wallets to inflate the number. On its own, a high holder count tells you very little. Combine with volume, unique traders and trade-count filters to lock out the spam.
{% endhint %}

</details>

<details>

<summary><strong>Liquidity</strong> — total USD in trading pools</summary>

How much money is sitting in pools with this token you can trade against. Higher liquidity means lower slippage on your orders and easier exits.

The screener already excludes tokens with less than $10K in liquidity from the universe by default, so a "Liquidity > $10K" filter doesn't do anything — useful values are above that.

</details>

<details>

<summary><strong>Trade count</strong> — number of individual trades over the period</summary>

How many trades have happened on this token over the period. High trade counts mean active markets with lots of participants. Combined with volume, it tells you whether the volume comes from a few whales or from many smaller participants.

On the other hand, on its own can be gamed by multiple bots doing tiny trades. Combine it with trading volume and ohter filters to weed out potential manipulations.

</details>

<details>

<summary><strong>Traders in the last 24h</strong> — unique trading wallets in the last day</summary>

How many different wallets actually traded this token in the last 24 hours. Different from holders (which counts everyone who's holding) and different from trades (which counts transactions). 100 traders making 10 trades each tells a very different story than 1 trader making 1,000 trades.

This filter is fixed to 24 hours — no period switcher at the moment here.

</details>

<details>

<summary><strong>Verified</strong> — token passed an external verification check</summary>

Whether the token has been verified by an external source — Jupiter's verified list on Solana, CoinMarketCap on Ethereum, Base, Arbitrum, BNB Chain. Tokens that pass get a green check on their row.

{% hint style="info" %}
Verified is a good "exclude blatant scams" filter — it doesn't mean a token is safe or going up, just that it's been around long enough and got listed somewhere reputable. Verified tokens can still rug, go to zero, or just underperform. Use it as a baseline, not a guarantee.
{% endhint %}

</details>

<details>

<summary><strong>Launchpad</strong> — token launched on a recognized launchpad</summary>

Filters for tokens that came out of a specific launchpad. Available launchpads depend on the chain:

* **Solana**: Pump.fun, Moonshot, Raydium, Meteora
* **BNB Chain**: Four.meme
* **Other chains**: not available yet

You can select one launchpad or several at once.

{% hint style="info" %}
The screener only shows tokens that are actively trading on public DEXs.That effectively means this filter only shows **graduated** tokens — the ones still in the bonding phase haven't made it to a DEX yet and aren't in the universe.
{% endhint %}

</details>

{% hint style="info" %}
**Looking up a specific token rather than discovering new ones?** The screener is built for discovery, so there's no token search bar in the filter row — but the exact same stats and time-period breakdowns are available in the **token info card**, which shows up below the order setup form whenever you select a token on the DEXs. Paste in a contract address, token name or ticker, and you'll see the full screener-grade breakdown for that specific token in the info card below the form.
{% endhint %}

#### **Mechanics**

**Where to find the screener**

On **web**, it's **Screener** in the left sidebar. On **mobile**, tap the 💎 in the top-left of the DEXs page — or set the screener as your bottom-menu shortcut in Settings, or turn your phone sideways to bring up the full side menu.

The screener always follows the chain you've selected at the top of the app. Switch chains, you see a different list.

**Sorting and customizing columns**

Click any column header to sort by it. Columns with time-based values have a small period badge next to the name (like `1D`) — tap to switch between 1H / 1D / 1W / 1M.

Drag the column headers around to reorder them.

Hit the ⚙️ inside the Token column header to enter edit mode. From there, add or remove columns.

**The token info popup**

Hover (web) or tap (mobile) any token name to bring up the info popup. You'll see a quick view of all its stats, plus two shortcuts: ⭐ to favorite the token, or ⇄ to jump straight to its trading page.

The same info card also appears below the order setup form on the DEX trading page whenever a token is selected — so if you want the screener's stats for a specific token rather than discovering new ones, just pick the token there.

**Presets and Favorites**

Got a filter combination you want to come back to? Three-dot menu next to the filter row → **Save** → give it a name. Your presets show up on the screener and inside the 💎 sniper bot setup, so the same combination works in both places.

One preset comes built in: **Favorites**. It's your personal watchlist, populated whenever you ⭐ a token from anywhere in the app.

**Sending filters to a 💎 sniper bot**

Once your filters are giving you a list of tokens you'd actually want to buy, hit **Launch bot** at the top of the screener. The 💎 sniper bot setup form opens with your filters pre-filled — adjust the order size and TP/SL, and you're a click away from automated buys.

This is the recommended workflow: build and refine your filters in the screener (where you can see what they match in real time), then hand them off to a bot once you're happy.

See the [💎 sniper bot](/dex-trading-spot/bots/sniper-bot) docs for everything about the bot itself.


# Webhooks

goodcryptoX allows you to automate DEX trading via TradingView webhooks — a powerful mechanism for triggering orders and bot actions directly from your signals.

Unlike some implementations that treat webhooks like a programmable API (where you send parameterized commands like "buy 3 BTC"), goodcryptoX currently supports a trigger-based model. Each webhook simply activates a predefined action on a specific order or bot — no parameters or commands are interpreted.

In the near future, we will launch a new TradingView Strategy bot that supports full strategy instructions via webhooks, including dynamic symbol selection, quantities, order types, and multi-symbol logic — effectively acting as an API layer. Stay tuned

> Webhooks are only accepted from TradingView servers for now — no custom IPs or external sources.\
> If you need to use a custom webhook source, contact us at <support@goodcrypto.app> to request access.

### How webhooks work in goodcryptoX

* Every order or bot **action** has its own dedicated webhook URL
* You must create the order or bot first to get the URL (they will appear in the **Webhooks** section of the order or bot's **Details**)
* Sending **any** webhook payload to that URL will trigger the action

Here is a video overview:

{% embed url="<https://youtu.be/Mx-nD_p2Pgw>" %}

> Webhook URLs are action-specific. You must create one webhook per action, e.g. one for entry, one for take profit, one for stop loss, etc. for every bot or order

### Supported order and bot actions

If you want your order or bot to be **triggered by a webhook**, you must select webhook as the **trigger condition during setup**. This applies to:

* Limit orders trigger
* Trailing order activation (trailing start)
* Take-profit and stop-loss triggers&#x20;
* DCA bot entry condition

> **Cancel** webhook — always available in all orders and bots
>
> **Close position** webhook — always available in DCA bot details

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Fl2pfeXIwqa1tpvsFEldb%2Fimage.png?alt=media&amp;token=99ca6c17-d547-47c7-abaf-1d1e3bb4e03a" alt="" width="375"><figcaption></figcaption></figure>

After creation, you’ll find all available webhook URLs in the **Details** of your order or bot:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FlG04MgjoXROWz32j0tN4%2Fimage.png?alt=media&amp;token=08009fa1-7757-4495-b60e-1165e12887b3" alt="" width="375"><figcaption></figcaption></figure>

To sum up:

| Action                          | Supported? | Notes                                             |
| ------------------------------- | ---------- | ------------------------------------------------- |
| Cancel order                    | ✅          | Always shown in details                           |
| Trigger Limit order             | ✅          | Must select webhook at setup                      |
| Activate Trailing order         | ✅          | Trailing start = webhook                          |
| Trigger take profit / stop loss | ✅          | Optionally webhook-triggered                      |
| DCA bot - entry                 | ✅          | Entry buy/sell via webhook (must be set at setup) |
| DCA bot - exit                  | ✅          | Close position via webhook (always available)     |

{% hint style="info" %}
**Multiple take-profit targets with webhooks**

If you set up a take-profit group using webhook as the trigger method, they will all share the same webhook URL. Each time the webhook is triggered, the next TP order in the sequence will execute — one by one.
{% endhint %}

### How to set up alerts in TradingView

Once you’ve created your order or bot in goodcryptoX and copied the webhook URL for a specific action, here’s how to link it to your TradingView alerts:

1. Go to your chart in TradingView
2. Create a new alert based on your strategy, indicator, or condition
3. In the **alert settings**, enable the checkbox **“Webhook URL”**
4. Paste in the specific webhook URL from the goodcryptoX **Available webhooks** section
5. Leave the **message field** as-is (any content is fine — goodcryptoX ignores the payload for now)
6. Save the alert

### Repeating strategies (via DCA bot)

A webhook-triggered order (e.g. limit with TP and SL) is a **one-time setup**. Once the order executes and the linked TP or SL fires, the entire trade is complete. If you want this structure to **repeat automatically**, that’s not possible with orders — but it is achievable now using the DCA bot.

We will soon introduce a dedicated TradingView strategy bot to support repeating multi-action trades, but in the meantime, DCA bot provides a flexible way to repeat your webhook-driven strategy.

#### Pure webhook loop

To set up a bot that enters a position on a webhook, exits on a webhook, and then repeats:

1. Set **entry condition** = webhook
2. Set **averaging orders** = 0 (disable averaging)
3. Disable both **take**-**profit** and **stop-loss**
4. Enable **"Repeat on close position"**

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FNUBBrWgJqqqvjcnLBw7C%2Fimage.png?alt=media&amp;token=ced6146d-5d8e-4496-94bc-0cb08cb57282" alt="" width="375"><figcaption></figcaption></figure>

Once the bot is launched, you’ll see the following webhook URLs under the bot's **Details → Webhooks** section:

* **Enter Buy** — opens a Long position
* **Close position** — closes the active position (long or short)
* **Cancel** — stops the bot

**Execution logic**

* When the bot receives **Enter Buy**, it opens a long position.
* The bot will **only respond to the first entry webhook** it receives while idle.
* While a position is open:
  * Any further entry signals are **ignored**
  * The only accepted signals are **close position** or a triggered TP/SL (if configured)
* Once the position is closed (manually, by webhook, or by SL/TP), the bot resets and waits for the next Entry webhook.

This loop continues as long as the bot remains active, allowing you to repeat a complete entry → exit → reset cycle indefinitely.

#### Pure webhook mode vs hybrid setups

The DCA bot supports multiple control layers that can be combined to build flexible strategies:

* **Entry**: via webhook, signal, or instant
* **Exit**: via webhook, or built-in price-based TP/SL
* **Averaging**: optional; can be disabled

You can:

* Run a bot entirely via webhook signals (entry and exit)
* Add price-based TP/SL as fallbacks, even if you use webhook exits
* Add averaging orders for additional protection

This makes it possible to design:

* Fully automated loop strategies (pure webhook)
* Signal-driven bots with manual failovers
* Hybrid setups with multi-layer exits

### Practical webhook strategy examples

#### Example 1: One-off order + multiple take profits (Bollinger Band bounce)

**Goal:** Buy when price breaches lower Bollinger Band, sell progressively as it climbs.

**Setup in goodcryptoX**

* Create a limit order with trigger condition = webhook
* Add three take-profit targets. TP trigger = webhook

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Ffg4E339WmltyEDaiNjma%2Fimage.png?alt=media&amp;token=0ee7cab9-7575-4ac2-89c4-841693b2ba77" alt="" width="375"><figcaption></figcaption></figure>

**Setup in TradingView**

Create four alerts:

1. Price breaches lower band → send to main order's **Trigger** webhook URL
2. Price returns inside band → send to **Take Profit Trigger** webhook URL
3. Price crosses mid-band → send to **Take Profit Trigger** webhook URL
4. Price breaches upper band → send to **Take Profit Trigger** webhook URL

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Fc3oNniHr6lmTUwc8qQ7V%2Fimage.png?alt=media&amp;token=9787c6e6-5744-48cc-8ae1-a891fd775e8e" alt="" width="375"><figcaption></figcaption></figure>

In the **alert settings**, enable the checkbox **“Webhook URL”**

Paste in the specific webhook URL from the goodcryptoX **Available webhooks** section. Leave Message field as is — it is not used.

#### Example 2: Repeating strategy with DCA bot (Golden/Death Cross)

**Goal:** Enter long on Golden Cross, enter short on Death Cross. Exit with a 10% profit or when RSI > 70 and repeat forever.

**Setup in goodcryptoX**

Create DCA bot

* Entry condition = webhook
* Averaging = off (set to 0)
* Take Profit = 10%
* Stop loss = off
* Enable: "Repeat on TP"

**Setup in TradingView**

* Create three alerts on the same chart:
  1. SMA50 crosses above SMA200 → send to **Enter Buy** webhook
  2. SMA50 crosses below SMA200 → send to **Enter Sell** webhook
  3. RSI > 70 → send to **Close position** webhook

### Summary

| Concept            | Description                                                    |
| ------------------ | -------------------------------------------------------------- |
| Trigger model      | Each action has its own webhook URL                            |
| Setup flow         | Create order → copy webhook URL → paste into TradingView alert |
| Repeating strategy | Use DCA bot with repeat enabled                                |


# Orders mechanics

*documentation* *coming soon...*


# Errors

*documentation* *coming soon...*

While we are writing a comprehensive documentation for this, if your swap failed on an EMV chain (Ethereum, Base, BNB chain, Arbitrum) — check out our [Decoding Smart Contract Wallet swaps](/wallets/built-in-wallet/smart-contract-wallets/decoding-scw-swaps) chapter - it will help you understand what's going on.&#x20;


# Routing

*documentation* *coming soon...*


# Gas fees

*documentation* *coming soon...*


# Max. slippage

*documentation* *coming soon...*


# MEV protection

When you trade on a decentralized exchange, your transaction is briefly visible to network participants before it's confirmed on-chain. Specialized bots — known as **MEV searchers** — can exploit that visibility to profit at your expense, most commonly by sandwiching your trade between their own buy and sell orders to push the price against you.

goodcryptoX routes every swap through transaction paths that protect against this kind of harmful MEV. The exact mechanism depends on the chain you're trading on.

<details>

<summary><strong>What is MEV, exactly?</strong></summary>

**MEV** stands for **Maximal Extractable Value** — the profit that block producers and searchers can extract by reordering, inserting, or omitting transactions in a block. On AMM DEXs, the three forms that matter most for traders are:

* **Sandwich attacks** — a searcher spots your pending swap, places a buy order in front of it (pushing the price up), lets your order execute at the worse price, then sells back at the new higher price. You pay the difference, the searcher pockets it.
* **Frontrunning** — a searcher copies your transaction with a higher fee to execute first, capturing an opportunity you would have captured yourself.
* **Backrunning** — a searcher places a transaction *immediately after* yours to capture arbitrage opportunities your trade creates (e.g. a price imbalance between two DEXs). Unlike sandwiching, backrunning doesn't worsen your execution price — it's generally considered "productive" MEV.

Sandwich attacks are the form that costs traders the most, and they're the main thing MEV protection is designed to prevent.

</details>

### **EVM chains: Ethereum, Base, Arbitrum, BNB Chain**

On EVM chains, goodcryptoX submits every swap through **ERC-4337 bundlers** with private transaction routing — **Alchemy** on Ethereum, Base, and Arbitrum, and **Pimlico** on BNB Chain.

When you sign a swap, your transaction is sent to the bundler through a private channel — not the public mempool. The bundler packages it and forwards it directly to validators or block builders for inclusion. Because no searcher ever sees the transaction before it lands on-chain, there's no window during which a sandwich or frontrun can be inserted around it.

This protection is automatic and applies to every order routed through goodcryptoX on these four chains — manual swaps, bot trades, and triggered orders alike. You don't need to enable anything.

### **Solana**

Solana works differently from EVM chains: there's no traditional public mempool. Transactions are streamed directly to the current block leader. This eliminates classic Ethereum-style frontrunning, but a different MEV surface still exists — searchers run their own infrastructure to observe pending transactions through RPC nodes and submit competing transactions via Jito bundles.

By default, goodcryptoX broadcasts Solana transactions using **priority fees** — fast and inexpensive, but not MEV-protected. For larger swaps where MEV exposure matters, you can switch the broadcast mode to **Jito**:

1. Open DEX order form
2. Click the ⚙️ settings cogwheel
3. Under **Broadcast mode**, switch from **Priority fees** to **Jito**

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FourBLZHQXmbOJkUyvsky%2Fimage.png?alt=media&amp;token=8f5d69b9-b211-4eda-a9a0-a5d7b13ce099" alt="" width="375"><figcaption></figcaption></figure>

When you broadcast via Jito, your transaction is included in a **Jito bundle** — a group of transactions that validators must execute atomically, in the exact order specified, or not at all. Because the bundle locks transaction ordering on-chain, no searcher can insert their own swaps around yours to sandwich you.

> **When does MEV protection actually matter?**
>
> Sandwich attacks are only profitable on trades large enough to move the price meaningfully — the searcher needs slippage to extract value from. For small, frequent orders (like the individual trades placed by a DCA bot or a grid bot), the economics don't work for attackers, and these orders are rarely targeted. The default priority-fee mode is usually fine for them.
>
> Consider switching to Jito when you're sending **large one-off swaps** on Solana — especially on volatile or low-liquidity tokens where slippage is wider and the attack surface bigger.

#### **A note on "productive MEV" on Solana**

Some MEV is actually beneficial — particularly **backrunning arbitrage**, where a searcher rebalances prices across DEXs immediately after your trade executes. This doesn't worsen your execution (your trade already filled); it just captures the small price imbalance your swap creates.

On Solana, goodcryptoX uses **Helius Sender** to route transactions, and we've opted into the Helius backrun rebate program. Here's what that means for you:

* Your swap always executes first — searchers can only act *after* it lands on-chain, and only post-trade backruns are permitted.
* The searchers participating in the auction are vetted and KYC'd by Helius; no frontrunning or sandwiching is allowed.
* When your trade creates an arbitrage opportunity, the captured value is split 50/50 between Helius and goodcryptoX.

The goodcryptoX share is added to the same pool we use for our DEX swap fee [revenue sharing](/ecosystem/revenue-sharing) and [GOOD token](/good-token/summary) buyback & [burn](/good-token/burn) programs — so it flows back to the ecosystem rather than going to external extractors.


# Upcoming functionality

The features described below are on our immediate development roadmap. The only reason they are not live yet is the team's finite throughput. Rest assured, we are doing our best to deliver them asap.


# copy trading bot

copy trading bot lets you automatically copy the trades of a chosen wallet.

You can choose to copy any wallet by simply entering its address or selecting from a curated list of the most profitable DEX trader wallets. You will be able to sort all wallets that traded on Uniswap within a certain period by profitability (realized and/or unrealized) and filter them by the number and/or size of the trades.

Once you select a wallet to copy, you can choose the size scale of your copy orders relative to the original wallet. The default setting is 1:1 or 100%, but you can go as low as 10% or as high as 200%. At 10%, if the original wallet makes a swap of 1 ETH worth, your copy swap will be sized as 0.1 ETH, at 200% - as 2 ETH.

You will also be able to select safeguards that will protect you from malicious behavior of the wallet you will be copying: from max. number/frequency/size of the trades to honeypot checks and PnL-based Stop Loss / Take Profit.

Needless to say, the bot will only copy actual swaps on Uniswap and ignore transactions of other types.

***

The owners of the wallet that is being copied by goodcryptoX users can claim a 25% revshare of the swap fees we collect from the copy trades. All they need to do is to 'claim' that wallet on goodcryptoX. There will be a 2 years lookback - meaning you can claim your copy trading revshare for up to 2 years after the trades happen.

Our copy trading bot can be used by individual traders, trading group leads, and KOLs looking to monetize their insight or by the fund managers looking to automate buying and selling across multiple client wallets.


# grid bot

*coming soon...*


# infinity bot

*coming soon...*


# SOS bot

*coming soon...*


# rebalancer bot

*coming soon...*


# gas in any ERC20/SPL token

*coming soon...*


# auto-bridging

*coming soon...*


# batch orders

*coming soon...*


# batch transfers

*coming soon...*


# VWAP & TWAP orders

*coming soon...*


# iceberg orders

*coming soon...*


# Telegram shortcuts

*coming soon...*


# conversational trading

*coming soon...*


# recurring buys

*coming soon...*


# Hyperliquid

Though fully on-chain, Hyperliquid's trading experience is closer to a CEX than to an AMM DEX.

Similarly, in goodcryptoX it behaves almost exactly like a CEX integration — but with DEX-style pricing and token economics.

You trade Hyperliquid inside our CEX interface, using the full CEX trading toolset: advanced orders, all CEX bots, TradingView webhooks, TA signals, price alerts, and more.

[Connection](/perp-dexs/hyperliquid/how-to-connect) works the same way as on CEXs: through an API wallet (their version of an API key), which lets goodcryptoX place orders but never withdraw funds.

Unlike centralized exchanges, no subscription is required to use any advanced tools or to increase bot limits.

Instead, Hyperliquid follows our DEX fee model: a [trading fee](/perp-dexs/hyperliquid/builder-fees) applies, which can be [reduced](/ecosystem/dex-swap-fee) through [trading volume](/ecosystem/loyalty-program), [GOOD holdings](/good-token/holding-benefits), a higher [subscription tier](/ecosystem/subscription-plans), or an [Ultimate NFT](/ecosystem/nfts).

Hyperliquid fees also integrate directly with GOOD token economics:\
`50%` goes to [Revenue sharing](/ecosystem/revenue-sharing), `10%` to daily GOOD [burns](/good-token/burn), and [referrers](/ecosystem/referral-program) receive `25%` of all trading fees paid by their invitees.

goodcryptoX significantly expands Hyperliquid’s native functionality.

You get conditional [stop orders](/perp-dexs/manual-orders/stop-market-limit) that don’t freeze your balance until triggered, along with a full suite of [trailing orders](/perp-dexs/manual-orders/trailing-stops) — including trailing entries, trailing exits, and reverse-trailing setups like “buy the dip” or “sell the pump.”&#x20;

Our [Take Profit + Stop Loss combos](/perp-dexs/manual-orders/tp+sl-combo) are in a different league: you can set multiple TP targets, have your SL follow filled TPs, or apply trailing logic to either leg.&#x20;

You can also run automated strategies with [Grid](/perp-dexs/bots/grid-bot), [DCA](/perp-dexs/bots/dca-bot), or [Infinity Trailing](/perp-dexs/bots/infinity-trailing) bots, and trigger or cancel any order or bot in goodcryptoX using [webhooks](/perp-dexs/webhooks) — powered by any TradingView strategy or alert.


# How to connect

{% embed url="<https://youtu.be/dCKlpi8v738>" %}

{% hint style="info" %}
For manual builder fees approval use our custom [tool](https://goodcrypto.app/hype/builder-fees) as described below. Hyperdash's tool as shown in the video had been sunsetted
{% endhint %}

### Connect with MetaMask automatically

If you control your Hyperliquid account with MetaMask, you can connect it to goodcryptoX in just 3 clicks.

If not - you can either follow the [manual setup](#manual-setup) route or add the wallet that controls your Hyperliquid account to MetaMask and proceed with the following.

{% stepper %}
{% step %}
In our [**web app**](https://app.goodcrypto.app) go to:

```
Settings -> Exchanges -> Hyperliquid
```

{% endstep %}

{% step %}
Click "Connect with MetaMask":

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FqUaHcekL4zBOazJ8PFz1%2Fimage.png?alt=media&amp;token=c27f17a3-56db-466f-bcf0-5edc418637f1" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Select the wallet that controls your Hyperliquid account and click "Connect":

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Fsf5A21JNyN0yIkBXZNtF%2Fimage.png?alt=media&amp;token=51d808d4-cdf2-46f9-8be5-64cc06ce0320" alt="" width="375"><figcaption></figcaption></figure>
{% endstep %}

{% step %}
We will now generate an API wallet and register it with Hyperliquid. "Confirm" in Metamask to sign the transaction (no gas required):

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2F8IoPe9ZQ0YIJWEYz7dtD%2Fimage.png?alt=media&amp;token=b2d5fefe-9077-4631-b1a6-05f3ed08d436" alt="" width="375"><figcaption></figcaption></figure>

In the unlikely case you already have a maximum number of registered API wallets on Hyperliquid (3), we will ask which one do you want to replace and register a new one in its place.
{% endstep %}

{% step %}
You will then be asked to sign the transaction to approve our [Builder fee](/perp-dexs/hyperliquid/builder-fees). Click "Confirm" to proceed (no gas required):

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Fdi4GEaXEcFB5TnThJMcF%2Fimage.png?alt=media&amp;token=cd6a0b33-2fd8-467f-8ab2-aa3fc98e2a32" alt="" width="375"><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

Your API wallet will now be saved in our secure storage. Once the status of your connection turns to "**OK**" - you are all set!

You can now see your API wallet's address and name that you can use to identify it in the exchange's interface, as well as its expiration date:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FuChb6TQuFf9rL9o7TCi8%2Fimage.png?alt=media&amp;token=014cf41a-3265-47c3-96a7-544547928d78" alt=""><figcaption></figcaption></figure>

Hyperliquid's API wallets expire every 6 months. Before it expires, we will warn you and you'll be able to seamlessly replace your current API wallet with a new one using your MetaMask wallet.

### Manual setup

If the wallet you use to control your Hyperliquid account is other than MetaMask, you can setup the connection with goodcryptoX manually.

{% stepper %}
{% step %}

#### Create API wallet

Connect your wallet to Hyperliquid. \
Go to `More -> API`. \
Pick a name for your API wallet (e.g. goodcryptoX), click "Generate" the API wallet address and then - "Authorize API Wallet":

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Fio6DHExMEq0HQeQyiRuu%2Fimage.png?alt=media&amp;token=5273a64a-5e75-4ff7-bf55-845ae6a97f1c" alt="" width="563"><figcaption></figcaption></figure>

You will then see a pop-up with your API wallet Private Key - copy it, you will need to add it to goodcryptoX later - you won't see this key again. Also click on the "MAX" in the "Days Valid" filed - it will set your wallet's expiry to 6 months (otherwise it will expire in 90 days):

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FeMFuUEnx4hO5WMUEJpN5%2Fimage.png?alt=media&amp;token=273d93fc-1322-4723-84dc-f4fd158bfc56" alt="" width="375"><figcaption></figcaption></figure>

Once ready, click "Authorize" and sign the transaction with your wallet (no gas required).
{% endstep %}

{% step %}

### Approve Builder fee

To be able to trade with goodcryptoX on Hyperliquid you need to allow us to [charge fees](/perp-dexs/hyperliquid/builder-fees) on your trades. Hyperliquid does not expose this functionality in the interface, so we've built a dedicated [tool](https://goodcrypto.app/hype/builder-fees) for that.

Go to our [Builder fee management tool](https://goodcrypto.app/hype/builder-fees) and connect the wallet that controls your Hyperliquid account:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FOqRnbfSyZYhuMijnp09u%2Fimage.png?alt=media&amp;token=ec647976-90e9-4844-b9da-f2ccccf7d6a0" alt="" width="563"><figcaption></figcaption></figure>

Once connected, click Approve goodcryptoX builder fee and sign the transaction with your wallet:&#x20;

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FeDfJQmzwjh3vvP9VBlbq%2Fimage.png?alt=media&amp;token=d8980f23-b309-47f9-965d-e2298e5d9e85" alt="" width="563"><figcaption></figcaption></figure>

> While you approve a 1% max builder fee, this only approves a 0.1% futures fee (enforced by Hyperliquid). The unified 1% entry is a visual limitation in Hyperliquid’s implementation of this functinality

{% hint style="info" %}
If you created your Hyperliquid account using **email**, you’ll need to export your wallet to MetaMask (or another wallet) before you can approve builder fees.

Go to Settings in the Hyperliquid interface and select “Export email wallet”
{% endhint %}
{% endstep %}

{% step %}

### Add API wallet to goodcryptoX:

In our app (web or mobile), go to:

```
Settings -> Exchanges -> Hyperliquid -> Add API wallet manually
```

Add the address of the wallet that controls your Hyperliquid account (NOT your API wallet address) to "Hyperliquid account address".\
Add the private key of the API wallet you created (NOT the private key to your main wallet) to "API wallet private key" and click "Save and Validate":

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FVhOSbmzsqxJvrHKUwfmW%2Fimage.png?alt=media&amp;token=147a5fd6-a3b2-4fab-aa2e-46b7c3a88dd6" alt="" width="563"><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

Your API wallet will now be saved in our secure storage. Once the status of your connection turns to "**OK**" - you are all set!

You can now see your API wallet's address and name, as well as its expiration date:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FuChb6TQuFf9rL9o7TCi8%2Fimage.png?alt=media&amp;token=014cf41a-3265-47c3-96a7-544547928d78" alt=""><figcaption></figcaption></figure>

Before it expires, we will warn you beforehand so that you'll have enough time to replace it with a new one.


# Builder fees

Hyperliquid refers to integrator-collected trading fees as **builder fees**. In this model, goodcryptoX acts as a builder—charging a trading fee on top of Hyperliquid's base fees in exchange for access to advanced orders and trading bots.

On centralized exchanges, goodcryptoX does **not** charge trading fees, but access to premium trading tools and increased bot limits requires a paid [subscription](/ecosystem/subscription-plans). In contrast, on Spot DEXs and Hyperliquid, **all features are available without a subscription**, and a [trading fee](/ecosystem/dex-swap-fee) is applied per order.

Hyperliquid sits between CEXs and DEXs in its architecture and UX - and our integration follows a similar model. You trade inside the CEX interface, using the same CEX-level toolset (advanced orders, full-featured bots like [Grid](/perp-dexs/bots/grid-bot) and [Infinity Trailing](/dex-trading-spot/upcoming-functionality/infinity-bot)), but without needing a subscription. Instead, we apply a builder fee to each trade, which helps power the [GOOD token](/good-token/summary) economy.

#### How builder fees work

To enable builder fees, Hyperliquid requires you to explicitly authorize goodcryptoX to charge them - by signing a transaction with your wallet. This approval is required to connect your Hyperliquid account to our app. If you connect your account [with MetaMask](/perp-dexs/hyperliquid/how-to-connect#connect-with-metamask-automatically) - it is done automatically. If you set up your connection [manually](/perp-dexs/hyperliquid/how-to-connect#manual-setup), you will need to [approve](/perp-dexs/hyperliquid/how-to-connect#approve-builder-fee) our builder fee via a third-party interface.

You approve the **maximum fee**, but the **actual fee charged** depends on the [DEX fee discount](/ecosystem/dex-swap-fee) you qualify for. These discounts are the same across all DEX integrations and stack together:

* Higher [trading volume](/ecosystem/loyalty-program) on goodcryptoX = higher discount (up to 50%)
* [Holding](/good-token/holding-benefits) more GOOD tokens = higher discount (up to 50%)
* Active [subscription](/ecosystem/subscription-plans) = additional discount (up to 30%)
* Holding the [Ultimate NFT](/ecosystem/nfts) = a 50% discount.

#### Fee rates

* **Futures trading** on Hyperliquid: base builder fee is **0.1%**
* **Spot trading** on Hyperliquid: base builder fee is **1%**, but it is only charged on **sell orders**. No fee is charged on buy orders.

{% hint style="info" %}
While the signed approval shows a max fee of **1%**, this only applies to spot trades. Futures are capped at **0.1%** on-chain by Hyperliquid’s design
{% endhint %}

You can always check your current fee tier and discount in the app by clicking the robot icon in the top right corner.

#### How builder fees power the GOOD token economy

Builder fees don’t just fund trading infrastructure and new features development - they also directly support [GOOD token](/good-token/summary) holders and long-term growth.

* **50%** of all builder fees collected from Hyperliquid trading are distributed to GOOD holders via the [Revenue sharing](/ecosystem/revenue-sharing) program
* **10%** of all fees go to daily GOOD [burns](/good-token/burn), reducing total supply over time
* **25%** of fees from referred users are paid out to their referrers through our [referral program](/ecosystem/referral-program)

This ensures that every trade on Hyperliquid not only unlocks powerful tools for the traders, but also strengthens the value and sustainability of the GOOD [token economy](/good-token/tokenomics).

By using builder fees this way, we align trader incentives, token utility, and platform growth into a single system.


# Referral discount

Register your Hyperliquid account with our referral link:

<https://app.hyperliquid.xyz/join/GOODCRYPTOX>

and receive a `4%` trading fees discount on the first $25M of trading volume.

What's more, we will get 10% of your fees as referral reward, share `50%` of them with our GOOD token holders as [revenue sharing](/ecosystem/revenue-sharing), and use `10%` to buy back and burn our token.<br>

If you already have Hyperliquid account, you can still benefit from the discount:&#x20;

go to <https://app.hyperliquid.xyz/referrals>

click "ENTER CODE"

and enter:

```
 GOODCRYPTOX
```


# Manual orders

Order types supported on Perp DEXs:

**Standalone orders:**

* [Market](/perp-dexs/manual-orders/market) - executes immediately at the best available market price;
* [Limit](/perp-dexs/manual-orders/limit) - placed in exchange's order book and executes when the specified price is reached;
* [Stop market/limit](/perp-dexs/manual-orders/stop-market-limit) - triggers when a specified stop price is reached, submitting a market or limit order to the exchange;
* [Trailing stop](/perp-dexs/manual-orders/trailing-stops) - follows the market price as it moves in your favor. Triggers when the market reverses by the trailing % you’ve set;

**Attached orders**

* [Take Profit](/perp-dexs/manual-orders/take-profit) - triggers when the market moves in your favor by the specified percentage from the execution price of your main (entry) order. If a Stop Loss is also set, it is automatically cancelled when Take Profit triggers;
* [Trailing Take Profit](/perp-dexs/manual-orders/trailing-tp-sl) - activates once your target profit % is reached, then follows the market price as it continues to improve in your favor. Triggers when the market reverses, helping you capture more upside;
* [Stop Loss](/perp-dexs/manual-orders/stop-loss) -  triggers when the market moves against you by the specified % from the execution price of your main order. It cancels any attached Take Profits if triggered;
* [Trailing Stop Loss](/perp-dexs/manual-orders/trailing-tp-sl) - follows the market price as it moves in your favor. If the price reverses by the trailing percentage, the order triggers — helping to reduce losses or lock in gains as the market pulls back.

⚙️ More advanced order types are [coming soon](/perp-dexs/upcoming-functionality).


# Market

A Market Order executes immediately at the best available price. It prioritizes speed over price precision and is the most direct way to enter or exit a position.

Where supported, goodcryptoX uses the exchange’s native Market Order.

However, Hyperliquid doesn’t support market orders natively. Instead, we approximate them using a Limit IOC (Immediate or Cancel) order placed deep into the orderbook — 10% above best ask (for buys) or 10% below best bid (for sells).

In normal conditions, this behaves like a Market Order. But in cases of high volatility or low liquidity, the order may be only partially filled — or not filled at all — unlike a native market order, which would execute fully.


# Limit

A Limit Order is an instruction to buy or sell at a specific price or better. Unlike conditional orders such as stop orders, trailing orders, or TP/SL combos — which are monitored on goodcryptoX servers until their trigger conditions are met — a Limit Order is sent immediately to the exchange and placed directly on the exchange’s orderbook.

Because it lives on the exchange rather than on our servers, a Limit Order’s execution, fill behavior, or rejection is determined entirely by the exchange. Once submitted, it behaves independently of goodcryptoX: even if our servers experience downtime, your limit order will remain on the book and continue to execute normally according to exchange’s matching engine.

Limit orders can be used to enter or exit positions directly, and they also serve as the execution leg in Stop Limit and Trailing Stop Limit orders triggered by goodcryptoX. Grid and DCA bots rely on native limit orders as well.


# Stop market/limit

Stop Market and Stop Limit orders are conditional order types used to automate trade execution once a specific trigger condition is met.

* A Stop Market order sends a market order to the exchange when the stop condition is triggered.
* A Stop Limit order sends a limit order to the exchange at a predefined price when the stop condition is triggered.

In goodcryptoX, the stop condition can be either:

* A price level reached by the market, or
* A TradingView [webhook](/perp-dexs/webhooks), allowing full control via custom TA alerts or strategy scripts.

Until triggered, both Stop Market and Stop Limit orders live entirely on goodcryptoX servers. The exchange has no knowledge of them, which provides two key benefits:

* Your exchange balance is not frozen until the order triggers, allowing for more efficient capital use.
* These orders don’t count toward your open order limits on the exchange.

However, because the trigger logic is server-side, there is a small dependency: if goodcryptoX servers are unavailable at the moment the condition is met, the order may not trigger or execute.

Unlike some exchanges that restrict stop conditions or limit prices based on current market direction, goodcryptoX lets you define both the stop price and the limit price freely — above, below, or equal to the current market price (or stop price for Stop Limit order).


# Trailing stops

A Trailing Stop order dynamically follows the market price at a fixed distance. As the price moves in your chosen direction, the trailing trigger moves with it. When the market reverses by the set distance, the order is triggered and submitted to the exchange.

* Trailing Buy follows the price downward and triggers when the market bounces up by the trailing distance. It’s typically used to enter a position at the lowest possible point.

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2F6dAceIugShTucKgct88u%2Ftrailing_buy.png?alt=media&amp;token=fd4c4416-0762-4a0c-826e-b73a6d79715a" alt="" width="563"><figcaption></figcaption></figure>

* Trailing Sell follows the price upward and triggers when the market pulls back by the trailing distance. It’s commonly used to exit positions at the highest point before a reversal.

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FXVPWfQMWrGbeX1IWXliD%2Ftrailing_sell.png?alt=media&amp;token=4e0ef8e1-6215-4b09-99c2-7b17a558fe14" alt="" width="563"><figcaption></figcaption></figure>

Trailing orders in goodcryptoX are handled on our server until triggered. The exchange doesn’t know about them until they fire, which provides two key advantages:

1. Your balance isn’t frozen until the order is triggered, so your capital remains fully usable.
2. They don’t count toward your exchange order limit.

However, this also means the order depends on our infrastructure: if our servers are temporarily unavailable when the trigger condition is met, the order may not be submitted.

Watch our video overview for a detailed walkthrough:

{% embed url="<https://youtu.be/jWtCSEvJykg?si=xy4CGVZiV99XTby9>" %}

#### Reverse Trailing Orders

Reverse trailing orders do the opposite:

* Reverse Trailing Buy follows the price upward and triggers when the market drops. It’s useful for “buy the dip” setups.
* Reverse Trailing Sell follows the price downward and triggers when the market rises. It’s designed to “sell the pump”.

#### Trailing Stop vs Trailing Stop Limit

* Trailing Stop (Market): when conditions are met a market order is sent to the exchange. Ensures execution but may suffer slippage in fast-moving markets.
* Trailing Stop Limit: places a limit order on the exchange at the trigger price. Protects against slippage but may fail to fill if the market moves past the limit price too quickly.

See our video “Trailing Stop vs Trailing Stop Limit” for a detailed breakdown:

{% embed url="<https://youtu.be/23D1khsYzn0?si=EPupR7l_Bcg77QUR>" %}

### Advanced Features

#### **Trailing Start**

Normally, Trailing Stop starts tracking the market as soon as the order is created. With Trailing Start, you can define a condition that must be met before trailing begins. The trigger can be either a price level or a TradingView [webhook](/perp-dexs/webhooks). This adds flexibility for advanced setups:

* *Example:* Start trailing buy only if Bitcoin drops to $90K
* *Example:* Start trailing sell when a TradingView alert is triggered (e.g., breaks above Bollinger Band)

#### **Improve Only**

The Improve Only option ensures that your entry price will never be worse than the current market price. Without it, a Trailing Buy with a 1% trailing distance at 100k would initially trigger at 101k; with Improve Only enabled, the order waits until the market dips enough so that the trigger can trail at 100k or lower.

Improve Only can be used on its own or together with Trailing Start. For example, you can set:

* Trailing Start: 90k
* Trailing Buy distance: 2%
* Improve Only: enabled

Without Improve Only, the worst-case fill would be at \~91.8k (90k + 2%). With Improve Only, the system shifts the effective start level so that the *worst-case* fill is around 90k instead: if price bounces immediately, you buy roughly at your start level; if it keeps dipping, you buy even lower.

#### Take Profit / Stop Loss Combos

Trailing orders can also be used as Trailing Take Profit or Trailing Stop Loss legs inside TP/SL combos. For more on that, see [Trailing TP/SL](/perp-dexs/manual-orders/trailing-tp-sl).

#### Learn More

Read our full guide:&#x20;

{% embed url="<https://goodcrypto.app/trailing-stop-order-a-definitive-guide/>" %}


# Take Profit

*documentation* *coming soon...*


# Multiple Take Profits

{% embed url="<https://youtu.be/4y-EnTLHjrY?si=BS0GeBjPZuEHT_Qr>" %}

*documentation* *coming soon...*


# Stop Loss

*documentation* *coming soon...*


# Stop Loss that follow TPs

{% embed url="<https://youtu.be/a52GBvtntPs?si=yI05dbC497cisjyz>" %}

*documentation* *coming soon...*


# Trailing TP/SL

{% embed url="<https://youtu.be/BIJvQBKZSvQ?si=4baD0L--xesnO-FC>" %}

{% embed url="<https://youtu.be/AB7pGtPPZYY?si=EUYECv43b6OmW-T4>" %}

{% embed url="<https://youtu.be/1T0dZN1KC0g?si=0hSUgZty3_DNLZ4c>" %}

{% embed url="<https://youtu.be/lXk7EeWXnrc?si=NCCjqfshDpya9H9O>" %}

*documentation* *coming soon...*


# TP+SL combo

*documentation* *coming soon...*


# Errors

*documentation* *coming soon...*


# Bots

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2Fc7sD2GZjv4GEC8y3UwV7%2Fimage.png?alt=media&amp;token=93da429f-ba00-479c-87fe-0f4cf25d200f" alt="DEX DCA bot"><figcaption></figcaption></figure>

DEX DCA bot is a versatile tool enabling multiple trading strategies previously only available on cetralized exchnages.

DCA stands for dollar-cost averaging, meaning that the bot enters a position and then places additional orders if the price moves against you, averaging down your cost basis.&#x20;

The bot automatically adjusts your Take Profit and Stop Loss as your position changes.

After Take Profit or Stop Loss are triggered the bot can either stop or repeat with the same settings.

This enables several use cases for the bot:

1. **SAFETY NET**\
   Enter positions knowing that should the market move against you, you'll buy more at a lower price and your TP will be adjusted to reflect that. All without you lifting a finger.
2. **VOLATILITY SCALPER**\
   Run the bot on volatile coins on repeat - rack up hundreds of profitable iterations by covering 50%+ price range with averaging orders and going martingale on orders size (each averaging order 2x of previous).
3. **SCALE ORDER**\
   If your entry strategy involves placing multiple orders on several levels - use the bot to do that for you. If you don't plan to use the bot's automated TP - set it at an unreasonable level (say, 999%) and stop the bot once it enters the required position.
4. **MULTIPLE TAKE PROFITS**\
   If you want to place multiple Take Profits to your existing position, select the position's coin in the bot's "Spend" field. The bot's entry and averaging orders will act as your Take Pofit levels. Set the bot's TP to an unreasonable level so it won't mess with your setup.
5. **BTFD**\
   Buy the f\*ing dip! Accumulate ETH, BTC, SOL and other top coins automatically taking advantage of the market dips. Trend is your friend - if you believe that the coin will ultimately go up, then the lower it goes the more you want to buy it. DCA bot is the perfect tool for it.

Here is our DCA bot's video overview:

{% embed url="<https://youtu.be/P5o1s9-YoYE>" %}
Part 1: Overview
{% endembed %}

We are also running a dedicated [TG channel](https://t.me/+EFAh0cdHrXw0OTNh) where we post our best-performing DCA setups - both for centralized and decentralized exchanges. Join to get new trading ideas and share your experience.


# Grid bot

Hyperliquid grid bot in goodcryptoX is an automated trading strategy that monetizes price volatility by maintaining a structured grid of buy and sell orders across a defined price range.

{% embed url="<https://youtu.be/WeuiKvhMI00>" %}

### Why use Grid Bot on Hyperliquid?

Markets rarely move in straight lines. Even during strong trends, price constantly oscillates — moving up, pulling back, bouncing, consolidating, and repeating. A traditional "buy and hold" approach only profits from directional movement. Grid Bot profits from the movement *itself*.

Consider this example: BTC is at $80,000. Over the next month, it climbs to $95,000, drops back to $82,000, recovers to $91,000, dips to $85,000, and eventually settles back at $80,000.

If you simply held BTC through all of that, your net result is zero.

But inside that journey, price made dozens of oscillations — each one a potential trading opportunity. A grid of buy orders below the current price and sell orders above it would have captured profit from every single bounce, dip, and recovery along the way. Each buy–sell cycle locks in a small realized gain, and when price stays within your range, those gains compound into meaningful returns — even when the market goes nowhere.

This is what Grid Bot does. It behaves similarly to a structured market-making strategy: it places layered buy orders below the current price, layered sell orders above it, and repeatedly captures the spread between them as price moves back and forth.

It lets you effectively use your capital which would otherwise sit idle during the sideways markets and express your view on the market while also profiting from volatility along the way in the rising or falling markets.

#### Best market conditions for Grid trading

Grid trading is most effective when the **price trades within a defined range** (sideways markets). Standard or [neutral](#neutral-grid) grid bot is used for this. The more the price oscillates withing the range and the longer it stays within those levels, the higher is the Grid bot profit.&#x20;

For ranging markets - when the **price trends up or down** but remains volatile,  oscillating around the trend - goodcryptoX offers [long](#long-grid) and [short](#short-grid) grid bots respectively. With these bots you still profit from every price swing within the grid range, but also earn a return from the directional price movement.

#### **Common Grid bot use cases:**

The two most common Grid trading use cases are:

* **Profit from sideways markets.** When price consolidates and you don't have a strong directional view, a Neutral Grid captures the back-and-forth movement with the range you set.
* **Express a directional view with built-in volatility harvesting.** Long and Short Grids let you profit from both the direction and the price swings within it.

But that's not all. Grid bot is a versatile tool that can also be used for strategies like:

* **Exit a position gradually.** If you have an existing position, you can use the Short Grid bot placed above the market price to scale out of it in a controlled manner, while profiting from price bounces along the way.
* **Accumulate an asset over time.** A Long Grid on an asset you're bullish on lets you accumulate it gradually while earning from short-term volatility along the way.

### How Grid trading works on Hyperliquid

A grid is defined by four parameters: an **upper grid level**, a **lower grid level**, a **number of levels** within that range, and an **order size** for each level.

The bot divides the range between upper and lower bounds into evenly spaced levels and places limit orders at each one. Buy orders sit below the current market price, sell orders sit above it. The level closest to the current price remains empty - this ensures the grid has room to react to the next price movement in either direction.

**The core cycle works like this:**

When price drops and fills a buy order, the bot immediately places a sell order one level above it. When price rises and fills a sell order, the bot places a buy order one level below. Each buy–sell pair locks in a small realized profit equal to the distance between those two levels times the order size (minus trading fees). As price oscillates within the range, this cycle repeats over and over.

Think of it as a net stretched across your price range. Every time price moves through the net, it triggers trades — and each triggered trade generates a small profit. The more price oscillates, the more trades execute, and the more profit accumulates.

**What happens at the edges?** If price moves beyond the upper or lower grid boundary, no more orders exist beyond it. The bot holds its accumulated position and waits. If price returns to the range, the cycle resumes. If it doesn't, you're left with a directional position — this is the primary risk of grid trading, and why range selection matters.

**A simple illustration:** Imagine a grid with just two levels — one buy at $79,000 and one sell at $81,000. Every time BTC oscillates between those two levels, the bot buys low and sells high, capturing $2,000 `x` order size per cycle. Now expand that to 20 or 50 levels across a wider range, and you begin to see how a grid can generate hundreds of small profitable trades from normal market volatility.

### Grid modes: Neutral, Long, Short

goodcryptoX supports three grid modes. Each one changes the bot's initial position and risk profile. Choosing the right mode depends on your market outlook.

#### Neutral Grid

Neutral is the default and most balanced mode.

When you launch a Neutral Grid, the bot places buy orders at every level below the current market price and sell orders at every level above it. No initial position is taken — you start flat (or neutral).

Neutral Grid is ideal when you expect price to stay within a range and you don't have a strong directional view. The bot profits purely from volatility within the range.

**Risk profile:** If price breaks above the range, you end up with a short position (on perps) or have sold your base asset (on spot). If price breaks below, you accumulate a long position. In both cases, your exposure equals roughly half the grid's total size — because only the orders on one side of the range execute as price moves through. This is the most balanced risk profile of the three modes.

**When to use Neutral:**

* Ranging, consolidating markets
* When you have no strong directional conviction

#### Long Grid

In Long mode, *all* levels are initially set as buy orders.

The buy orders that are above the current market price execute immediately upon launch (since they can be filled at the current market price or better), and each is replaced by a sell order one level above. This builds an initial long position whose size equals the number of levels above the market price multiplied by the order size.

A Long Grid is essentially a Neutral Grid that starts with a built-in long position. After the initial fills, it behaves identically — buying lower, selling higher, cycling through levels.

**Risk profile:** If price rises through and eventually above the grid range, the bot gradually sells off the position, locking in directional profit on top of the grid trading profits. If price falls, you accumulate more — your long position grows, and your downside exposure is roughly double that of a comparable Neutral Grid (because you started with a position *and* you keep buying more as it drops).

**When to use Long grid:**

* When you're bullish with volatility expected
* When you want to accumulate an asset but also capture short-term swings
* On spot, when you only have quote currency (e.g. USDT) and no base currency to sell

#### Short Grid

Short mode is the mirror image of Long.

All levels are initially set as sell orders. The sell orders below the current market price execute immediately, building an initial short position. Each fill is replaced by a buy order one level below.

**Risk profile:** If price drops through and below the range, the bot gradually buys back, closing the short and locking in directional profit. If price rises, the short position grows, and your exposure is roughly double that of a Neutral Grid.

**When to use Short grid:**

* When you're bearish with volatility expected
* When you want to scale out of an existing long position
* On spot, when you hold a position and want to sell it gradually

> **Important note on Long/Short initialization:** Currently, the initial position in Long and Short modes is not opened as a single market order. Instead, all orders are placed as limit orders at each grid level, and the ones on the "wrong" side of the market price fill immediately. On some futures exchanges, limit orders placed deep into the order book may be rejected due to exchange-specific restrictions on how far from the current price a limit order can be placed. If you encounter errors launching a wide Long or Short Grid on certain exchanges, this is the likely cause. This is a known limitation that will be addressed in a future update.
>
> Hyperliquid does not have the deep-order-book limit restrictions that some centralized futures exchanges impose, so Wide Long and Short grids are less likely to encounter launch issues.

***

### Grid setup

This section walks through every field in the goodcryptoX Grid Bot setup form, from top to bottom — exactly as it appears in the interface. All settings apply identically whether you're trading on Hyperliquid, another perp DEX, or a centralized exchange.

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FtydF8tadcv4JvEfo7xOm%2Fimage.png?alt=media&amp;token=9e11925c-e9a0-4b36-83b1-dd4f4e4499ef" alt=""><figcaption></figcaption></figure>

#### Grid mode

The first choice is the mode: **Neutral**, **Long**, or **Short**. If you're unsure, start with Neutral - it carries the most balanced risk and doesn't require a directional view.

#### Highest and lowest grid level

These two fields define the upper and lower bounds of your trading range. All grid levels will be placed between these two prices.

Choosing where to set them is one of the most important decisions in grid setup. A good approach is to look at historical support and resistance levels - zoom out on the chart, identify the range where price has been spending the most time, and set your bounds accordingly.

You don't need to capture every possible move. Setting the range too wide means your levels will be far apart (requiring more levels or resulting in fewer trades), while setting it too narrow risks price leaving the range quickly.

You can set these values numerically in the form, or you can drag the upper and lower bounds directly on the chart. As you adjust them, the grid levels update in real time on the chart, and you can immediately see which levels will be buy orders and which will be sell orders.

#### Levels

This field sets the number of levels (from 2 to 250) within your range.

There is a fundamental trade-off here. With a fixed amount of capital:

* **More levels** means tighter spacing between them. Each trade generates a smaller profit (PnL per level is smaller), but trades happen more frequently. Order sizes will be smaller because your capital is spread across more levels.
* **Fewer levels** means wider spacing. Each trade captures a larger price difference (higher PnL per level), but trades happen less often. You can use larger order sizes since capital is concentrated on fewer levels.

You need to strike a balance between frequency and profit-per-trade. Too tight and fees may eat into thin margins; too wide and the bot barely trades before price leaves the range.

The interface shows you the **PnL per level** (after exchange fees) in real time as you adjust this number. It also displays the estimated percentage gain per level, which helps you evaluate whether the spacing makes sense for the instrument and conditions you're trading.

> Note, that the PnL per level is calculated using the basic exchange fee tier. If you have a higher tier, your fee will be lower and PnL per level - higher. Also note that at the time of this writing PnL per level calculation does not take into account [builder fee](/perp-dexs/hyperliquid/builder-fees).

On the chart, you can watch the level lines adjust as you change this number — a very intuitive way to visualize the spacing.

#### Levels distribution: Arithmetic vs Log

Below the highest/lowest level fields, you'll see a **Log distribution** checkbox.

By default, the grid uses **arithmetic** (linear) distribution — levels are spaced with equal price intervals. If your range is $80,000 to $90,000 with 10 levels, each level is exactly $1,000 apart.

When you enable **Log distribution** (also called geometric), levels are spaced with equal *percentage* intervals instead. This means the dollar gap between levels is smaller at the bottom of the range and larger at the top.

**Why does this matter?** In crypto markets, price tends to move in percentage terms — a 5% drop from $90,000 ($4,500) covers a much wider absolute range than a 5% drop from $80,000 ($4,000). With arithmetic spacing, the percentage return per level varies: levels near the bottom give a larger percentage gain than levels near the top. Log distribution normalizes this, giving you a consistent percentage return on every level.

**Log is generally preferred for:**

* Wide trading ranges
* Volatile assets
* Perpetual futures
* Most grid configurations in practice

**Arithmetic can be useful for:**

* Very narrow ranges
* Stablecoin or low-volatility pairs
* When you specifically want equal dollar spacing

If you're unsure, enable Log — it's the recommended default for most setups.

#### Order size

Order size defines how much the bot trades on each level. It is always specified in **base currency** (or contracts, for futures).

For example, if you're running a grid on BTC.USDT and set order size to 0.01 BTC, the bot will buy or sell 0.01 BTC at every level.

The interface also shows you the approximate quote currency equivalent of each order at the current price. Keep in mind that this equivalent varies by level — higher price levels require more quote currency per order, and lower levels require less. So even though every level trades the same amount of BTC, the dollar value of each trade is different.

Your total capital commitment depends on the order size, the number of levels, and the current price. The interface calculates the **Funds needed** at the bottom of the form, so you can see exactly how much is required before you launch.

#### Activation price

This optional field lets you delay the grid launch until price reaches a specific level.

If you set an activation price, the grid will not place any orders until the market touches that price. Once activated, the grid begins as if it had just been launched at that moment.

**Use cases:**

* You want to launch a grid at a range that's currently above or below the market — set an activation price at the edge of your range to wait for price to arrive
* You expect a breakout and want to start the grid only after it happens
* You want to time the grid around a specific event or level without manually watching the market

#### Stop above / Stop below

These are price-based stop triggers. If price reaches either level, the bot stops: all open grid orders are cancelled, and (if the **Close position when the bot stops** checkbox is enabled) the current position is closed at market.

You can drag the stop levels directly on the chart, the same way you set grid bounds.

Stop levels are essential risk management. They protect you from runaway losses if price breaks far out of your range. Even if you expect price to stay in range, setting stops is good practice — especially on leveraged instruments.

#### Close position when the bot stops

When this checkbox is enabled, any remaining position is market-closed when a stop triggers (or when the grid stops for any other reason, such as an error). When disabled, the grid stops and cancels its orders, but your position remains open for you to manage manually. On perps, all close-position orders use the reduce-only flag, so the bot will never accidentally flip your position.

#### Take Profit (PnL target)

This field sets a **realized PnL target**. When the grid's total realized profit reaches this amount, the grid stops.

**Critical detail:** this is based purely on *realized* PnL — only the locked-in profits from completed buy–sell cycles. Unrealized PnL (the mark-to-market value of your open position) is *not* included. This means that if price moves far out of your grid range, your unrealized loss may be growing, but as long as no new grid trades complete, the PnL target is unaffected. To protect against that scenario, use Stop above / Stop below in addition to the PnL target.

#### Stop in Neutral position

When enabled, the grid will stop the next time it returns to a **neutral position** (zero net exposure from grid orders).

On its own, this is useful for Long and Short Grids: if price trends through your range in the desired direction, the grid gradually closes the position, and once it reaches neutral, it stops cleanly so that if price reverses afterwards, you won't be opening a new position.&#x20;

For a Neutral Grid, this checkbox has no effect at launch (since you start neutral), but it will activate the next time the grid cycles back to neutral. You can use it after your neutral grid ran for a while as a future take-profit level.

**Combining with Take Profit:** This is where it gets powerful. When both PnL target and Stop in Neutral position are enabled, the behavior changes: the bot first waits for the realized PnL target to be reached. Once that happens, it continues running but now watches for a neutral position. The grid stops only when *both* conditions have been satisfied — profit target hit, and position unwound to zero.

This ensures a clean exit: you've locked in your desired profit *and* you have no lingering position to manage (and negative unrealized PnL to realize).

#### PnL drawdown (When to stop)

This optional field sets a **trailing stop on realized PnL**.

It works like this: the bot continuously tracks the peak realized PnL since launch. If the realized PnL drops from that peak by the amount you specify, the grid stops.

For example, if you set PnL drawdown to $50, and the grid's realized PnL reaches a peak of $300 and then drops to $250, the grid stops to protect your gains.

**Important:** Like the PnL target, this is based only on *realized* PnL. If price moves out of the grid range and your unrealized PnL deteriorates, the drawdown stop won't trigger — only changes in realized profit matter. Use price-based stops (Stop above / Stop below) to manage unrealized exposure.

You can set the PnL drawdown when your grid bot is already running - so you don't have to decide on it in advance (unless you want to).

#### Position (perps only)

This field previews the theoretical maximum long and short positions that the grid bot can accumulate (if the price go to either extreme). It is a useful tool to assess your potential risk and exposure.

#### Initital margin / Funds needed

Shows exactly how much capital is required to launch the grid.

**For perpetual futures:**

Only margin in the settled currency (e.g. USDC) is needed, regardless of the grid mode. The exact amount depends on the number of levels, order size, and the prices of each level. Keep in mind that this is the *minimum* margin — you should maintain a buffer well above the calculated amount to avoid liquidation if price moves against you. Never allocate 100% of your available margin to a grid.

**For spot trading:**

Capital requirements depend on the grid mode:

* **Neutral** requires both base and quote currency — quote currency to fund the buy orders below market, and base currency to fund the sell orders above market.
* **Long** requires only quote currency (e.g. USDC), since all initial orders are buys.
* **Short** requires only base currency (e.g. BTC), since all initial orders are sells.

The interface clearly shows the required amounts for each currency, along with your available balance and a warning if you don't have enough.

**Base fee warning (spot):** On exchanges that charge trading fees in the base currency (including Hyperliquid spot), the grid does not automatically reserve or acquire base currency for fees. You must maintain extra base currency balance beyond what the grid needs. If you don't, the grid may stop when it can't cover fees on a trade. This warning is displayed prominently in the setup form when applicable.

As an example, you set your order size at 0.1 BTC. When a buy order executes, your actual received amount will be lower that 0.1 BTC by the amount fee witheld by the exchange. Your sell order will attempt to sell exactly 0.1 BTC and will fail unless you hold additional BTC in your account.

After reviewing your funds, click **Launch** to start the grid. The bot immediately places all grid orders and begins monitoring.

***

### Launching and monitoring the Grid bot

After you click **Launch**, the bot immediately places all grid orders on the exchange (unless activation price was specified) and starts monitoring. You can open the bot's details page at any time to see exactly what the grid is doing, review its performance, adjust its parameters, and manage it.

There are two ways to open the bot details page. You can click **Bots** in the main menu to see a list of all your running bots across all exchanges and pairs — find the grid and click on it. Alternatively, if you're already on the Exchanges page with the same trading pair selected, switch to the **Bots** tab below the chart to see all bots running on that specific instrument, and click the grid from there.

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2F26vOJbX4J5b6f9fgDymZ%2Fimage.png?alt=media&amp;token=3aa7a8bc-fdf1-4e06-b6ed-6de99209a130" alt=""><figcaption></figcaption></figure>

At the top of the bot details page, you see the bot's identifying information: the exchange, trading pair, grid mode (Neutral / Long / Short), and the key parameters you set during setup. The current status is displayed here as well — whether the bot is actively running or has stopped (and if so, the reason it stopped).

You also see the **Invested amount**. This is the total amount of funds the bot uses to operate, expressed in quote currency. For spot trading, this represents the actual capital you committed to the grid - the sum of base and quote currency (converted to quote currency at launch price).

For leveraged futures trading, the invested amount reflects the full notional size the bot operates with, *not* your actual deposited margin. If your bot uses 1,000 USDC worth of positions with 10x leverage, your real capital at risk is approximately 100 USDC, but the invested amount shows 1,000 USDC. This is important because the profitability percentages displayed in the next section are calculated against this invested amount. To get your actual return on deposited margin with leverage, multiply the shown percentage by your leverage factor.

#### Profitability

This section shows the grid's financial performance.

**Realized PnL** is the total profit locked in from completed buy–sell cycles. Every time the bot buys at a lower level and sells at a higher level (or vice versa), the profit from that pair of trades is added to realized PnL. This number only goes up when grid cycles complete - it is not affected by the current market price of your open position.

**Unrealized PnL** is the mark-to-market value of the bot's current open position. If the bot is holding a long position and price is above the average entry of that position, unrealized PnL is positive; if price is below, it's negative. This number fluctuates with every price tick.

**Total PnL** is the sum of realized and unrealized - your complete profit or loss if you were to stop the bot and close its position right now.

> **Bot PnL vs exchange position PnL: why the numbers may differ**
>
> The grid bot calculates realized PnL on a per-level basis: each buy–sell cycle is treated as an independent round-trip trade. When the bot buys at level A and later sells one level above, the difference is recorded as realized profit for that pair.
>
> Your exchange, however, tracks the entire position as one - using a single average entry price. This means the exchange's realized PnL for any individual sell is calculated against the average cost of the *whole* position, not the specific buy that the grid paired it with.
>
> This can lead to significant discrepancies, especially when price has moved far in one direction. For example: the bot buys at $100, $95, $90, $85, and $80, building a 5-order long position with an average entry of $90. Price then bounces to $85 and the bot sells one level. The bot records a realized profit on that sell (bought at $80, sold at $85 = +$5). But the exchange sees a sell at $85 against an average entry of $90 - which it reports as a -$5 loss.
>
> Neither number is "wrong" - they represent different accounting methods. The bot's method reflects the actual grid strategy performance (each level is its own trade). The exchange's method reflects the blended position.
>
> As the grid runs and completes more cycles - especially as price oscillates back through the range - these two numbers converge. Over time, the cumulative PnL will align. But during periods of extended directional movement, the gap can be meaningful, and it's important not to be alarmed if your exchange shows a different (or even negative) realized PnL while the bot shows realized profit.

The section also displays **APY** (Annual Projected Yield) in two forms: as an absolute amount in quote currency, and as a percentage. This projection takes the bot's current rate of realized profitability and extrapolates what it would produce over a full year, based on the invested amount. It's a useful benchmark for comparing the grid's performance against other strategies, but keep in mind it's a projection - actual results depend on future market conditions.

**Exchange fees** shows the total trading fees the bot has paid to the exchange across all executed orders. In Hyperliquid bots, you'll also see a separate **Platform fees** line showing the cumulative [builder fees](/perp-dexs/hyperliquid/builder-fees) paid. Both of these fee amounts are already accounted for in the realized PnL — they are shown here separately so you're aware of how much the grid has spent on execution costs.

> **Funding fees are not included in PnL (perpetual futures)**
>
> On perpetual futures, funding payments are settled directly between the exchange and your account - typically every 8 hours - based on your position size and the prevailing funding rate. These payments are **not** reflected in the grid bot's realized or unrealized PnL.
>
> This means your actual profit or loss may be higher or lower than what the bot displays, depending on the cumulative funding you've paid or received. For long-running grids that maintain a persistent directional position, the difference can be substantial. Always check your exchange's funding history separately when evaluating the grid's true performance.

#### Position

This section displays the bot's current position - the number of contracts or amount of base currency the bot is holding at this moment. This is the position that would remain if the bot stopped right now.

For a **Neutral Grid**, the initial position is zero - the bot starts flat and only builds a position as price moves and orders fill. For **Long** and **Short Grids**, the bot starts with a position immediately: the orders on the "wrong" side of the market price execute at launch, building an initial long or short exposure. As the grid runs and price oscillates, this position grows and shrinks as buy and sell orders fill across the levels.

The position shown here is the bot's **total** position - including whatever was established at launch and everything that has changed since. The unrealized PnL from this position is included in the bot's total unrealized PnL, and any realized gains or losses from grid cycles are included in the bot's total realized PnL. There is no separation between "bot performance" and "position performance" — the bot's PnL is one unified number that reflects the complete picture, which is how it should be: this is the total performance of the strategy, nothing else.

The **Close position when the bot stops** checkbox from the setup form is also accessible here, and you can toggle it on or off at any time while the bot is running. When enabled, the bot will market-close the position whenever it stops (for any reason). When disabled, the position stays open for you to manage manually after the bot stops.

#### Stop conditions

The stop parameters you configured during setup - **Stop above** and **Stop below**, **Take Profit** (PnL target), **PnL drawdown** (When to stop), and **Stop in Neutral position** - are displayed here as well.

You can toggle **Stop in Neutral position** on or off at any time during the bot's runtime.

To modify the other stop parameters, click the **Modify** button at the bottom of the details page. From there you can add, remove, or adjust the **Take Profit PnL target**, **PnL drawdown**, as well as the **Stop above** and **Stop below** price levels. This lets you tighten or widen your risk management as the grid runs and conditions change - without stopping and relaunching the bot.

#### Orders

This section provides a count of how many limit orders the bot currently has open on the exchange and how many orders it has already closed (executed). It gives you a quick sense of the grid's activity level - a grid that has closed hundreds of orders has been actively trading, while one with few closed orders may be in a range where price isn't moving much.

#### Progress

Shows the bot's total runtime - when it started and how long it has been running. Useful for evaluating performance in the context of time (especially alongside the APY projection).

#### Webhooks

The webhook section displays the **Cancel webhook URL** for this grid bot. If you want to stop the bot on a TradingView alert, you can send a request to this URL and the bot will stop as if you had pressed the Stop button manually. Currently, only the cancel webhook is supported for grid bots.

#### Price chart

The bot details page includes a full price chart with all grid activity overlaid. This is one of the most informative views for understanding how your grid is performing.

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FEzSjbcxeddTUYzQHkMZW%2Fimage.png?alt=media&amp;token=ed4d1669-03e7-46bf-ac60-df56f4151f62" alt=""><figcaption></figcaption></figure>

On the chart you can see:

* **Grey horizontal lines** represent the grid levels - the fixed price points where the bot places orders
* **Green lines** on a grid level indicate an active buy order currently placed at that price with the line start indicating th exact moment the order had been placed on the exchange.
* **Red lines** indicate an active sell order currently placed at that price
* The **neutral position level** is marked - this is the price at which the bot's net position would be zero
* The **max position levels** are also marked - the prices

  &#x20;at which the bot would reach its maximum directional exposure
* **Green dots** and **red dots** on the chart mark every executed order. Green dots are buy fills, red dots are sell fills. You can trace the bot's entire trading history visually — seeing exactly when and at which levels each trade was executed

This chart gives you immediate visual feedback on how the grid is performing: are trades clustering in a productive range? Is price spending time near the edges? Have stops or range boundaries been approached? All of this is visible at a glance.

#### Alerts

Below the chart, you can configure notifications for this specific grid bot. There are four types of alerts, and you can enable any combination of them:

* **Every order** - notifies you each time any grid order executes
* **Every PnL change** - notifies you only when an order results in a change to realized PnL (i.e., orders that complete a buy–sell cycle), as well as any close-position orders. Orders that only open or increase a position without locking in profit are skipped
* **Price enters or exits range** - notifies you when price crosses above the highest grid level or below the lowest grid level, and when it returns back into the range
* **Bot stops** - notifies you when the bot stops for any reason

You can turn each alert on or off at any point during the bot's runtime.

#### Action buttons

At the bottom of the bot details page, you have three action buttons:

**Stop** - stops the bot immediately. All open grid orders are cancelled. If **Close position when the bot stops** is enabled, the remaining position is market-closed. If disabled, your position remains open for you to manage.

**Modify** - opens the parameter editor where you can adjust stop conditions while the bot is running. You can add, remove, or change **Stop above**, **Stop below**, **Take Profit** (PnL target), and **PnL drawdown**. You can also toggle **Close position when the bot stops** and **Stop in Neutral position** from here. You do not need to stop the bot to make these changes - they take effect immediately.

**Repeat** - pre-fills the bot setup form with the exact parameters of this bot. Useful when restarting the bots.

#### Order list

Below the action buttons, you see the full list of all orders associated with this grid bot. The list is divided into two sections: **open orders** (currently placed on the exchange and waiting to be filled) and **closed orders** (already executed).

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FHCRDcywftzpddASecreZ%2Fimage.png?alt=media&amp;token=f31bed56-1674-4056-bb34-5a28173c7967" alt=""><figcaption></figcaption></figure>

For each order, you can see the price, the time it was placed or executed, its current status, and - for orders that resulted in a realized PnL - the profit earned on that specific trade. You can click on any order to open its detailed order page, which includes additional information such as the exact fees paid on that execution.

This order list is especially useful for reviewing the grid's trading history in detail and understanding the PnL contribution of individual trades.

#### When does the grid stop?

The grid stops automatically under any of these conditions:

* **Price hits a stop level** (Stop above / Stop below)
* **Realized PnL target is reached** (if set)
* **PnL drawdown triggers** (if set)
* **Neutral position reached** (if Stop in Neutral position is enabled and conditions are met)
* **An error occurs** - if any order cannot be placed or is unexpectedly cancelled by the exchange (for example, due to liquidation), the grid detects the discrepancy and stops as a safety measure, cancelling all remaining orders

When the grid stops, all open grid orders are cancelled. If **Close position when the bot stops** is enabled, the remaining position is closed at market. If disabled, your position stays open for manual management.

***

### Grid Bot video playlist

For practical walkthrough examples, real trade cases, and strategy discussions, check out our Grid Bot video playlist:

{% embed url="<https://www.youtube.com/playlist?list=PLkscu1wG9E6WxhxMwwCtymU5pg_MRLMZr>" %}

Includes:

* Long-term BTC grid case with 60%+ returns over 5 months
* High-volatility event grid setups
* Detailed range selection and level tuning
* Long, Short, and Neutral Grid comparisons in practice

> **Note:** While these examples show setups on various exchanges, the goodcryptoX grid interface and mechanics work identically across all supported exchanges - including Hyperliquid, Binance, OKX, Bybit, Gate, and others.

We are also running a dedicated [TG channel](https://t.me/+DfNOhP8G86xmYTMx) where we post our best-performing DCA and (occasionally) Grid setups - both for centralized and decentralized exchanges. Join to get new trading ideas and share your experience.

***

### FAQ

<details>

<summary><strong>What is grid trading?</strong></summary>

Grid trading is an automated strategy that places a series of buy and sell limit orders at predetermined price levels within a defined range. As price oscillates within the range, the bot repeatedly buys low and sells high, capturing small profits from each cycle. It's a way to monetize volatility without needing to predict market direction.

</details>

<details>

<summary><strong>Is grid trading profitable?</strong></summary>

Grid trading is profitable when price stays within or near your selected range and there is enough volatility to trigger trades. In ranging markets, it can generate consistent returns. The primary risk is directional: if price breaks far out of your range, unrealized losses on your accumulated position may exceed your realized grid profits. Profitability depends on good range selection, appropriate level spacing, and proper risk management.

</details>

<details>

<summary><strong>What is the best grid mode - Neutral, Long, or Short?</strong></summary>

It depends on your market outlook. Neutral is the most balanced — no initial position, minimal directional risk. Long is best when you're bullish and want to accumulate while profiting from dips. Short is best when you're bearish or want to gradually exit a position. If you're unsure, Neutral is the safest starting point.

</details>

<details>

<summary><strong>What is the difference between arithmetic and log grid levels distribution?</strong></summary>

Arithmetic distribution spaces levels with equal dollar intervals (e.g. every $1,000). Log (geometric) distribution spaces them with equal percentage intervals (e.g. every 1.2%). Log gives a consistent percentage return per level and is generally preferred for crypto — where price moves in percentage terms — especially for wide ranges and volatile assets.

</details>

<details>

<summary><strong>How many grid levels should I use?</strong></summary>

There's no single correct answer — it depends on your range width, order size, and how frequently you want trades to execute. More levels mean more frequent but smaller trades; fewer levels mean less frequent but larger trades. Start with a moderate number and observe the PnL per level shown in the interface. If it's very thin after fees, consider fewer levels or a tighter range.

</details>

<details>

<summary><strong>Does funding affect grid PnL on perpetual futures?</strong></summary>

Yes, but it's not shown in the grid's PnL tracking. Funding payments are settled directly by the exchange and affect your actual account balance. For long-running grids with persistent positions, cumulative funding can meaningfully impact your real returns. Check your exchange's funding history separately.

</details>

<details>

<summary><strong>What happens if the price leaves my grid range?</strong></summary>

No new trades execute beyond the range. You hold whatever position has accumulated from the grid's trading activity, and the unrealized PnL on that position changes with price. If price returns to the range, the grid resumes trading. If it doesn't, you can either wait or stop the grid manually.

</details>

<details>

<summary><strong>Can I get liquidated while running a grid on perps?</strong></summary>

Yes. If your margin falls below the exchange's maintenance requirement — due to the grid's position moving against you, for example — you can be liquidated. The grid detects liquidation (because the exchange cancels its orders) and stops automatically. To minimize this risk, always allocate more margin than the minimum shown in "Initial margin"

</details>

<details>

<summary><strong>What does "Stop in Neutral position" do?</strong></summary>

When enabled, the grid waits until it has zero net position and then stops. This is useful for Long and Short Grids: if price moves through the range in your desired direction, the grid closes the position level by level, and once it's flat, it stops cleanly. When combined with a PnL target, the grid first waits for the profit target to be reached, then continues running until a neutral position is achieved.

</details>

<details>

<summary><strong>Can I run a grid bot on Hyperliquid?</strong></summary>

Yes. goodcryptoX supports grid trading on Hyperliquid for both perpetual futures and spot markets. [Connect](/perp-dexs/hyperliquid/how-to-connect) your Hyperliquid account via API wallet and you have access to the full grid bot functionality — including all three modes, custom stops, activation price, and real-time chart controls. No subscription is required to run grid bots on Hyperliquid through goodcryptoX.

</details>

<details>

<summary><strong>Does grid bot work on centralized exchanges too?</strong></summary>

Yes. The grid bot in goodcryptoX works identically across all supported exchanges — including Binance, OKX, Bybit, Gate, and many others. The interface, mechanics, and all features described here apply to both centralized and decentralized exchanges. The only differences are exchange-specific (fee structures, leverage limits, order placement restrictions).

</details>

<details>

<summary><strong>Does the grid bot work on spot exchanges?</strong></summary>

Yes. The goodcryptoX grid bot works on spot markets with the same interface and mechanics as on perpetual futures. The key differences are practical: there is no leverage or liquidation risk on spot, and capital requirements depend on the grid mode — Neutral requires both base and quote currency, Long requires only quote, and Short requires only base. On spot exchanges that charge fees in the base currency (including Hyperliquid spot), you'll need to maintain extra base balance to cover trading fees. The setup form shows you exactly what's needed and warns you if your balance is insufficient.

</details>

<details>

<summary>Is the goodcryptoX grid bot free?</summary>

On Hyperliquid (and other supported DEXs) you can run grid bots with full functionality with no subscription required. A standard [trading fee](/perp-dexs/hyperliquid/builder-fees) applies on each executed order, and you can reduce it through trading volume, GOOD token holdings, or subscription tier. On centralized exchanges, grid bots are available with a paid [subscription](/ecosystem/subscription-plans).

</details>


# DCA bot

{% embed url="<https://youtu.be/k8-VXhbVDs8?si=aCM_x97LrBu09qA2>" %}

{% embed url="<https://youtu.be/kHDo8WaUGbA?si=tnqIoFkpYXOBm_8Y>" %}

{% embed url="<https://youtu.be/LDQfzydl4J4?si=k4oWoLafrDbOAkgZ>" %}

{% embed url="<https://youtu.be/eTe4sv4IdtY?si=Z0gFJrriAOPX4Mpa>" %}

{% embed url="<https://youtu.be/3ahAXp69uWk>" %}

*detailed documentation* *coming soon...*

We are also running a dedicated [TG channel](https://t.me/+9ygCl78PbCUyMjZh) where we post our best-performing DCA setups - both for centralized and decentralized exchanges. Join to get new trading ideas and share your experience.


# Infinity Trailing

> *This is not a formal documentation — yet. These are our internal notes and best practices for using Infinity Trailing Algos effectively. Full docs coming soon*

### What is Infinity Trailing bot?

Infinity Trailing (InfTrail) is a powerful bot — deceptively simple, but surprisingly versatile.

At its core, it’s just this:

* A trailing order to enter a position
* Followed by a trailing order to exit that position

That’s it. But depending on how you configure the trailing distances, volatility exposure, and exit logic, you can use InfTrail to:

* Ride big uptrends and lock in profits on the way up
* Catch fast swings in either direction
* Accumulate spot tokens you want to HODL
* Create a pseudo-grid strategy with built-in profit protection

So here’s what we think you should know (besides getting a grip on [Trailing orders](/sex-trading/manual-orders/trailing-stops)) before you launch your first InfTrail:

### ⚠️ Quick start: what NOT to do

* Do NOT run it in falling markets — it will almost certainly lose money.
* Do NOT use it on illiquid tokens — slippage will eat your gains.
* Do NOT expect profits in flat markets — this is not a scalping bot.

This Algo is designed for trends — ideally sharp upswings or strong volatility.

***

### ✅ Quick start: what to do

* Run it in trending or volatile markets (think: breakouts, not chop).
* Pick liquid pairs — especially majors (BTC, ETH, SOL, etc.).
* Use larger trailing distances — this is *crucial*. A too-tight trail will churn and lose money.
* Tune your trailing distances based on the asset’s volatility. A good rule of thumb: blue chips (BTC etc.) – at least 1%+, high-vol meme coins: 3%–10% or even more.
* :exclamation: Be patient — InfTrail will often drip small losses before catching a big move and making it all back (and more).

***

### Choosing your strategy: two InfTrail modes

There are effectively two modes you can run your InfTrail in, based on whether you set the "Only exit position at a profit" toggle ON or OFF:

#### Exit at a loss: allowed (*“only exit at a profit” = OFF)*

This is the default InfTrail mode. It will:

* Enter a position with a trailing buy/sell
* Exit that position with a trailing sell/buy — even if that exit is at a loss

When does this work best?

* When markets are volatile and you expect big moves in either direction
* When you want to catch swings, not hold through them
* When you’re not afraid of small losses in exchange for catching the big ones

#### How to think about it and what to expect?

Let’s say you use 1% trailing for both entry and exit. Then:

* The bot will ignore all moves < 1%
* It will lose money on moves between 1–2%
* It will make money on any move >2%

This is just how trailing orders work. So, here is a key takeaway:

> You want to set trailing distances larger than the normal noise of your pair

**PRO tip:** initially launch multiple InfTrails with different trailing distances (0.5%, 1%, 3%, 5%, 10%) on the same pair. Run them for some, then stop the losers — and let the winners run.

#### Exit at a Loss: NOT allowed (*“only exit at a profit” = ON)*

> aka “HODL Mode”

In this mode:

* The bot will enter normally with a trailing buy/sell
* But it will only exit at a profit.\
  Specifically, it will only activate the exit order (it will start trailing) if price moves in your favor to at least: entry price + exit trailing distance.&#x20;

This ensures that in the worst case scenario (the price moving against you right after the exit order start trailing), the exit order will be sent to the excange at your entry price. This can actually result in small loss (consider trading fees + slippage) - but you'll exit around the entry price anyway.

:exclamation:You have to understand, that in this mode, if the price improves, the bot might be left holding the position forever. If you trade with leverage - it might lead to liquidation.

When does this make sense?

* When you’re trading spot, not derivatives
* When you’re comfortable holding the asset for longer

### ⚠️ Important caveats

* This mode does not have a Stop Loss yet — we plan to add one in a future update.
* Do NOT run “only exit at profit” ON with derivatives. You’ll get liquidated if price drops and the bot never exits.

***

### 🧪 InfTrail in practice: what worked for us

Here are some real setups our team has run when we first launched the bot:

* SHIB/USDT — May 2021 — top of the bull market & SHIB = main memecoin
  * Trailing Distance: 10%
  * Market was crazy — 20–30% daily swings
  * Huge profits
* BTC/USDT — 2021 bull run (May -> November)
  * Trailing Distance: 1%
  * Ran profitably for 6+ months
* BTC/ETH with “only exit at profit” ON (2023–2025)
  * As we have no opinion on whether BTC or ETH wins in the long run and HODL both
  * Treating InfTrail like a HODL bot that sells at highs and rebuys after pullbacks

***

### 💡 Pro Tips

* 🧠 Trail distance = your filter for market noise. Set it too low and the bot will get whipsawed.
* 🧪 Try different distances on the same asset — and stop the ones that underperform.
* ⛽ Account for fees and slippage — you still pay them even if the bot avoids closing at a loss.
* 🐌 Don’t expect instant results — it often loses small before it wins big.


# Webhooks

goodcryptoX allows you to automate trading actions via TradingView webhooks — a powerful mechanism for triggering orders and bot actions directly from your signals.

Unlike some implementations that treat webhooks like a programmable API (where you send parameterized commands like "buy 3 BTC"), goodcryptoX currently supports a trigger-based model. Each webhook simply activates a predefined action on a specific order or bot — no parameters or commands are interpreted.

In the near future, we will launch a new [TradingView Strategy bot](/perp-dexs/upcoming-functionality/tradingview-strategy-bot) that supports full strategy instructions via webhooks, including dynamic symbol selection, quantities, order types, and multi-symbol logic — effectively acting as an API layer. Stay tuned

> Webhooks are only accepted from TradingView servers for now — no custom IPs or external sources.\
> If you need to use a custom webhook source, contact us at <support@goodcrypto.app> to request access.

### How webhooks work in goodcryptoX

* Every order or bot **action** has its own dedicated webhook URL
* You must create the order or bot first to get the URL (they will appear in the **Webhooks** section of the order or bot's **Details**)
* Sending **any** webhook payload to that URL will trigger the action

> Webhook URLs are action-specific, not user-specific. You must create one webhook per action, e.g. one for entry, one for take profit, one for stop loss, etc. for every bot or order

### Supported order and bot actions

If you want your order or bot to be **triggered by a webhook**, you must select webhook as the **trigger condition during setup**. This applies to:

* Stop-market / stop-limit orders trigger
* Trailing orders activation (trailing start)
* Take-profit and stop-loss triggers&#x20;
* DCA bots entry condition

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FOtmSJHlKDJLkbCquvUfC%2Fimage.png?alt=media&amp;token=c152200c-d5ad-4d69-861d-7c66700cd569" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2F278uiG55cCWY8A3XpJxm%2Fimage.png?alt=media&amp;token=7d852fc3-0ef4-45ab-921d-eab0d2287e97" alt="" width="563"><figcaption></figcaption></figure>

After creation, you’ll find all available webhook URLs in the **Details** of your order or bot:

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FKTTUr7eaKAlb7x0U818J%2Fimage.png?alt=media&amp;token=6b2a978f-fd3c-48b0-b01a-40da32d44696" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FNoneMggO61H3EFmkwTrP%2Fimage.png?alt=media&amp;token=f6f48a58-1585-41e3-8778-b69fe9564902" alt="" width="563"><figcaption></figcaption></figure>

> **Cancel** webhook — always available in all orders and bots
>
> **Close position** webhook — always available in DCA bot details

To sum up:

| Action                          | Supported? | Notes                                             |
| ------------------------------- | ---------- | ------------------------------------------------- |
| Cancel order                    | ✅          | Always shown in details                           |
| Trigger Stop order              | ✅          | Must select webhook at setup                      |
| Activate Trailing order         | ✅          | Trailing start = webhook                          |
| Trigger take profit / stop loss | ✅          | Optionally webhook-triggered                      |
| DCA bot - entry                 | ✅          | Entry buy/sell via webhook (must be set at setup) |
| DCA bot - exit                  | ✅          | Close position via webhook (always available)     |
| Grid bot - entry                | 🚫         | Not yet supported                                 |

{% hint style="info" %}
**Multiple take-profit targets with webhooks**

If you set up a take-profit group using webhook as the trigger method, they will all share the same webhook URL. Each time the webhook is triggered, the next TP order in the sequence will execute — one by one.
{% endhint %}

### How to set up alerts in TradingView

Once you’ve created your order or bot in goodcryptoX and copied the webhook URL for a specific action, here’s how to link it to your TradingView alerts:

1. Go to your chart in TradingView
2. Create a new alert based on your strategy, indicator, or condition
3. In the **alert settings**, enable the checkbox **“Webhook URL”**
4. Paste in the specific webhook URL from the goodcryptoX Webhooks section
5. Leave the **message field** as-is (any content is fine — goodcryptoX ignores the payload for now)
6. Save the alert

### Repeating strategies (via DCA bot)

A webhook-triggered order (e.g. stop-market with TP and SL) is a **one-time setup**. Once the order executes and the linked TP or SL fires, the entire trade is complete. If you want this structure to **repeat automatically**, that’s not possible with orders — but it is achievable now using the DCA bot.

We will soon introduce a dedicated [TradingView strategy bot](/perp-dexs/upcoming-functionality/tradingview-strategy-bot) to support repeating multi-action trades, but in the meantime, DCA bot provides a flexible way to repeat your webhook-driven strategy.

#### Pure webhook loop

To set up a bot that enters a position on a webhook, exits on a webhook, and then repeats:

1. Set **entry condition** = webhook
2. Set **averaging orders** = 0 (disable averaging)
3. Disable both **take**-**profit** and **stop-loss**
4. Enable **"Repeat on close position"**&#x20;

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FCquwy7JurEJkuO9rQeWn%2Fimage.png?alt=media&amp;token=542f9526-7ecb-4033-8b1c-740aef270b51" alt="" width="375"><figcaption></figcaption></figure>

Once the bot is launched, you’ll see the following webhook URLs under the bot's **Details → Webhooks** section:

* **Enter Buy** — opens a Long position
* **Enter Sell** — opens a Short position
* **Close position** — closes the active position (long or short)
* **Cancel** — stops the bot

**Execution logic**

* When the bot receives **Enter Buy**, it opens a long position.
* When it receives **Enter Sell**, it opens a short position.
* The bot will **only respond to the first entry webhook** it receives while idle.
* While a position is open:
  * Any further entry signals are **ignored**
  * The bot will not increase or reverse the current position on Entry signals
  * The only accepted signals are **close position** or a triggered TP/SL (if configured)
* Once the position is closed (manually, by webhook, or by SL/TP), the bot resets and waits for the next Entry webhook.

This loop continues as long as the bot remains active, allowing you to repeat a complete entry → exit → reset cycle indefinitely.

#### Pure webhook mode vs hybrid setups

The DCA bot supports multiple control layers that can be combined to build flexible strategies:

* **Entry**: via webhook, signal, or asap
* **Exit**: via webhook, or built-in price-based TP/SL
* **Averaging**: optional; can be disabled

You can:

* Run a bot entirely via webhook signals (entry and exit)
* Add price-based TP/SL as fallbacks, even if you use webhook exits
* Add averaging orders for additional protection

This makes it possible to design:

* Fully automated loop strategies (pure webhook)
* Signal-driven bots with manual failovers
* Hybrid setups with multi-layer exits

### Practical webhook strategy examples

#### Example 1: One-off order + multiple take profits (Bollinger Band bounce)

**Goal:** Buy when price breaches lower Bollinger Band, sell progressively as it climbs.

**Setup in goodcryptoX**

* Create a stop-market order with trigger condition = webhook
* Add three take-profit targets. TP trigger = webhook

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FU5f3sdUx8rAIkSpfuLd0%2Fimage.png?alt=media&amp;token=2772d1dd-038b-435b-bcd6-1aad6f95575d" alt="" width="563"><figcaption></figcaption></figure>

**Setup in TradingView**

Create four alerts:

1. Price breaches lower band → send to main order's **Trigger** webhook URL
2. Price returns inside band → send to **Take Profit Trigger** webhook URL
3. Price crosses mid-band → send to **Take Profit Trigger** webhook URL
4. Price breaches upper band → send to **Take Profit Trigger** webhook URL

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FW35WIYkwAwONvOjjPukZ%2Fimage.png?alt=media&amp;token=8562ad00-e7fe-4d26-8a34-38eff5c05207" alt="" width="563"><figcaption></figcaption></figure>

In the **alert settings**, enable the checkbox **“Webhook URL”**

Paste in the specific webhook URL from the goodcryptoX Webhooks section. Leave Message field as is — it is not used.

#### Example 2: Repeating strategy with DCA bot (Golden/Death Cross)

**Goal:** Enter long on Golden Cross, enter short on Death Cross. Exit with a 10% profit or when RSI > 70 and repeat forever.

**Setup in goodcryptoX**

Create DCA bot

* Entry condition = webhook
* Averaging = off (set to 0)
* Take Profit = 10%
* Stop loss = off
* Enable: "Repeat on TP"

**Setup in TradingView**

* Create three alerts on the same chart:
  1. SMA50 crosses above SMA200 → send to **Enter Buy** webhook
  2. SMA50 crosses below SMA200 → send to **Enter Sell** webhook
  3. RSI > 70 → send to **Close position** webhook

{% hint style="info" %}
DCA bot holds only one position at a time. While in position, it ignores new entry webhooks until position is closed.

If you want to be able to enter Long and Short positions on the same instrument in parallel - create two separate bots and send Enter Buy to one and Enter Sell to the other
{% endhint %}

### Summary

| Concept            | Description                                                    |
| ------------------ | -------------------------------------------------------------- |
| Trigger model      | Each action has its own webhook URL                            |
| Setup flow         | Create order → copy webhook URL → paste into TradingView alert |
| Repeating strategy | Use DCA bot with repeat enabled                                |

### Video tutorials

#### **Intro to webhook trading**

{% embed url="<https://youtu.be/JDkJFOwjjzk?si=m0GBGwTt6GTau-9X>" %}

#### **Using DCA bot with webhooks**

{% embed url="<https://youtu.be/gHXB2S6qdXU?si=i9ZobjRsxFAe7zcJ>" %}

#### **Multiple take-profits with webhooks**

{% embed url="<https://youtu.be/xF-O7ZDoDtU?si=apfiF8uyTn-p4Vh4>" %}


# Alerts

*documentation* *coming soon...*


# Upcoming functionality

The features described below are on our immediate development roadmap. The only reason they are not live yet is the team's finite throughput. Rest assured, we are doing our best to deliver them asap.


# TradingView strategy bot

*coming soon...*


# copy trading

*coming soon...*


# SOS bot

*coming soon...*


# TP/SL for Positions

*coming soon...*


# rebalancer bot

*coming soon...*


# OCO order

*coming soon...*


# VWAP & TWAP orders

*coming soon...*


# iceberg orders

*coming soon...*


# Telegram shortcuts

*coming soon...*


# conversational trading

*coming soon...*


# recurring buys

*coming soon...*


# Manual orders

Supported order types on centralized exchanges:

**Standalone orders:**

* [Market](/sex-trading/manual-orders/market) - executes immediately at the best available market price;
* [Limit](/sex-trading/manual-orders/limit) - placed in exchange's order book and executes when the specified price is reached;
* [Stop market/limit](/sex-trading/manual-orders/stop-market-limit) - triggers when a specified stop price is reached, submitting a market or limit order to the exchange;
* [Trailing stop](/sex-trading/manual-orders/trailing-stops) - follows the market price as it moves in your favor. Triggers when the market reverses by the trailing % you’ve set;

**Attached orders**

* [Take Profit](/sex-trading/manual-orders/take-profit) - triggers when the market moves in your favor by the specified percentage from the execution price of your main (entry) order. If a Stop Loss is also set, it is automatically cancelled when Take Profit triggers;
* [Trailing Take Profit](/sex-trading/manual-orders/trailing-tp-sl) - activates once your target profit % is reached, then follows the market price as it continues to improve in your favor. Triggers when the market reverses, helping you capture more upside;
* [Stop Loss](/sex-trading/manual-orders/stop-loss) -  triggers when the market moves against you by the specified % from the execution price of your main order. It cancels any attached Take Profits if triggered;
* [Trailing Stop Loss](/sex-trading/manual-orders/trailing-tp-sl) - follows the market price as it moves in your favor. If the price reverses by the trailing percentage, the order triggers — helping to reduce losses or lock in gains as the market pulls back.

⚙️ More advanced order types are [coming soon](/sex-trading/upcoming-functionality).


# Market

A Market Order executes immediately at the best available price. It prioritizes speed over price precision and is the most direct way to enter or exit a position.

Where supported, goodcryptoX uses the exchange’s native Market Order.

On exchanges, that do not support market orders natively, we approximate them using a Limit IOC (Immediate or Cancel) order placed deep into the orderbook — 10% above best ask (for buys) or 10% below best bid (for sells).

In normal conditions, this behaves like a Market Order. But in cases of high volatility or low liquidity, the order may be only partially filled — or not filled at all — unlike a native market order, which would execute fully.


# Limit

A Limit Order is an instruction to buy or sell at a specific price or better. Unlike conditional orders such as stop orders, trailing orders, or TP/SL combos — which are monitored on goodcryptoX servers until their trigger conditions are met — a Limit Order is sent immediately to the exchange and placed directly on the exchange’s orderbook.

Because it lives on the exchange rather than on our servers, a Limit Order’s execution, fill behavior, or rejection is determined entirely by the exchange. Once submitted, it behaves independently of goodcryptoX: even if our servers experience downtime, your limit order will remain on the book and continue to execute normally according to exchange’s matching engine.

Limit orders can be used to enter or exit positions directly, and they also serve as the execution leg in Stop Limit and Trailing Stop Limit orders triggered by goodcryptoX. Grid and DCA bots rely on native limit orders as well.


# Stop market/limit

Stop Market and Stop Limit orders are conditional order types used to automate trade execution once a specific trigger condition is met.

* A Stop Market order sends a market order to the exchange when the stop condition is triggered.
* A Stop Limit order sends a limit order to the exchange at a predefined price when the stop condition is triggered.

In goodcryptoX, the stop condition can be either:

* A price level reached by the market, or
* A TradingView [webhook](/sex-trading/webhooks), allowing full control via custom TA alerts or strategy scripts.

Until triggered, both Stop Market and Stop Limit orders live entirely on goodcryptoX servers. The exchange has no knowledge of them, which provides two key benefits:

* Your exchange balance is not frozen until the order triggers, allowing for more efficient capital use.
* These orders don’t count toward your open order limits on the exchange.

However, because the trigger logic is server-side, there is a small dependency: if goodcryptoX servers are unavailable at the moment the condition is met, the order may not trigger or execute.

Unlike some exchanges that restrict stop conditions or limit prices based on current market direction, goodcryptoX lets you define both the stop price and the limit price freely — above, below, or equal to the current market price (or stop price for Stop Limit order).


# Trailing stops

A Trailing Stop order dynamically follows the market price at a fixed distance. As the price moves in your chosen direction, the trailing trigger moves with it. When the market reverses by the set distance, the order is triggered and submitted to the exchange.

* Trailing Buy follows the price downward and triggers when the market bounces up by the trailing distance. It’s typically used to enter a position at the lowest possible point.

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FAVSsfSG4LX3ltedFg2Qw%2Fimage.png?alt=media&amp;token=cc070071-2566-4aa4-8a61-d20133f235e8" alt="" width="563"><figcaption></figcaption></figure>

* Trailing Sell follows the price upward and triggers when the market pulls back by the trailing distance. It’s commonly used to exit positions at the highest point before a reversal.

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2F33jkfJRT5J4pXHedgv7p%2Fimage.png?alt=media&amp;token=236c86f5-3075-4b14-943d-f6768e0a8482" alt="" width="563"><figcaption></figcaption></figure>

Trailing orders in goodcryptoX are handled on our server until triggered. The exchange doesn’t know about them until they fire, which provides two key advantages:

1. Your balance isn’t frozen until the order is triggered, so your capital remains fully usable.
2. They don’t count toward your exchange order limit.

However, this also means the order depends on our infrastructure: if our servers are temporarily unavailable when the trigger condition is met, the order may not be submitted.

Watch our video overview for a detailed walkthrough:

{% embed url="<https://youtu.be/jWtCSEvJykg?si=xy4CGVZiV99XTby9>" %}

#### Reverse Trailing Orders

Reverse trailing orders do the opposite:

* Reverse Trailing Buy follows the price upward and triggers when the market drops. It’s useful for “buy the dip” setups.
* Reverse Trailing Sell follows the price downward and triggers when the market rises. It’s designed to “sell the pump”.

#### Trailing Stop vs Trailing Stop Limit

* Trailing Stop (Market): when conditions are met a market order is sent to the exchange. Ensures execution but may suffer slippage in fast-moving markets.
* Trailing Stop Limit: places a limit order on the exchange at the trigger price. Protects against slippage but may fail to fill if the market moves past the limit price too quickly.

See our video “Trailing Stop vs Trailing Stop Limit” for a detailed breakdown:

{% embed url="<https://youtu.be/23D1khsYzn0?si=EPupR7l_Bcg77QUR>" %}

### Advanced Features

#### **Trailing Start**

Normally, Trailing Stop starts tracking the market as soon as the order is created. With Trailing Start, you can define a condition that must be met before trailing begins. The trigger can be either a price level or a TradingView [webhook](/sex-trading/webhooks). This adds flexibility for advanced setups:

* *Example:* Start trailing buy only if Bitcoin drops to $90K
* *Example:* Start trailing sell when a TradingView alert is triggered (e.g., breaks above Bollinger Band)

<figure><img src="https://3159525366-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrFKhEXxJL95YqC19XHlF%2Fuploads%2FlSIMtCQeJGfCTTEOOhJi%2Fimage.png?alt=media&amp;token=c6836c6f-fa47-4ae1-8e90-75f1506d5fb2" alt=""><figcaption></figcaption></figure>

#### **Improve Only**

The Improve Only option ensures that your entry price will never be worse than the current market price. Without it, a Trailing Buy with a 1% trailing distance at 100k would initially trigger at 101k; with Improve Only enabled, the order waits until the market dips enough so that the trigger can trail at 100k or lower.

Improve Only can be used on its own or together with Trailing Start. For example, you can set:

* Trailing Start: 90k
* Trailing Buy distance: 2%
* Improve Only: enabled

Without Improve Only, the worst-case fill would be at \~91.8k (90k + 2%). With Improve Only, the system shifts the effective start level so that the *worst-case* fill is around 90k instead: if price bounces immediately, you buy roughly at your start level; if it keeps dipping, you buy even lower.

#### Take Profit / Stop Loss Combos

Trailing orders can also be used as Trailing Take Profit or Trailing Stop Loss legs inside TP/SL combos. For more on that, see [Trailing TP/SL](/sex-trading/manual-orders/trailing-tp-sl).

#### Learn More

Read our full guide:&#x20;

{% embed url="<https://goodcrypto.app/trailing-stop-order-a-definitive-guide/>" %}


# Take Profit

*documentation* *coming soon...*


# Multiple Take Profits

{% embed url="<https://youtu.be/4y-EnTLHjrY?si=BS0GeBjPZuEHT_Qr>" %}

*documentation* *coming soon...*


# Stop Loss

*documentation* *coming soon...*


# Stop Loss that follow TPs

{% embed url="<https://youtu.be/a52GBvtntPs?si=yI05dbC497cisjyz>" %}

*documentation* *coming soon...*


# Trailing TP/SL

{% embed url="<https://youtu.be/BIJvQBKZSvQ?si=4baD0L--xesnO-FC>" %}

{% embed url="<https://youtu.be/AB7pGtPPZYY?si=EUYECv43b6OmW-T4>" %}

{% embed url="<https://youtu.be/1T0dZN1KC0g?si=0hSUgZty3_DNLZ4c>" %}

{% embed url="<https://youtu.be/lXk7EeWXnrc?si=NCCjqfshDpya9H9O>" %}

*documentation* *coming soon...*




---

[Next Page](https://docs.goodcrypto.app/llms-full.txt/1)

