DCA tool to buy cryptocurrencies as often as possible on Kraken 🐙
  • Go 99.4%
  • Dockerfile 0.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
dependabot[bot] 601e8768b7
chore(deps): bump golang.org/x/crypto from 0.31.0 to 0.35.0 (#7)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.31.0 to 0.35.0.
- [Commits](https://github.com/golang/crypto/compare/v0.31.0...v0.35.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.35.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-15 07:47:56 +02:00
.github feat: add dependabot 2024-05-02 22:26:16 +02:00
.vscode chore: add vscode config 2024-05-04 11:27:14 +02:00
bot fix: refetch fiat balance after purchase 2024-07-31 21:26:57 +02:00
config refactor(config): use env-loader 2024-05-25 17:43:20 +02:00
kraken refactor(purchases): small cleanup 2024-07-07 21:03:03 +02:00
metrics refactor(config): use env-loader 2024-05-25 17:43:20 +02:00
notification chore: refactor logs 2024-05-13 21:43:03 +02:00
.goreleaser.yml feat(docker): try to add latest tag 2024-04-26 17:35:03 +02:00
Dockerfile chore: change docker destination path 2024-04-26 12:25:42 +02:00
go.mod chore(deps): bump golang.org/x/crypto from 0.31.0 to 0.35.0 (#7) 2025-04-15 07:47:56 +02:00
go.sum chore(deps): bump golang.org/x/crypto from 0.31.0 to 0.35.0 (#7) 2025-04-15 07:47:56 +02:00
LICENSE feat: add license 2024-04-26 17:52:38 +02:00
main.go chore: improve code 2024-06-29 22:58:56 +02:00
README.md feat: make limit order stable 2024-05-17 17:28:10 +02:00
version.go fix: don't panic when fiat isn't enough for one order 2024-05-01 20:06:12 +02:00

🐙 Kraken-DCA

Automated dollar cost averaging on the Kraken exchange

Buid License

Table of Contents

  1. About the project
  2. Configuration
  3. Push Notifications
  4. Run with Docker
  5. Run without Docker

🔍 About the project

Since Kraken has extremely high fees for its crypto savings plan, this tool was developed to invest regularly in cryptocurrencies. Since Kraken offers two platforms: Kraken and Kraken Pro, we take advantage of the fact that Kraken Pro has very low fees. All you have to do is regularly deposit fiat currencies on Kraken Pro and the bot does everything else for you.

💰 Orders

When will orders be placed?

Bitcoin orders are placed as often as possible. To illustrate the behaviour in more detail, let's look at the following example: You deposit €500 per month on Kraken-Pro. The bot calculates how often you can buy Bitcoin this month, as Kraken has a minimum purchase limit of 0.0001 BTC. Your orders are executed as often as possible throughout the month, thereby achieving dollar-cost averaging.

⚙️ Configuration

This tool is configured via environment variables. Some environment variables are required and some activate additional functionalities.

Variable Description Required Default
KRAKEN_PUBLIC_KEY Your Kraken API public key
KRAKEN_PRIVATE_KEY Your Kraken API private key
CURRENCY Your fiat currency to be used, e.g. USD or EUR USD
KRAKEN_ORDER_SIZE The order size to be used. This value should only be edited if you know exactly what you are doing. 0.0001
LIMIT_ORDER_MODE If set to true, limit orders are placed. With a normal monthly volume, you only pay 0.25% fees per purchase instead of 0.4%. false
CHECK_DELAY How often the algorithm should be executed, in seconds. 60
GOTIFY_URL URL to your Gotify server
GOTIFY_APP_TOKEN App token for the app on the Gotify server

📱 Push Notifications

The environment variables GOTIFY_URL and GOTIFY_APP_TOKEN can be used to activate Gotify Push Notifications. As soon as a purchase has been made, you will immediately receive a notification so that you always have a full overview of your purchases.

🐳 Run with Docker

Docker-CLI

docker run -d --name kraken_dca \
  -e KRAKEN_PUBLIC_KEY=your-public-key \
  -e KRAKEN_PRIVATE=your-private-key \
  -e CURRENCY=EUR \
  ghcr.io/primexz/kraken_dca:latest

🚀 Docker-Compose

vim docker-compose.yml
version: "3.8"
services:
  kraken_dca:
    image: ghcr.io/primexz/kraken_dca:latest
    environment:
      - KRAKEN_PUBLIC_KEY=your-public-key
      - KRAKEN_PRIVATE_KEY=your-private-key
      - CURRENCY=EUR
    restart: always
docker-compose up -d

💻 Run without Docker

This tool can be run directly with Go for development.

KRAKEN_PUBLIC_KEY=your-public-key KRAKEN_PRIVATE_KEY=your-private-key go run .