Getting Started - svanas/nefertiti Wiki

Nefertiti is completely free and open source and is really simple to use. It was designed to be run with minimal oversight, and should work right out of the box with the default settings. This guide should help get you started.

Gather All Your Info

Nefertiti works with API access to an exchange, and offers a couple of options for getting notifications.

API keys

There is always a risk when using an API. Please make sure to keep your keys confidential Please do NOT give your API keys withdraw/transfer permissions!

Before starting with Nefertiti, gather your exchange API public and private keys (and passphrase if your exchange requires it) and make sure the API has trading permissions.

Notifications

Pushover

You have to install the Pushover app on at least 1 device or you’ll see invalid recipient errors.

Telegram

Don't get confused: the @get_id_bot will give you two different chat ID's. Be sure you use your Group Chat ID and not your user chat ID!*

Download and Initial Setup

Nefertiti is a command line application, meaning everything it needs to run is packaged into a single binary. The download, installation, and usage of Nefertiti is practically the same no matter which platform or operating system you are using.

You can download the latest release here, or you can build from source.

Windows

Windows users have the option of using Nefertiti on the Windows platform or with Windows Subsystem for Linux using your preferred flavor of Linux.
While either option is fine, using WSL is the preferred method.

If you don't know your system architecture, hit the Windows Key and type in sysinfo and press Enter. Your system architecture will be under 'System Type'

Windows amd64.
Windows 386.

Download the appropriate binary someplace you can easily find it. To verify the binary works, you can navigate to the folder the binary is in, hold the SHIFT key while right clicking, and selecting Open PowerShell window here. When the window opens, type in nefertiti, hit tab to autocomplete the name of the binary, and hit enter.

MacOS

Darwin amd64
Darwin arm64

Linux

Select your platform using the links below to download, or you can use WGET in the command line like:

wget https://github.com/svanas/nefertiti/releases/latest/download/nefertiti_linux_amd64

And if you'd like to use the binary anywhere, you move it into your local bin folder:

sudo cp nefertiti_linux_amd64 /usr/local/bin

Linux 386
Linux amd64
Linux arm Linux arm64
Linux mips
Linux mips64
Linux mips64le
Linux mipsle
Linux ppc64
Linux ppc64le
Linux s390x

Checking Setup

It's a good idea to run a few Nefertiti commands before trying to set up live bots.

Let's start with the most basic: Open a terminal and navigate to the folder where the Nefertiti binary is located (if you didn't add it to your local bin folder), and run the application to make it works:

$:> .\nefertiti_windows_amd64.exe

Usage: nefertiti [--version] [--help] <command> [<args>]

Available commands are:
    about        About nefertiti.
    agg          Calculates the aggregation level for a given market pair.
    base         Get the base symbol for a given market pair.
    book         Get a list of all public orders on a market.
    buy          Opens new limit buy orders on the specified exchange/market.
    cancel       Cancels all your buy or sell orders on a given market.
    exchanges    Get a list of supported exchanges.
    exit         Exit the specified exchange/market.
    listen       Starts a server listening to the specified port.
    markets      Get a list of available currency pairs for trading.
    notify       Send a notification.
    order        Place an order with the specified exchange.
    quote        Get the quote symbol for a given market pair.
    sell         Automatically opens new sell orders on the specified exchange/market.
    stoploss     Place a stop-loss order with the specified exchange.
    update       Check for a new version.

More information on these commands and their usage can be found here.

Paying attention to the command usage: Usage: nefertiti <command> [<args>] we can then start trying some of the basic commands:

$:> .\nefertiti_windows_amd64.exe about
NAME:
  nefertiti is a command-line trading bot that follows a simple but proven
  strategy: buy the dip, then sell those trades as soon as possible.

USAGE:
  ./nefertiti command [options]

VERSION:
  0.0.184

AUTHOR:
  Stefan van As <[email protected]>

GLOBAL OPTIONS:
  --help     show help
  --version  print the version

PRICING:
  nefertiti is freeware. But if the bot is making you money, then I would
  appreciate a BTC donation here: 1M4ZAsZGA89P54kAawZk8dKTcytLw33keu. Thanks!

DISCLAIMER:
  Never spend money on crypto that you cannot afford to lose. Use at your own
  risk.

Nefertiti offers the --help flag for almost every command. If you're ever in doubt, that should be the first thing you check!

Let's try one more command before moving on. Let's try to use the sell command to start a new sell bot:

$:> .\nefertiti_windows_amd64.exe sell
2022/01/14 11:10:29 [ERROR] sell.go:command.(*SellCommand).Run:26 missing argument: exchange

Oh no! We got an error, but that's perfectly fine! Nefertiti does it's best to give you useful feedback and error messages, especially if you mess up the initial commands. The error we got is pretty clear: missing argument: exchange.

Let's fix that error by providing the missing argument:

$:> .\nefertiti_windows_amd64.exe sell --exchange=GDA
2022/01/14 11:13:01 [ERROR] sell.go:command.(*SellCommand).Run:26 exchange GDA does not exist

Another error! But that's also okay, because the error exchange GDA does not exist tells us what we need to know: either our exchange code is wrong, or we're trying to connect to an unsupported exchange. To see which exchanges are supported, you can either use the exchanges command or check out the current table of supported exchanges.

Running Nefertiti

Nefertiti has both a buy and a sell bot that have to be run simultaneously, and it is important that the sell bot is started first. In their most basic form the bots are quite simple to run and only require a few arguments. The commands to run Nefertiti can be as simple as:

$:> .\nefertiti_windows_amd64.exe sell --exchange=GDAX
$:> .\nefertiti_windows_amd64.exe buy --exchange=GDAX --market=ETH-USD,BTC-USD

Note: For security, the terminal input may be blank and you may not see anything when typing/pasting API keys in response to the questions. This is normal. Just input your information and continue - Nefertiti will tell you if there are any errors.

Nefertiti was designed to be run with as few arguments as possible! Adding additional arguments can cause problems, please use with caution!

The rest of the buy/sell bot arguments should be easy to understand and use if you want to modify anything about the default behavior. However, the bot is designed to work very well 'out-of-the-box' without any adjustments and it is recommended to run the default bot without additional adjustments before trying to tweak the program.

TL;DR - Easiest Commands to Start

You really should read this entire guide, but if you know what you're doing these command lines will get you started as quick as possible.
Be sure to put in your API keys and notification info.

Running Nefertiti like this can expose your keys in the terminal log.

Start a sell bot:

$:> .\nefertiti_windows_amd64.exe sell \
      --exchange=GDAX \ 
      --api-key= \ 
      --api-secret= \ 
      --api-passphrase= \ ## Api Passphrase if needed. Safe to remove if not
      --telegram-app-key= --telegram-chat-id= \
      --pushover-app-key=none --pushover-user-key=none \

Start a buy bot:

$:> .\nefertiti_windows_amd64.exe buy \
      --exchange= \
      --market= \ # Comma separated list or 'all'
      --api-key= \
      --api-secret= \
      --api-passphrase= \
      --telegram-app-key= --telegram-chat-id= \
      --pushover-app-key=none --pushover-user-key=none \
      --price= \ # Or '--size='
      --repeat=1