Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/plzbugmenot/solana_pumpfun_website_portfolio
The Solana Pumpfun Sniper Bot is an automated trading tool designed for the Solana blockchain. It specializes in real-time monitoring of newly launched tokens on Pumpfun, executing buy and sell orders based on user-defined settings.
https://github.com/plzbugmenot/solana_pumpfun_website_portfolio
pumpfun-dev-sniper rpc sniper-solana-bot solana solanaweb3 typescript
Last synced: 5 days ago
JSON representation
The Solana Pumpfun Sniper Bot is an automated trading tool designed for the Solana blockchain. It specializes in real-time monitoring of newly launched tokens on Pumpfun, executing buy and sell orders based on user-defined settings.
- Host: GitHub
- URL: https://github.com/plzbugmenot/solana_pumpfun_website_portfolio
- Owner: plzbugmenot
- Created: 2025-01-29T18:47:24.000Z (6 days ago)
- Default Branch: master
- Last Pushed: 2025-01-30T09:34:24.000Z (5 days ago)
- Last Synced: 2025-01-30T10:29:35.534Z (5 days ago)
- Topics: pumpfun-dev-sniper, rpc, sniper-solana-bot, solana, solanaweb3, typescript
- Homepage: https://t.me/plzbugmenot
- Size: 1000 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Solana Pumpfun Sniper Bot
## Main Features
- Real-Time Monitoring: Tracks newly launched tokens on Pumpfun.
- Automated Trading: Executes buy and sell orders based on user-defined settings.
- Blockchain Interaction: Utilizes the Solana RPC API for seamless blockchain transactions.
- User Alerts: Sends notifications for all transactions and important events.
- Comprehensive Logs: Maintains detailed records of all trading activity for user review.## Tech stack
- Typescript
- Node.js
- Mongodb
- Email Verification
- Solana/web3
- Pumpfun API
- DexScreener API
- Jupiter API# API Endpoints
API prefix: `/api/{apiversion}`
## Auth
- GET `/auth/sendcode`
```js
request:
{
email: "[email protected]",
}
response: 200
{
message: "Code sent successfully",
timestamp: number,
}
response: 500
{
message: "Login failed",
error: "This is error message",
}
```- POST `/auth/login`
```js
request:
{
email: "[email protected]",
otp: string,
}
response: 200
{
message: "Login successful",
token: string,
walletAddress: string,
email: "[email protected]",
}
response: 400
{
message: "OTP has expired" | "Invalid OTP" | "No OTP found for this email"
},
response: 500
{
message: "Login failed",
error: "This is error message",
}
```- POST `/auth/logout`
```js
response: 200
{
message: "Logged out successfully",
timestamp: number,
}
response: 500
{
message: "Logout failed",
error: "This is error message",
}
```## Dashboard
- GET `/token/:time/`
```js
response: 200
{
data: pumpfunTokenData[],
total: 100,
offset: 0,
limit: 10,
}
```## Setting
- GET `/setting/main`
- POST `/setting/main````js
request: {
isRunning: boolean;
workingHours: {
start: string;
end: string;
enabled: boolean;
}
isSniping: boolean;
}
```- GET `/setting/buy`
- POST `/setting/buy````js
request: {
age: {
value: number;
enabled: boolean;
}
marketCap: {
min: number;
max: number;
enabled: boolean;
}
maxDevBuyAmount: {
value: number;
enabled: boolean;
}
maxDevHoldingAmount: {
value: number;
enabled: boolean;
}
holders: {
value: number;
enabled: boolean;
}
lastMinuteTxns: {
value: number;
enabled: boolean;
}
lastHourVolume: {
value: number;
enabled: boolean;
}
maxGasPrice: number;
slippage: number;
jitoTipAmount: number;
investmentPerToken: number;
}
```- GET `/setting/sell`
- POST `/setting/sell````js
request: {
saleRules: [
{
percent: number;
revenue: number;
}
];
lossExitPercent: number;
}
```## Assets
- GET `/assets/`
```js
{
calcTable: {
currentBalance: number,
totalProfit: number,
realProfit: number,
unRealProfit: number,
totalInvested: number,
totalTickers: number,
successTickers: number,
totalFeePaid: number,
currentPercent: number,
},
data: [
{
mint: string;
tokenName: string;
tokenSymbol: string;
tokenImage: string;
tokenCreateTime: number;
investedAmount: number;
investedPrice_usd: number;
investedMC_usd: number;
investedAmount_usd: number;
currentAmount: number;
currentPrice_usd: number;
currentMC_usd: number;
fdv: number;
pnl: {
profit_usd: number;
percent: number;
};
holding: {
value_usd: number;
};
sellingStep: number;
realisedProfit: number;
unRealizedProfit: number;
totalFee: number;
}
],
total: number,
offset: number,
limit: number,
}
```- GET `/assets/wallet`
```js
{
walletBal: number,
solPrice: number,
}
```- POST `/assets/selltoken`
```js
request:
{
mint: string,
}
```- GET `/assets/:mint`
```js
{
success: boolean,
data: {
tokenData: {
mint: string,
tokenName: string,
tokenSymbol: string,
tokenImage: string,
tokenCreateTime: number,
investedAmount: number,
investedPrice_usd: number,
investedMC_usd: number,
investedAmount_usd: number,
currentAmount: number,
currentPrice_usd: number,
currentMC_usd: number,
fdv: number,
pnl: {
profit_usd: number,
percent: number,
},
holding: {
value_usd: number,
},
sellingStep: number,
realisedProfit: number,
unRealizedProfit: number,
totalFee: number,
},
txData: [
{
txHash: string;
mint: string;
txTime: number;
tokenName: string;
tokenSymbol: string;
tokenImage: string;
swap: "BUY" | "SELL";
swapPrice_usd: number;
swapAmount: number;
swapSolAmount: number;
swapFee_usd: number;
swapMC_usd: number;
swapProfit_usd: number;
swapProfitPercent_usd: number;
date: number;
}
]
},
}
```## Transactions
- GET `/transactions/`
```js
{
total: number,
offset: number,
limit: number,
sortField: string,
sortOrder: "asc" | "desc",
data: [
{
txHash: string,
mint: string,
txTime: number,
tokenName: number,
tokenSymbol: number,
tokenImage: number,
swap: "BUY" | "SELL",
swapPrice_usd: number,
swapAmount: number,
swapFee_usd: number,
swapMC_usd: number,
currentMC_usd: number,
swapProfit_usd: number,
swapProfitPercent_usd: number,
date: number,
}
],
}
```- GET `/transactions/getall`
```js
response: (200)[
{
txHash: string,
mint: string,
txTime: number,
tokenName: number,
tokenSymbol: number,
tokenImage: number,
swap: "BUY" | "SELL",
swapPrice_usd: number,
swapAmount: number,
swapFee_usd: number,
swapMC_usd: number,
currentMC_usd: number,
swapProfit_usd: number,
swapProfitPercent_usd: number,
date: number,
}
];
```- GET `/transactions/new-alerts`
```js
[
{
imageUrl: string;
title: string;
content: string;
link: string;
time: number;
isRead: boolean;
}
]
```- POST `/transactions/mark-read`
```js
request: {
id: id;
}
```- POST `/transactions/mark-all-read`
```js
{
success: boolean,
modifiedCount: number
}
```## Logs
- GET `/logs/all`
```js
{
logs: string[],
}
```- GET `/logs/info`
```js
response: 200
{
msg: "Current Bot Status",
isSniping: boolean,
isRunning: boolean,
isWorkingTime: boolean,
workingHours: string,
}
```- GET `/logs/remove`
```js
response: 200;
{
message: "Logs removed successfully";
}
```## Version 1.0, 29/1/2025
## Contact Info
- [Telegram](https://t.me/plzbugmenot)
- [github](https://github.com/plzbugmenot)