Giter Site home page Giter Site logo

jup-dca-bot's Introduction

Jup V4 DCA Bot

This bot runs a simple dollar cost averaging strategy to buy assets over a period of time. It utilizes Jupiter Aggregator, a swap aggregator on Solana using their SDK V4. It has built in rudimentary retry logic for failed transactions.

This code was adapted from ARBProtocol's jup-dca-bot orginally written by Jerald Tomada and has been updated to experiment and learn. It has not been thoroughly tested and is unaudited. Please use at your own risk!

It is best practice not to store tokens on the wallet used with this bot apart from what is needed for swapping. Setting up a schedule to move tokens (not needed on the wallet) to a cold-storage hardware backed wallet (aka Ledger wallet) should be implemented to secure the DCA tokens being collected.

Jup DCA Bot Demo

Install

yarn install

Configure

  1. Create an .env file at the project root. See .env-example. Private key can be obtained from Phantom via Settings -> Export Private Key.

As the private key is stored in the .env file it is important to secure access to this file (on top of severly limiting funds stored on this wallet). Remove other/group access as a starting point to this file to only allow the owner and root user to be able to read the file (chmod 600 .env), use a secure password for the user for accessing the server it runs on and follow other best practices to reduce risk here including frequently moving swapped dca tokens to a hardware backed wallet.

  1. Create your own dcaconfig.ts. See dcaconfig-example.ts for a template.

Remove the entires you do not need from the sample file. Always start with a very small amount to see it is doing what is expected before you test further. Use at your own risk.

To see example cron expressions, check out crontab.guru. Note: the minimum interval is one minute.

Run

yarn start

Future Pending Improvements

  • Improved error and transaction retry logic and validation on if the trade is worth executing (outside of Jupiter)
  • Log to remote database for tracking
  • Auto enable / disable and adjustments for timing & amounts based on custom trading approach ruleset(s)

jup-dca-bot's People

Contributors

cryptopavelsan avatar jtomada avatar arbcaptain avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.