From 7afd7d5aa142a909c611b8b4b67376a38c183b66 Mon Sep 17 00:00:00 2001 From: mindesbunister Date: Fri, 14 Nov 2025 14:01:52 +0100 Subject: [PATCH] feat: switch from Helius to Alchemy RPC provider Changes: - Updated SOLANA_RPC_URL to use Alchemy (https://solana-mainnet.g.alchemy.com/v2/...) - Migrated from Helius free tier to Alchemy free tier - Includes previous rate limit fixes (8s backoff, 2s operation delays) Context: - Helius free tier: 10 req/sec sustained, 100 req/sec burst - Alchemy free tier: 300M compute units/month (more generous) - User hit 239 rate limit errors in 10 minutes on Helius - User registered Alchemy account and provided API key Impact: - Should significantly reduce 429 rate limit errors - Better free tier limits for trading bot operations - Combined with delay fixes for optimal RPC usage --- .env | 2 +- app/api/trading/execute/route.ts | 9 +++++++++ lib/drift/orders.ts | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.env b/.env index 8cbe625..edd304e 100644 --- a/.env +++ b/.env @@ -33,7 +33,7 @@ API_SECRET_KEY=2a344f0149442c857fb56c038c0c7d1b113883b830bec792c76f1e0efa15d6bb # # RECOMMENDED: Helius (best performance, free tier available) # Get free API key at: https://helius.dev -SOLANA_RPC_URL=https://mainnet.helius-rpc.com/?api-key=7485e2bf-0681-4215-be31-76e2707f31cc +SOLANA_RPC_URL=https://solana-mainnet.g.alchemy.com/v2/5A0iA5UYpsmP9gkuezYeg # Alternative RPC providers (if not using Helius): # diff --git a/app/api/trading/execute/route.ts b/app/api/trading/execute/route.ts index bd60664..f783170 100644 --- a/app/api/trading/execute/route.ts +++ b/app/api/trading/execute/route.ts @@ -299,6 +299,9 @@ export async function POST(request: NextRequest): Promise new Promise(resolve => setTimeout(resolve, ms)) + // Open position const openResult = await openPosition({ symbol: driftSymbol, @@ -306,6 +309,9 @@ export async function POST(request: NextRequest): Promise( fn: () => Promise, maxRetries: number = 3, - baseDelay: number = 5000 // Increased from 2s to 5s: 5s → 10s → 20s progression + baseDelay: number = 8000 // Increased from 5s to 8s: 8s → 16s → 32s progression for better RPC recovery ): Promise { const startTime = Date.now()