Skip to content

High-performance modules for develop Solana Trading Bots: CLI, gRPC bots, and low-latency integrations with Jito, bloXroute, Jupiter, and DEXes

License

Notifications You must be signed in to change notification settings

mba03gl/solana-trading-cli

 
 

Repository files navigation

Table of Contents

About

Solana Trading CLI is a free, highly efficient library designed to facilitate rapid development of custom trading strategies across multiple Solana DEXs. It emphasizes low-latency performance, flexibility, and real-time data processing, utilizing cutting-edge infrastructure. These features ensure the following benefits:

  • Speed: Leverages low-latency infrastructures like Jito and BloXroute to minimize trade execution times, giving your strategies a competitive edge.
  • Versatility: Supports multiple DEXs like Raydium, Orca, Meteora, and Pump.fun, allowing for diverse trading opportunities.
  • Real-time Insights: Fetches current state of an account using RPC, streams the latest transactions of accounts using geyser gRPC

The library is built with modularity and extensibility in mind, employing software design patterns that promote:

  • Customizability: Easily integrate your own trading strategies and extend the bot's functionality.
  • Testability: Well-separated components facilitate comprehensive testing of individual modules.
  • Maintainability: Clear structure and separation of concerns simplify ongoing development and updates.

Designed for seamless integration into existing trading systems, the Open-Source Low-Latency Trading Bot provides a robust foundation for both novice algo-traders and experienced quantitative analysts. Its open-source nature encourages community contributions and continuous improvement, ensuring the bot evolves alongside the fast-paced world of decentralized finance.

Key Features

Token Creation and Multi-DEX Support

Create your own Solana SPL tokens on mainnet via Pump.fun and swap tokens across multiple decentralized exchanges:

Exchange Documentation
Jupiter CLI & trading functions guide
Raydium CLI & trading functions guide
Orca CLI & trading functions guide
Meteora CLI & trading functions guide
Pump.fun Integrated support

Low-Latency Infrastructure

Accelerate transaction finality using Jito and bloXroute for lightning-fast trades. Both capable of pushing your trasaction faster then any other service provider on the market

Provider Description
Jito Fast trascation and optimizes transaction ordering and execution specifically
Bloxroute Fast trascation and accelerates transaction propagation

Real-Time Market Data

Fetch critical metrics for any liquidity pool in real-time with RPC calls:

  • Price
  • LP-burn percentage
  • Pool reserve
  • Market cap

Advanced Trading Tools

Utilize our local limit order and TP/SL module with zero dependencies. Explore the documentation

All commands

Here

Open-Source Bots

Leverage our cutting-edge, open-source trading bots:

Bot Name Features Source
gRPC Pump.fun Sniper Bot Ultra-low latency (0.4-2 seconds) View source
gRPC Copy Bot Replicate successful trading strategies View source
gRPC Raydium Sniper Bot Optimized for Raydium DEX View source

Extensibility

Our comprehensive toolkit provides everything you need to create your own custom trading bot, tailored to your unique strategies and requirements.

🛠️ Installation

Follow these steps to get your development environment set up:

  1. Clone the repository

    git clone https://github.com/outsmartchad/solana-trading-cli.git
  2. Navigate to the project directory

    cd solana-trading-cli
  3. Install the correct Node.js version

    nvm install
    nvm use
  4. Install dependencies

    npm install
  5. Run the test script

    ts-node test.ts

Installation Prerequisites

Troubleshooting

If you encounter any issues during installation, please check our FAQ or open an issue.

🚨 Set Up

Before you begin, ensure you have completed the following steps:

1. Environment Configuration

  1. Locate the template file:

    src/helpers/.env.example
    
  2. Copy this file and rename it to .env in the same directory.

  3. Open the .env file and add the following required information:

    • Mainnet wallet secret key (required)
    • RPC endpoint (required)
    • Custom Jito fee (if needed)
  4. Optional configurations:

    • Devnet wallet secret key
    • Shyft API key

2. API Keys and Wallet Setup

  • Mainnet Wallet: Ensure you have a funded Solana mainnet wallet. The secret key is required for mainnet transactions.
  • RPC Endpoint: Obtain a reliable RPC endpoint for connecting to the Solana network.
  • Jito Integration: If using Jito, prepare your custom fee configuration.
  • Devnet Wallet (Optional): For testing purposes, set up a devnet wallet.
  • Shyft API (Optional): If you plan to use Shyft services, obtain an API key from Shyft.

3. Final Check

  • Confirm that your .env file is properly configured and saved.
  • Ensure the .env file is in the correct location: src/helpers/.env
  • Verify that you haven't accidentally committed your .env file to version control.

⚠️ Security Note: Never share or commit your .env file or any private keys. The .env file is included in .gitignore for your safety.

For any issues with configuration, please refer to our Troubleshooting Guide or open an issue.

🤝 Feedback and Contributions

We've made every effort to implement all the main aspects of solana trading in the best possible way. However, the development journey doesn't end here, and your input is crucial for our continuous improvement.

Important

Whether you have feedback on features, have encountered any bugs, or have suggestions for enhancements, we're eager to hear from you. Your insights help us make the Solana Trading Client library more robust and user-friendly.

Please feel free to contribute by submitting an issue, joining the discussions, or joining our discord. Each contribution helps us grow and improve.

We appreciate your support and look forward to making our product even better with your help!

How to Contribute

  • Contributions is wellcome!!!
  • Fork it
  • git checkout -b feature/YourNewFeature
  • git commit -m 'bug Fixed/added new feature'
  • git push origin feature/YourNewFeature
  • And Please open a pull request

Apply Latest Changes from remote repo

  • git stash -u # Stash your changes
  • git pull --rebase # Pull the latest changes
  • git stash pop # Apply Your stashed changes

✅ Credits

‼️ Disclaimer

This software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.

Use at your own risk. The authors take no responsibility for any harm or damage caused by the use of this software. Users are responsible for ensuring the suitability and safety of this software for their specific use cases.

By using this software, you acknowledge that you have read, understood, and agree to this disclaimer.

If you think this will steal your keys, i have no time to convince you to use it.

🤖 Plans

  • A local-based db to store your limit orders

  • Smart scripts to help you detect potential rug pulls on pump.fun, e.g. dev sold, master wallet, similar past rug patterns

  • More gRPC bots to come

  • More algos to trade on raydium/Pump.fun

  • Make it more easier to install, deploy the bot using docker

🪙 Final State of this repo

  • Best trading framework on Solana

  • Best package/library for trading development on solana, e.g.(we could make it easy to like Raydium.buy("token", 0.01sol, 1%slippage))

  • Best open-soured trading bot

  • Succeed with Solana dev!

About

High-performance modules for develop Solana Trading Bots: CLI, gRPC bots, and low-latency integrations with Jito, bloXroute, Jupiter, and DEXes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.9%
  • Shell 0.1%