Sniper bots en DEX (Solana, BSC, Base): búsqueda de tokens recién listados o preventas con alta volatilidad, entrada y salida rápidas.
Yo diría que esa es la mejor opción, y crear el bot no es complejo del todo:
# Versión mejorada del sniper bot en Solana con:
# Filtro de liquidez y volumen mínimos
# Simulación de venta (honeypot check)
# Solo tokens "vendibles"
# Requiere: solana-py, requests
# Instalación: pip install solana requests
from solana.rpc.api import Client
from solana.keypair import Keypair
from solana.rpc.types import TxOpts
from solana.transaction import Transaction
from solana.rpc.commitment import Confirmed
from base64 import b64decode
import requests
import time
# === CONFIGURACIÓN ===
RPC_URL = "https://api.mainnet-beta.solana.com"
WALLET_SECRET_KEY = [
155,234,12,78,165,103,27,22,195,15,57,127,86,23,61,77,
201,103,234,124,72,14,9,33,88,254,12,9,87,164,23,112,
12,123,190,45,87,9,3,140,54,111,93,29,76,34,123,99,
250,87,34,12,9,234,198,77,13,65,43,122,87,11,99,2
]
BUY_AMOUNT_LAMPORTS = 1_000_000 # 0.001 SOL
SLIPPAGE_BPS = 100 # 1%
MIN_LIQUIDITY_USD = 5000
MIN_VOLUME_USD = 500
# === INICIALIZAR CONEXIÓN ===
client = Client(RPC_URL)
keypair = Keypair.from_secret_key(bytes(WALLET_SECRET_KEY))
wallet = keypair.public_key
print(f"✅ Wallet conectada: {wallet}")
# === DETECTAR TOKENS NUEVOS CON FILTROS ===
def get_filtered_solana_pairs():
url = "https://api.dexscreener.com/latest/dex/pairs/solana"
try:
res = requests.get(url)
data = res.json()
filtered = []
for pair in data['pairs']:
liq = float(pair.get('liquidity', {}).get('usd', 0))
vol = float(pair.get('volume', {}).get('h24', 0))
if pair.get('newListing') and liq > MIN_LIQUIDITY_USD and vol > MIN_VOLUME_USD:
filtered.append(pair)
return filtered
except Exception as e:
print("Error al obtener tokens:", e)
return []
# === SIMULADOR DE VENTA (Honeypot check) ===
def simulate_sell_via_jupiter(input_mint: str):
url = "https://quote-api.jup.ag/v6/quote"
params = {
"inputMint": input_mint,
"outputMint": "So11111111111111111111111111111111111111112", # SOL
"amount": 1000000,
"slippageBps": 300,
}
try:
r = requests.get(url, params=params)
data = r.json()
out_amount = int(data.get("outAmount", 0))
return out_amount > 0
except:
return False
# === COMPRAR CON JUPITER ===
def buy_token_via_jupiter(output_mint: str):
url = "https://quote-api.jup.ag/v6/swap"
params = {
"inputMint": "So11111111111111111111111111111111111111112",
"outputMint": output_mint,
"amount": BUY_AMOUNT_LAMPORTS,
"slippageBps": SLIPPAGE_BPS,
"userPublicKey": str(wallet),
}
response = requests.get(url, params=params)
if response.status_code != 200:
print("❌ Error al obtener ruta de swap.")
return
tx_data = response.json()
swap_tx = tx_data.get("swapTransaction")
if not swap_tx:
print("❌ Transacción no encontrada.")
return
# Firmar y enviar la transacción
decoded_tx = b64decode(swap_tx)
tx = Transaction.deserialize(decoded_tx)
tx.sign(keypair)
tx_sig = client.send_transaction(tx, keypair, opts=TxOpts(skip_confirmation=False, preflight_commitment=Confirmed))
print(f"✅ Compra enviada: {tx_sig['result']}")
# === LOOP PRINCIPAL CON FILTROS Y HONEYPOT CHECK ===
def main_loop():
vistos = set()
while True:
tokens = get_filtered_solana_pairs()
for token in tokens:
mint = token['baseToken']['address']
if mint in vistos:
continue
vistos.add(mint)
nombre = token['baseToken']['name']
print(f"🔍 Token potencial: {nombre} ({mint})")
# Check honeypot
if simulate_sell_via_jupiter(mint):
print(f"✅ Honeypot check pasado, comprando {nombre}")
buy_token_via_jupiter(mint)
time.sleep(5)
else:
print(f"❌ {nombre} parece ser honeypot, saltando.")
time.sleep(30)
# === EJECUTAR ===
main_loop()
Por lo que he leido, de las cuatro opciones que ofreces y con ese capital, esta es la que ofrece mejores rendimientos. Hablamos de entre un 5-30% al día.