✅ Key fixes: - Bypass problematic SDK subscription that caused 410 Gone errors - Use direct account verification without subscription - Add fallback modes for better reliability - Switch to Helius RPC endpoint for better rate limits - Implement proper error handling and retry logic 🔧 Technical changes: - Enhanced drift-trading.ts with no-subscription approach - Added Drift API endpoints (/api/drift/login, /balance, /positions) - Created DriftAccountStatus and DriftTradingPanel components - Updated Dashboard.tsx to show Drift account status - Added comprehensive test scripts for debugging 📊 Results: - Connection Status: Connected ✅ - Account verification: Working ✅ - Balance retrieval: Working ✅ (21.94 total collateral) - Private key authentication: Working ✅ - User account: 3dG7wayp7b9NBMo92D2qL2sy1curSC4TTmskFpaGDrtA 🌐 RPC improvements: - Using Helius RPC for better reliability - Added fallback RPC options in .env - Eliminated rate limiting issues
157 lines
3.9 KiB
Markdown
157 lines
3.9 KiB
Markdown
# Drift Trading Integration
|
|
|
|
This document explains how to use the Drift trading functionality in the Trading Bot v3.
|
|
|
|
## Overview
|
|
|
|
The application now includes integration with Drift Protocol, a decentralized perpetual futures exchange on Solana. This allows you to:
|
|
|
|
- Connect to your Drift account using your Solana private key
|
|
- View real-time account balance and collateral information
|
|
- Monitor open positions with live P&L calculations
|
|
- Execute trades directly through the interface
|
|
|
|
## Setup
|
|
|
|
### 1. Environment Variables
|
|
|
|
Make sure you have the following environment variables configured in your `.env` file:
|
|
|
|
```bash
|
|
# Solana/Drift Trading
|
|
SOLANA_RPC_URL=https://api.mainnet-beta.solana.com
|
|
SOLANA_PRIVATE_KEY=[your_solana_private_key_array]
|
|
```
|
|
|
|
The `SOLANA_PRIVATE_KEY` should be your Solana wallet private key as a JSON array of numbers (not base58 string).
|
|
|
|
### 2. Drift Account Initialization
|
|
|
|
Before you can trade, you need to have a Drift account initialized. If you don't have one:
|
|
|
|
1. Visit [https://app.drift.trade](https://app.drift.trade)
|
|
2. Connect your Solana wallet
|
|
3. Initialize your account by depositing some USDC collateral
|
|
|
|
## Features
|
|
|
|
### Account Status Panel
|
|
|
|
The **Drift Account Status** panel shows:
|
|
|
|
- **Connection Status**: Whether your wallet is connected to Drift
|
|
- **Wallet Address**: Your Solana public key (truncated for security)
|
|
- **User Account**: Whether your Drift account is initialized
|
|
- **Account Balance**: Real-time collateral and margin information
|
|
- **Open Positions**: All active positions with live P&L
|
|
|
|
### Trading Panel
|
|
|
|
The **Drift Trading** panel allows you to:
|
|
|
|
- **Select Symbol**: Choose from 20+ available markets (SOL, BTC, ETH, etc.)
|
|
- **Choose Side**: Buy (LONG) or Sell (SHORT)
|
|
- **Order Type**: Market or Limit orders
|
|
- **Set Amount**: Trade size in USD
|
|
- **Set Price**: For limit orders only
|
|
|
|
### Supported Markets
|
|
|
|
The following markets are currently supported:
|
|
|
|
- SOLUSD, BTCUSD, ETHUSD
|
|
- DOTUSD, AVAXUSD, ADAUSD
|
|
- MATICUSD, LINKUSD, ATOMUSD
|
|
- NEARUSD, APTUSD, ORBSUSD
|
|
- RNDUSD, WIFUSD, JUPUSD
|
|
- TNSUSD, DOGEUSD, PEPE1KUSD
|
|
- POPCATUSD, BOMERUSD
|
|
|
|
## API Endpoints
|
|
|
|
### Login/Authentication
|
|
```
|
|
POST /api/drift/login
|
|
```
|
|
Authenticates your wallet and checks Drift account status.
|
|
|
|
### Account Balance
|
|
```
|
|
GET /api/drift/balance
|
|
```
|
|
Returns account collateral, margin, and leverage information.
|
|
|
|
### Positions
|
|
```
|
|
GET /api/drift/positions
|
|
```
|
|
Returns all open positions with real-time P&L.
|
|
|
|
### Execute Trade
|
|
```
|
|
POST /api/trading
|
|
```
|
|
Executes a trade through Drift Protocol.
|
|
|
|
**Request Body:**
|
|
```json
|
|
{
|
|
"symbol": "SOLUSD",
|
|
"side": "BUY",
|
|
"amount": 100,
|
|
"orderType": "MARKET",
|
|
"price": 45.50
|
|
}
|
|
```
|
|
|
|
## Testing
|
|
|
|
You can test the Drift integration using the provided test script:
|
|
|
|
```bash
|
|
./test-drift-trading.js
|
|
```
|
|
|
|
This will test:
|
|
1. Login/authentication
|
|
2. Account balance retrieval
|
|
3. Position fetching
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
1. **"User account does not exist"**
|
|
- You need to initialize your Drift account first
|
|
- Visit app.drift.trade and deposit some USDC
|
|
|
|
2. **"Failed to login"**
|
|
- Check your SOLANA_PRIVATE_KEY is correctly formatted
|
|
- Ensure you have sufficient SOL for transaction fees
|
|
- Verify your RPC endpoint is working
|
|
|
|
3. **"Insufficient collateral"**
|
|
- Deposit more USDC to your Drift account
|
|
- Reduce your trade size
|
|
|
|
### Network Issues
|
|
|
|
If you experience connection issues:
|
|
- Try switching to a different Solana RPC endpoint
|
|
- Check if Drift Protocol is experiencing downtime
|
|
- Ensure your internet connection is stable
|
|
|
|
## Security Notes
|
|
|
|
- Never share your private key
|
|
- The private key is stored securely in environment variables
|
|
- All transactions require your wallet signature
|
|
- The interface only shows truncated public keys
|
|
|
|
## Support
|
|
|
|
For issues with:
|
|
- **Drift Protocol**: Visit [https://docs.drift.trade](https://docs.drift.trade)
|
|
- **This Integration**: Check the console logs and error messages
|
|
- **Solana Network**: Check [https://status.solana.com](https://status.solana.com)
|