Real Trading
This guide covers setting up claudefi for live trading with real funds.
Warning
Real trading involves financial risk. Before enabling:
- Thoroughly test with paper trading
- Start with small amounts
- Monitor closely
- Understand all risk controls
- Only risk what you can afford to lose
Prerequisites
Paper Trading Validation
Before going live, validate with paper trading:
- [ ] Run for at least 1 week (336 cycles)
- [ ] Review decision quality and skill effectiveness
- [ ] Verify hooks are working correctly
- [ ] Check for any errors or unexpected behavior
Wallet Setup
Solana Wallet (DLMM, Spot)
# Generate or import a Solana wallet
solana-keygen new --outfile ~/.config/solana/claudefi.json
# Get the public key
solana-keygen pubkey ~/.config/solana/claudefi.json
# Fund the wallet with SOL and USDCExport private key for claudefi:
# Convert to base58 for .env
cat ~/.config/solana/claudefi.json | node -e "
const data = require('fs').readFileSync(0, 'utf-8');
const key = JSON.parse(data);
const bs58 = require('bs58');
console.log(bs58.encode(Buffer.from(key)));
"Hyperliquid Wallet (Perps)
# Generate or use existing EVM wallet
# Get private key with 0x prefixFund via Hyperliquid deposit:
- Go to https://app.hyperliquid.xyz
- Deposit USDC from Arbitrum
Polymarket Wallet (Predictions)
# Use EVM wallet on Polygon
# Need MATIC for gas and USDC for tradingConfiguration
Environment Variables
# Enable real trading
TRADING_MODE=mainnet
# Solana
SOLANA_MAINNET_RPC=https://mainnet.helius-rpc.com/?api-key=YOUR_KEY
SOLANA_PRIVATE_KEY=your_base58_private_key
# Hyperliquid
HYPERLIQUID_PRIVATE_KEY=0xyour_hex_private_key
# Polymarket
POLYMARKET_PRIVATE_KEY=0xyour_hex_private_keyRisk Parameters
Start conservative:
# Reduce position sizes
MAX_POSITION_PCT=0.10 # 10% max (vs 20% paper)
# Lower drawdown limits
MAX_DRAWDOWN=0.10 # 10% global (vs 15% paper)
DOMAIN_MAX_DRAWDOWN=0.15 # 15% domain (vs 20% paper)
# Require higher confidence
CONFIDENCE_THRESHOLD=0.70 # 70% (vs 60% paper)
# Require approval for all trades
HUMAN_APPROVAL_THRESHOLD=100 # $100+ needs approvalTestnet First
Before mainnet, test on testnets:
Solana Devnet
TRADING_MODE=testnet
SOLANA_DEVNET_RPC=https://api.devnet.solana.comFund with devnet SOL:
solana airdrop 5 YOUR_ADDRESS --url devnetHyperliquid Testnet
# Uses testnet automatically when TRADING_MODE=testnetAccess: https://app.hyperliquid-testnet.xyz
Gradual Rollout
Phase 1: Single Domain
Start with one domain:
ACTIVE_DOMAINS=dlmmMonitor for 1 week before adding more.
Phase 2: Add Domains
Gradually add domains:
ACTIVE_DOMAINS=dlmm,spot
# Then after validation:
ACTIVE_DOMAINS=dlmm,spot,perps
# Finally:
ACTIVE_DOMAINS=dlmm,spot,perps,polymarketPhase 3: Scale Up
Gradually increase sizes:
# Week 1
MAX_POSITION_PCT=0.05 # 5%
# Week 2
MAX_POSITION_PCT=0.10 # 10%
# Week 3+
MAX_POSITION_PCT=0.15 # 15%Monitoring
Real-Time Alerts
Configure Telegram for immediate alerts:
TELEGRAM_BOT_TOKEN=your_bot_token
TELEGRAM_CHAT_ID=your_chat_idYou'll receive:
- Trade executions
- Error notifications
- Drawdown warnings
- Position updates
Dashboard
Use Prisma Studio for real-time monitoring:
npm run db:studioExternal Monitoring
Monitor wallet balances directly:
- Solana: https://solscan.io/account/YOUR_ADDRESS
- Hyperliquid: https://app.hyperliquid.xyz/portfolio
- Polymarket: Check positions in UI
Emergency Procedures
Pause Trading
# Quick disable - set paper mode
TRADING_MODE=paper
# Or disable domains
ACTIVE_DOMAINS=Manual Position Exit
If claudefi can't exit positions:
DLMM: Use Meteora UI at https://app.meteora.agPerps: Use Hyperliquid UI at https://app.hyperliquid.xyzSpot: Use Jupiter UI at https://jup.agPolymarket: Use Polymarket UI at https://polymarket.com
Kill Switch
The human-approval hook can block all trades:
hookRegistry.register({
name: 'emergency-stop',
event: 'PreDecision',
priority: 1,
hook: async () => ({ proceed: false, reason: 'Emergency stop active' }),
});Transaction Tracking
All real transactions are logged:
// Transaction record
{
domain: 'perps',
action: 'open_long',
target: 'BTC',
txHash: '0x...', // On-chain transaction
status: 'confirmed',
gasUsed: 150000,
gasCost: 0.002,
}Query transaction history:
const txHistory = await prisma.transaction.findMany({
where: { domain: 'perps' },
orderBy: { timestamp: 'desc' },
take: 50,
});Cost Considerations
API Costs
| Service | Estimate |
|---|---|
| Claude API | ~$13/day |
| RPC endpoints | $0-50/mo |
| Data APIs | Usually free |
Transaction Costs
| Domain | Cost per Trade |
|---|---|
| DLMM | ~0.001 SOL (~$0.15) |
| Spot | ~0.001 SOL (~$0.15) |
| Perps | ~0.06% of size |
| Polymarket | ~0.01 MATIC (~$0.01) |
Checklist Before Going Live
- [ ] Paper traded for 1+ week
- [ ] Reviewed decision quality
- [ ] All wallets funded
- [ ] Private keys secured
- [ ] Risk parameters reduced
- [ ] Telegram alerts configured
- [ ] Emergency procedures documented
- [ ] Starting with single domain
- [ ] Human approval threshold low
- [ ] Monitoring dashboard ready
Related Documentation
- Paper Trading - Testing mode
- Risk Management - Risk controls
- Configuration - Full config reference