-
Trading any token using Jupiter API & Raydium swap function
-
Create your own Solana SPL tokens on mainnet | Pump.fun
-
Create your own zk-compressed token in your own zk-testnet
-
Performing LP transactions On Raydium, Orca and Meteora
-
Predefined Jito tips and Priority fee
-
Volume Booster by bundling buy and sell in one transaction!
-
Fastest Copy Trade Program
-
Pump.fun sdk Integration
-
Got everything needed for any developer to create their own trading bot
- https://github.com/outsmartchad/raydium-sdk-V1-demo
- https://github.com/rckprtr/pumpdotfun-sdk
- https://github.com/Al366io/solana-transactions-wrapper
.solana-memecoin-cli
βββ data
| βββ Image_file # store image file (jpeg, jpg,...)
| βββ metadata_file # store .json file about the token metadata
| βββ payer_keypair # store wallet keypair .json
| βββ token_keypair # store token keypair .json
βββ examples (Screenshots of Commands) # all screenshot to show how we use the command line tool
| βββ add_liquidity # see how to add liquidity to a pool on Raydium
| βββ burn_token # see how to burn a token with WSOL using Raydium swap
| βββ create_token # see how to create a SPL token on mainnet or devnet
| βββ buy_token # buy a token using raydium with both jito bundles and priority fees
| βββ create_token # create a token with 0% extra fees on solana (mainnet or devnet)
| βββ remove_liquidity # remove some liquidity from a pool on Raydium
| βββ boost_volume # boost the volume of a token on raydium
| βββ pump_createAndInitialBuy # create and initial buy token on pump.fun
| βββ pump_buy # buy token on pump.fun
| βββ pump_sell # sell token on pump.fun
| βββ sell_token # sell the token with a percentage using Raydium swap
βββ src
| βββ helpers
| | βββ .env.copy # .env file to store your keys, rmb change to .env
| | βββ check_balance
| | βββ config.js # get value from .env
| | βββ util.js # useful functions
| βββ Pool # Only Supporting Raydium right now
| | βββ add_pool.js # adding liquidity to AMM pool on Raydium
| | βββ create_pool.js # create pool/create open book market on Raydium (not done)
| | βββ check_pool.js # check the pool's info (pool size, burn percentage of LP token...)
| | βββ formatAmmKeysById.js # get well-informated info of pool
| | βββ query_pool.js # query the pool's current info (not done)_
| | βββ remove_pool.js # remove liquidity from AMM pool on Raydium
| | βββ swap.js # swap on Raydium
| βββ pumpfunsdk
| | βββ pump-keypair # store your new generated token keypair
| | βββ pumpdotfun-sdk
| | | βββ example
| | | βββ images # store your token image
| | | βββ src
| | | | βββ IDL
| | | | βββ pump-events-listener
| | | | | βββ listener.js # listen to the create, trade, and complete bonding curve event
| | | | βββ amm.js
| | | | βββ createAndBuy.js # create token and initial buy it in pump.fun
| | | | βββ buy.js # buy token in pump.fun
| | | | βββ sell.js # sell token in pump.fun
| | | | βββ pumpfun.js # the implementation of pump.fun sdk
| | | | βββ util.js # useful functions
| | | | βββ tools.js # interact with pump.fun sdk
| βββ Token
| | βββ create.js # create token with uploading token image and metadata to irys (storage provider)
| | βββ burn.js # burn a percentage of token
| | βββ query.js # query token's info (creator, price, metadata, holder...) (not done)
| | βββ revoke_authority.js # revoke token's freeze and mint authority
| βββ Trading
| | βββ dex
| | | βββ jupiter
| | | | βββ swap
| | | | | βββ buy-helper.js # buy token with sol using jup swap api
| | | | | βββ sell-helper.js # sell token to sol using jup swap api
| | | | | βββ swap-helper.js # swap any to any token using jup swap api
| | | | βββ dca.js # create a dollar cost average program using jup api
| | | | βββ limit_order.js # create a limit order program using jup api
| | | βββ meteora
| | | βββ orca
| | | βββ raydium
| | | βββ buy-helper.js # buy token with WSOL using src\Pool\swap.js
| | | βββ buy.js
| | | βββ sell-helper.js # sell token to WSOL using src\Pool\swap.js
| | | βββ sell.js
| | βββ volume
| | | βββ boost-volume.js # boosting token's volume
| | | # by doing one buy and one sell instruction in one transaction
| | | # [buy(), sell()] (only losing your gas fee)
| | βββ memecoin-trading-strategies
| | βββ copy_trading
| | | βββ copy-buy.js # copy trader's buy tx
| | | βββ copy-sell.js # copy trader's sell tx
| | | βββ copy-trade.js # Use two core to both copy-buy and copy-sell
| | βββ Filters
| | βββ take-profit.js # taking profits by setting a limit order
| | βββ stop-loss.js # stop loss by setting a limit order
| βββ Transactions
| βββ jito-tips-tx-executor.js # sending bundles(list of instructions) to Jito validators
| # validators help our tx land faster
| βββ simple-tx-executor.js # submitting ur tx to RPC provider with predefined priority fees
| βββ bloXroute-tips-tx-executor.js
βββ help.js
git clone https://github.com/ManofDiligence/solana-memecoin-cli.git
cd solana-memecoin-cli
nvm install v22.2.0
nvm use v22.2.0
npm install
node help.js
οΌto see commands or read cli_doc.txt file)- also see the command examples in examples/
- we have added a .env.copy file in src/helpers/.env.copy for you to follow and paste your keys to the code (specify the custom jito fee if you need).
- Add your mainnet wallet secret key, devnet wallet secret key (optional), RPC endpoint(must) and shyft api key(must)
- rename the .env.copy file to .env
- Create a new SPL token or zk-compressed token (on SOL mainnet/devnet/zk-devnet) and it will automatically mint to your wallet
- Integrates both user-defined priority fee and jito tips that land transactions faster
- Burn a percentage of a token
- Revoke mint and freeze authority of a token
- boost volume of a token by creating buy and sell orders in just one transaction
- Add or Remove liquidity to a pool
- Swap tokens in a raydium dex's AMM pool and JUP Swap API
- Buy or sell a token using SOL using raydium and JUP
- Buy, Sell, and launch token in pump.fun
- Check the balance of a token in your wallet
- monitor real-time pump-fun's create, trade, and complete bonding curve events
- Optimized Copy Trading Program with auto-buy&sell
- With user-defined Jito tips and priority Lamports supported for every command
- A Website for anyone to do these thing with their browser-based wallet
- More dexes support, (Orca, Meteora, etc.)
- More Profitable functions for Trading dev
- Phantom wallet integration
- more features to come...
payer options is by default use the private key in .env file, but you can also specify the path to the secret key if you want to use another wallet
- Specify the token symbol, name, mint keypair(optional, will help u to generate), supply, decimals, path to metadata json file, path to image file, the cluster you want to use, and the file type(png, jpg, jpeg).
node create --payer <PATH_TO_SECRET_KEY> --symbol <TOKEN_SYMBOL> --token_name <TOKEN_NAME> --mint <PATH_TO_MINT_KEYPAIR> --supply <SUPPLY_OF_TOKEN> --decimals <DECIMALS> --metadata <PATH_METADATA_JSON> --image <PATH_TO_IMAGE> --cluster <CLUSTER> --priority-fee <PRIORITY_FEE> --file_type <FILE_TYPE>
- Specify the token address, the percentage of the token you want to burn and the cluster you want to use.
node burn --payer <PATH_TO_SECRET_KEY> --token_address <ADDRESS_TOKEN> --percentage <BURN_PERCENTAGE> --cluster <CLUSTER>
- Specify the token address and the cluster you want to use.
node revoke_authority --payer <PATH_TO_SECRET_KEY> --mint_address <ADDRESS_TOKEN> --cluster <CLUSTER> --mint --freeze
- Specify the token address you want to query and the cluster for boosting the volume of the token.
node boost_volume --token_address <TOKEN_ADDRESS> --payer <PATH_TO_SECRET_KEY> --cluster <CLUSTER> --sol_per_order <SOL_PER_ORDER>
- Specify the token address, the amount of Sol you want to swap, and the cluster you want to use.
node buy --payer <PATH_TO_SECRET_KEY> --token_address <ADDRESS_TOKEN> --sol <NUMBER_OF_SOL> --cluster <CLUSTER>
- Specify the token address, the percentage of the token you want to sell, and the cluster you want to use.
node sell --payer <PATH_TO_SECRET_KEY> --token_address <ADDRESS_TOKEN> --percentage <SELL_PERCENTAGE> --cluster <CLUSTER>
- Specify the token address, the pool id(optional, will help to find the pool with the most liquidity using the given token address), the amount of Sol you want to add, and the cluster you want to use.
node add_pool --payer <PATH_WALLET> --token_address <ADDRESS_TOKEN> --pool_id <POOL_ID> --sol <NUMBER_OF_SOL> --cluster <CLUSTER> --priority_fee <PRIORITY_FEE>
- Specify the token address, the percentage of the LP token you want to remove(1=1%), and the cluster you want to use.
node remove_pool --payer <PATH_PAYER> --token_address <TOKEN_ADDRESS> --percentage <LP_TOKEN_PERCENTAGE> --cluster <CLUSTER>
- Specify the path to your mint keypair, the amount of Sol you want to buy, the name of the token, the symbol of the token, the description of the token, the telegram link, the twitter link, the website link, and the image file path.
node createAndBuy --pathToMintKeypair <PATH_TO_MINT_KEYPAIR> --sol <NUMBER_OF_SOL> --name <TOKEN_NAME> --symbol <TOKEN_SYMBOL> --description <TOKEN_DESCRIPTION> --telegram <TELEGRAM_LINK> --twitter <TWITTER_LINK> --website <WEBSITE_LINK> --file <IMAGE_FILE_PATH>
- Specify the token address, the sol you want to buy
node buy --token_address <ADDRESS_TOKEN> --sol <NUMBER_OF_SOL>
- Specify the token address, the percentage of the token you want to sell
node sell --token_address <ADDRESS_TOKEN> --percentage <SELL_PERCENTAGE>
-
src/Token/create.js: create a spl token on devnet or mainnet with a given name, symbol, token image(using irys decentralized storage), metadata json file, supply, decimals, the code by default revokes the mint authority and freeze authority after creating the token so that the token has a cap and no one can feeze the token of the token holder, it will then mint all the token to your wallet
-
src/Token/burn.js: burn spl token with a given percentage of the token from your wallet
-
src/Token/revoke_authority.js: revoke mint and freeze authority of a given token
-
src/Trading/dex/raydium/sell.js: selling spl token for SOL in your wallet using raydium dex swap function
-
src/Trading/dex/raydium/buy.js: buying spl token using SOL in your wallet using raydium dex swap function
-
src/Trading/volume/boost_volume.js: boost the volume of a token by creating a buy and sell order in just one transaction in a way to avoid possible MEV
-
src/Trading/memecoin_trading_strategies/copy-trading/copy-trade.js: copy trading program to follow a user-defined wallet address to auto-buy&sell
-
src/Transactions/jito_tips_tx_executor.js: execute the transaction by sending the bundles to Jito validators, they help us to land the transaction to the Solana blockchain faster than just using priority fee.
-
src/Transactions/simple_tx_executor.js: execute the transaction by sending the request to the Solana blockchain with a given priority gas fee.
-
src/Pool/add_pool.js: add liquidity to a pool in a given token address, the code find the most liquid pool (TOKEN_ADDRESS/SOL) in the raydium dex and add liquidity to it. You need to specify the amount of liquidity(sol) you want to add.
-
src/Pool/remove_pool.js: remove liquidity from a pool in a given token address, the code find the most liquid pool (TOKEN_ADDRESS/SOL) in the raydium dex and remove liquidity from it. You need to specify the amount of percentage of liquidity you want to remove.
-
src/Pool/swap.js: swap token for another token in the raydium dex, src/Trading/dex/raydium/buy.js and src/Trading/dex/raydium/sell.js are based on this code.
-
src/Pool/query_pool.js: query the pool information of a given pool address in the raydium dex, it use shyft api to get the pool information. Please make sure you have your shyft api key inside the code before running this code.
-
src/helpers/config.js: configuration file for the code.
-
src/helpers/util.js: utility functions for the code, including: send transactions to Solana blockchain, dropped transactions handling, etc.
-
src/helpers/check_balance.js: check the balance of a given token in your wallet
- 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
git stash -u # Stash your changes
git pull --rebase # Pull the latest changes
git stash pop # Apply Your stashed changes