Skip to content

Commit

Permalink
init: raydium-volume-bot
Browse files Browse the repository at this point in the history
  • Loading branch information
solguru310 committed Aug 11, 2024
0 parents commit 242338e
Show file tree
Hide file tree
Showing 26 changed files with 5,442 additions and 0 deletions.
41 changes: 41 additions & 0 deletions .env.copy
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
PRIVATE_KEY=
RPC_ENDPOINT=
RPC_WEBSOCKET_ENDPOINT=


####### BUY SETTING #######
IS_RANDOM=true
DISTRIBUTION_AMOUNT=0.01
BUY_AMOUNT=0.01
BUY_UPPER_AMOUNT=0.002
BUY_LOWER_AMOUNT=0.001

BUY_INTERVAL_MAX=2000
BUY_INTERVAL_MIN=4000

CHECK_BAL_INTERVAL=3000
DISTRIBUTE_WALLET_NUM=8

SWAP_ROUTING=true

###### FOR MASSIVE BUY #####
WALLET_NUM=8

########## FOR SELL MODE ##########
SELL_ALL_BY_TIMES=20 # how many time it will take to sell all tokens in subwallets through small buy and sell
SELL_PERCENT=100 # how many percent of token in main wallet will be sold gradually

#### TOKEN PAIR SETTING ####
#TOKEN_MINT=tgw7RiFwLUsM9dHNGj2mdAZjuivdsk8FH9RESxFX8LX
TOKEN_MINT=6VbEGuqwhjdgV9NxhMhvRkrFqXVNk53CvD7hK3C3yQS9
POOL_ID=null

TX_FEE=10
ADDITIONAL_FEE=0.006 # should be larger than 0.006SOL
JITO_KEY=
JITO_FEE=120000
BLOCKENGINE_URL=ny.mainnet.block-engine.jito.wtf


###### GENERAL SETTING ######
LOG_LEVEL=info
141 changes: 141 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Snowpack dependency directory (https://snowpack.dev/)
web_modules/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional stylelint cache
.stylelintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local

# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache

# Next.js build output
.next
out

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# vuepress v2.x temp and cache directory
.temp
.cache

# Docusaurus cache and generated files
.docusaurus

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

# PNPM
pnpm-lock.yaml

# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

# JetBrains
.idea

# Visual Studio Code
*.code-workspace

data.json
5 changes: 5 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"singleQuote": true,
"trailingComma": "all",
"printWidth": 120
}
89 changes: 89 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# Raydium Pairs Volume Bot

This bot is designed to automate the distribution of SOL to multiple wallets and execute endless buy and sell swap transactions simultaneously on the Raydium platform. It leverages Solana's blockchain technology to perform these operations efficiently.

## Features

- **Automated SOL Distribution**: Distributes SOL to new wallets.
- **Endless Buy and Sell Swaps**: Performs simultaneous buy and sell transactions.
- **Configurable Parameters**: Allows customization of buy amounts, intervals, distribution settings, and more.
- **Massive Buy Mode**: Enables the configuration of multiple wallets for large-scale buy operations.
- **Sell Mode**: Gradually sells all tokens in sub-wallets through small transactions.
- **Token Pair Settings**: Configurable token mint and pool ID for swap operations.
- **Logging**: Supports adjustable logging levels for better monitoring and debugging.

## Environment Variables

The bot uses the following environment variables, which should be defined in a `.env` file:

```env
PRIVATE_KEY= # Private key for the main wallet
RPC_ENDPOINT= # RPC endpoint for Solana
RPC_WEBSOCKET_ENDPOINT= # RPC WebSocket endpoint for Solana
####### BUY SETTING #######
IS_RANDOM=true # Enable random buy amounts
DISTRIBUTION_AMOUNT=0.01 # Amount of SOL to distribute to each wallet
BUY_AMOUNT=0.01 # Fixed buy amount
BUY_UPPER_AMOUNT=0.002 # Upper limit for random buy amount
BUY_LOWER_AMOUNT=0.001 # Lower limit for random buy amount
BUY_INTERVAL_MAX=2000 # Maximum interval between buys in milliseconds
BUY_INTERVAL_MIN=4000 # Minimum interval between buys in milliseconds
CHECK_BAL_INTERVAL=3000 # Interval to check wallet balances in milliseconds
DISTRIBUTE_WALLET_NUM=8 # Number of wallets to distribute SOL to
SWAP_ROUTING=true # Enable swap routing
###### FOR MASSIVE BUY #####
WALLET_NUM=8 # Number of wallets for massive buy operations
########## FOR SELL MODE ##########
SELL_ALL_BY_TIMES=20 # Number of times to sell all tokens in sub-wallets gradually
SELL_PERCENT=100 # Percentage of tokens to sell from the main wallet
#### TOKEN PAIR SETTING ####
TOKEN_MINT=6VbEGuqwhjdgV9NxhMhvRkrFqXVNk53CvD7hK3C3yQS9 # Token mint address
POOL_ID=null # Pool ID for the token pair
TX_FEE=10 # Transaction fee
ADDITIONAL_FEE=0.006 # Additional fee (should be larger than 0.006 SOL)
JITO_KEY= # Jito key
JITO_FEE= # Jito fee
BLOCKENGINE_URL=ny.mainnet.block-engine.jito.wtf # Block engine URL
###### GENERAL SETTING ######
LOG_LEVEL=info # Logging level (info, debug, error)
```

## Usage
1. Clone the repository
```
git clone https://github.com/skeleton1009/raydium-volume-bot.git
cd raydium-volume-bot
```
2. Install dependencies
```
npm install
```
3. Configure the environment variables

Rename the .env.copy file to .env and set RPC and WSS, main keypair's secret key, and jito auth keypair.

4. Run the bot

```
npm start
```


## Author

Discord: skel1009 in discord

Twitter: [ewan_tomson](https://x.com/ewan_tomson)

Telegram: [@Ruby0107](https://t.me/@Ruby0107)

You can always find me here, for help, or for other projects.
37 changes: 37 additions & 0 deletions constants/constants.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { logger, retrieveEnvVariable } from "../utils"

export const PRIVATE_KEY = retrieveEnvVariable('PRIVATE_KEY', logger)
export const RPC_ENDPOINT = retrieveEnvVariable('RPC_ENDPOINT', logger)
export const RPC_WEBSOCKET_ENDPOINT = retrieveEnvVariable('RPC_WEBSOCKET_ENDPOINT', logger)

export const IS_RANDOM = retrieveEnvVariable('IS_RANDOM', logger) === 'true'
export const SWAP_ROUTING = retrieveEnvVariable('SWAP_ROUTING', logger) === 'true'
export const DISTRIBUTION_AMOUNT = Number(retrieveEnvVariable('DISTRIBUTION_AMOUNT', logger))
export const BUY_AMOUNT = Number(retrieveEnvVariable('BUY_AMOUNT', logger))
export const BUY_UPPER_AMOUNT = Number(retrieveEnvVariable('BUY_UPPER_AMOUNT', logger))
export const BUY_LOWER_AMOUNT = Number(retrieveEnvVariable('BUY_LOWER_AMOUNT', logger))

export const BUY_INTERVAL_MIN = Number(retrieveEnvVariable('BUY_INTERVAL_MIN', logger))
export const BUY_INTERVAL_MAX = Number(retrieveEnvVariable('BUY_INTERVAL_MAX', logger))

export const SELL_ALL_BY_TIMES = Number(retrieveEnvVariable('SELL_ALL_BY_TIMES', logger))
export const SELL_PERCENT = Number(retrieveEnvVariable('SELL_PERCENT', logger))

export const DISTRIBUTE_WALLET_NUM = Number(retrieveEnvVariable('DISTRIBUTE_WALLET_NUM', logger))
// export const CHECK_BAL_INTERVAL = Number(retrieveEnvVariable('CHECK_BAL_INTERVAL', logger))

export const WALLET_NUM = Number(retrieveEnvVariable('WALLET_NUM', logger))

export const TX_FEE = Number(retrieveEnvVariable('TX_FEE', logger))

export const TOKEN_MINT = retrieveEnvVariable('TOKEN_MINT', logger)
export const POOL_ID = retrieveEnvVariable('POOL_ID', logger)

export const LOG_LEVEL = retrieveEnvVariable('LOG_LEVEL', logger)

export const ADDITIONAL_FEE = Number(retrieveEnvVariable('ADDITIONAL_FEE', logger))
// export const JITO_KEY = retrieveEnvVariable('JITO_KEY', logger)
// export const BLOCKENGINE_URL = retrieveEnvVariable('BLOCKENGINE_URL', logger)
// export const JITO_FEE = Number(retrieveEnvVariable('JITO_FEE', logger))


1 change: 1 addition & 0 deletions constants/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from './constants';
1 change: 1 addition & 0 deletions dist.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
npm start
Loading

0 comments on commit 242338e

Please sign in to comment.