Introduction to Vexa
Vexa is a Smart Liquidity Automation Engine (SLAE) built natively for Solana. It monitors real-time liquidity events and automatically executes wallet actions based on your custom rules — combining liquidity intelligence, automated trading, and safety guard into one powerful execution brain.
Automated Execution
Turn liquidity events into instant wallet actions
Built-in Safety
Protect against rugs, honeypots, and risky pools
Real-time Intelligence
Monitor whales, pools, and market conditions
Non-Custodial by Design
Vexa never takes custody of your funds. All transactions are signed by your wallet. Your keys, your rules, your assets.
Quick Start
Get up and running with Vexa in under 5 minutes. Follow these steps to create your first automation rule.
Connect Your Wallet
Connect your Solana wallet (Phantom, Solflare, or Backpack) to the Vexa dashboard. Vexa uses wallet signatures for all actions — your private keys stay with you.
Set Up Monitoring
Choose which pools, tokens, or liquidity events to monitor. Vexa tracks Raydium, Orca, Phoenix, and more DEXs in real-time.
Create Your First Rule
Use the no-code Rule Builder to define IF/AND/THEN logic. For example: "IF Liquidity Out >30% THEN Withdraw LP".
Activate & Monitor
Enable your rule and watch it execute automatically. View all activity in the Liquidity Radar Dashboard.
Installation
Install the Vexa SDK to integrate automation capabilities directly into your applications.
Requirements
- Node.js 18.0 or higher
- Solana wallet with SOL for gas fees
- RPC endpoint (Helius, QuickNode, or custom)
Authentication
Vexa uses wallet-based authentication. All API calls must be signed with your wallet's private key.
import { VexaClient } from '@vexa/sdk';
import { Keypair } from '@solana/web3.js';
// Initialize with your wallet
const wallet = Keypair.fromSecretKey(yourSecretKey);
const vexa = new VexaClient({
wallet,
rpcUrl: 'https://api.mainnet-beta.solana.com',
// or use custom RPC
// rpcUrl: process.env.HELIUS_RPC_URL,
});
// Authenticate
await vexa.connect();
console.log('Connected:', vexa.publicKey.toBase58());Security Warning
Never expose your private keys in client-side code. Use environment variables and secure key management for production deployments.
SLAE Architecture
The Smart Liquidity Automation Engine (SLAE) is built on three core pillars that work together to deliver intelligent, automated DeFi execution.
1. Monitor Layer
Real-time monitoring of on-chain liquidity events across Solana DEXs. Tracks pool health, volume spikes, whale movements, and smart money flows.
2. Trigger Layer
Rule-based automation engine that evaluates conditions in real-time. Supports complex IF/AND/THEN logic with multiple condition chains.
3. Execute Layer
On-chain transaction execution with automatic gas optimization, RPC failover, and retry logic. All actions signed by your wallet.
Flow: Events are detected → Conditions are evaluated → Actions are queued → Transactions are executed and confirmed → Results are logged.
Liquidity Events
Vexa monitors a comprehensive set of liquidity events across Solana DEXs. These events can be used as triggers for your automation rules.
| Event Type | Description | Parameters |
|---|---|---|
LIQUIDITY_IN | New liquidity added to pool | amount, percentage, wallet |
LIQUIDITY_OUT | Liquidity removed from pool | amount, percentage, wallet |
VOLUME_SPIKE | Sudden increase in trading volume | multiplier, timeframe |
WHALE_MOVE | Large wallet activity detected | wallet, action, amount |
NEW_POOL | Fresh liquidity pool created | pool, tokens, initialLiquidity |
PRICE_CHANGE | Token price movement | percentage, direction, timeframe |
RISK_SCORE_CHANGE | Pool risk level updated | oldScore, newScore, reasons |
Triggers & Conditions
Triggers are the events that initiate your automation rules. Conditions are the criteria that must be met for the rule to execute.
Available Triggers
Liquidity Triggers
- • Liquidity added/removed
- • Liquidity percentage change
- • Pool TVL threshold crossed
- • New pool created
Price Triggers
- • Price increase/decrease %
- • Price crosses threshold
- • Price range breakout
- • All-time high/low reached
Volume Triggers
- • Volume spike detected
- • Volume crosses threshold
- • Unusual trading activity
- • Buy/sell ratio change
Wallet Triggers
- • Whale wallet activity
- • Smart money enters/exits
- • Developer wallet moves
- • Known scammer detected
Condition Operators
| Operator | Description | Example |
|---|---|---|
> | Greater than | amount > 10000 |
< | Less than | riskScore < 40 |
= | Equals | token = "SOL" |
between | In range | price between 100-200 |
contains | String includes | pool contains "SOL" |
Wallet Actions
Wallet actions are the on-chain operations that Vexa can execute on your behalf when rules are triggered. All actions require wallet signature and are fully transparent.
Swap Actions
Execute token swaps through Raydium, Orca, or Jupiter aggregator with customizable slippage.
Liquidity Actions
Manage your LP positions automatically — add, remove, or rebalance liquidity.
Transfer Actions
Move tokens between wallets — great for sending to cold storage or splitting profits.
Safety Actions
Protective actions that run when risk thresholds are crossed.
Rule Builder
Create powerful automation rules with the no-code Rule Builder. Combine multiple conditions and actions using intuitive IF/AND/THEN logic.
Example Rules
LP Protection Rule
Automatically protects your LP position when liquidity exits rapidly
Fresh Liquidity Sniper
Snipe promising new pools when smart money shows interest
Volume-Based Rebalance
Take profits automatically during high volatility
Programmatic Rule Creation
import { VexaClient, RuleBuilder } from '@vexa/sdk';
const rule = new RuleBuilder()
.name('LP Protection')
.when('LIQUIDITY_OUT')
.condition('percentage', '>', 30)
.and('PRICE_CHANGE')
.condition('percentage', '<', -5)
.then('WITHDRAW_LP')
.then('TRANSFER', { to: coldWalletAddress })
.cooldown(300) // 5 minutes
.build();
await vexa.rules.create(rule);
console.log('Rule created:', rule.id);IF/AND/THEN Logic
Vexa's rule engine uses a powerful IF/AND/THEN pattern that allows complex conditional logic while remaining intuitive to configure.
Primary Trigger
The initial event that starts the rule evaluation. Only one IF condition is allowed per rule.
IF LIQUIDITY_OUT percentage > 30Additional Conditions
Optional additional conditions that must also be true. You can chain up to 5 AND conditions.
AND PRICE_CHANGE percentage < -5Actions to Execute
The wallet actions to perform when all conditions are met. Multiple actions execute in sequence.
THEN WITHDRAW_LP THEN TRANSFER to:safeWalletconst complexRule = new RuleBuilder()
.name('Smart Exit Strategy')
.when('LIQUIDITY_OUT')
.condition('percentage', '>', 25)
.and('WHALE_MOVE')
.condition('action', '=', 'sell')
.and('RISK_SCORE_CHANGE')
.condition('newScore', '<', 50)
.then('WITHDRAW_LP', { percentage: 100 })
.then('AUTO_SWAP', { from: 'TOKEN', to: 'USDC' })
.then('TRANSFER', { to: safeWalletAddress })
.build();Cooldowns & Limits
Prevent over-trading and protect against rapid-fire executions with built-in cooldowns and rate limits.
Rule Cooldown
Time that must pass before a rule can trigger again after execution.
.cooldown(300) // 5 minutesMax Executions
Maximum number of times a rule can execute in a given period.
.maxExecutions(5, '24h')Amount Limits
Cap the maximum amount that can be used in a single action.
.maxAmount(1000, 'USDC')Daily Spend Limit
Total value that can be traded/transferred across all rules per day.
.dailyLimit(5000, 'USD')Best Practice
Always set reasonable cooldowns for volatile market conditions. We recommend at least 60 seconds for most automation rules to prevent rapid-fire executions.
Action Types
Vexa supports a comprehensive set of wallet actions that can be triggered by your automation rules.
AUTO_SWAP
Automatically swap tokens at market or limit price
{ from, to, amount, slippage }WITHDRAW_LP
Remove liquidity from a pool
{ pool, percentage }ADD_LP
Add liquidity to a pool
{ pool, amountA, amountB }TRANSFER
Send tokens to another wallet
{ to, token, amount }REBALANCE
Rebalance portfolio to target allocation
{ targets: { SOL: 50, USDC: 50 } }TAKE_PROFIT
Sell when price hits target
{ token, targetPrice, percentage }STOP_LOSS
Sell when price drops below threshold
{ token, stopPrice, percentage }DCA
Dollar-cost average into a position
{ token, amount, interval }Smart Safety Guard (SSG)
Vexa's built-in safety system continuously monitors for risks and can automatically protect your assets from rugs, honeypots, and suspicious activity.
Rug & Honeypot Detection
Real-time analysis of contract code, liquidity locks, developer wallet patterns, and transaction behavior to identify potential rugs and honeypots before they happen.
- Contract code analysis
- Liquidity lock verification
- Developer wallet tracking
- Historical pattern matching
Automated Defense Actions
When risk thresholds are crossed, Vexa can automatically pause rules, withdraw liquidity, or move assets to your designated safe wallet.
- Auto-pause risky automations
- Emergency LP withdrawal
- Safe wallet fund transfer
- Real-time alert notifications
Risk Score System
Every monitored pool receives a risk score from 0-100. Higher scores indicate safer pools.
Safe Wallet
Designate a secure cold wallet address where Vexa can automatically transfer funds during emergency situations.
// Set your safe wallet address
await vexa.safety.setSafeWallet({
address: 'YourColdWalletPublicKey...',
label: 'Hardware Wallet',
autoTransferThreshold: 40, // Risk score below this triggers transfer
});
// Configure what triggers a safe wallet transfer
await vexa.safety.setAutoDefense({
enabled: true,
actions: [
{ trigger: 'RISK_SCORE_BELOW', value: 40, action: 'TRANSFER_ALL' },
{ trigger: 'RUG_DETECTED', action: 'EMERGENCY_EXIT' },
{ trigger: 'HONEYPOT_DETECTED', action: 'PAUSE_RULES' },
]
});Recommended Setup
Use a hardware wallet (Ledger, Trezor) as your safe wallet. This adds an extra layer of security since funds transferred there require physical confirmation to move.
Liquidity Radar
The Liquidity Radar is your real-time command center for monitoring on-chain liquidity events across Solana DEXs.
Live Event Feed
Real-time stream of liquidity events including adds, removes, volume spikes, and whale movements.
Smart Money Alerts
Notifications when known profitable wallets or smart money enters or exits positions.
Pool Heatmap
Visual representation of liquidity flow across all monitored pools — see where money is moving.
Custom Watchlists
Create watchlists for specific tokens or pools and get focused updates.
Pool Analytics
Deep dive into individual pool metrics with comprehensive analytics and historical data.
| Metric | Description |
|---|---|
| TVL (Total Value Locked) | Current total liquidity in the pool |
| 24h Volume | Total trading volume in past 24 hours |
| LP APY | Estimated annual yield for liquidity providers |
| Impermanent Loss | Current IL for LP positions |
| Fee Revenue | Fees earned by LPs over various timeframes |
| Holder Distribution | Breakdown of LP token holders |
| Risk Score | Vexa's calculated safety rating (0-100) |
Active Rules
View and manage all your automation rules from a single dashboard. Monitor execution status, edit conditions, and track performance.
Rule Status Indicators
Transaction History
Complete log of all automated transactions executed by Vexa. Filter by rule, action type, status, or date range.
WITHDRAW_LP executed
Rule: LP Protection • 2 mins ago
+$1,245.32
View txAUTO_SWAP executed
Rule: Volume Rebalance • 1 hour ago
100 USDC → 0.52 SOL
View txPAUSE_RULES triggered
Safety Guard • 3 hours ago
Risk score dropped to 35
View detailsRPC Settings
Configure your RPC endpoints for optimal performance and reliability. Vexa supports multiple RPC providers with automatic failover.
const vexa = new VexaClient({
wallet,
rpcUrl: process.env.HELIUS_RPC_URL,
rpcOptions: {
// Backup RPCs for failover
fallbackUrls: [
process.env.QUICKNODE_RPC_URL,
'https://api.mainnet-beta.solana.com',
],
// Timeout before trying next RPC
timeout: 5000,
// Maximum retries per RPC
maxRetries: 3,
// Enable automatic health checks
healthCheck: true,
healthCheckInterval: 30000, // 30 seconds
}
});Recommended RPC Providers
Helius
Best for DeFi apps with enhanced APIs
QuickNode
High reliability and global coverage
Triton
Optimized for trading bots
Gas Optimization
Vexa automatically optimizes transaction priority fees to balance speed and cost.
await vexa.config.setGasOptions({
// Priority fee strategy
strategy: 'dynamic', // 'fixed' | 'dynamic' | 'aggressive'
// For 'fixed' strategy
fixedPriorityFee: 10000, // microLamports
// For 'dynamic' strategy
dynamicOptions: {
percentile: 75, // Use 75th percentile of recent fees
minFee: 5000,
maxFee: 100000,
},
// Compute unit settings
computeUnits: {
autoEstimate: true,
buffer: 1.2, // 20% buffer
}
});Fixed
Constant priority fee. Predictable costs but may fail during congestion.
Dynamic
Adjusts based on network conditions. Recommended for most users.
Aggressive
Maximum priority for time-sensitive trades. Higher costs.
Notifications
Stay informed with real-time notifications via multiple channels.
Telegram
Instant alerts via Telegram bot. Connect your account in settings.
Discord
Webhook integration for Discord servers. Great for team monitoring.
Daily summaries and critical alerts via email.
Webhook
Custom webhook for integration with your own systems.
await vexa.notifications.configure({
telegram: {
botToken: process.env.TELEGRAM_BOT_TOKEN,
chatId: process.env.TELEGRAM_CHAT_ID,
},
webhook: {
url: 'https://your-server.com/vexa-webhook',
secret: process.env.WEBHOOK_SECRET,
},
alerts: {
ruleExecuted: true,
riskAlert: true,
dailySummary: true,
errorNotifications: true,
}
});API Keys
Manage API keys for programmatic access to Vexa services.
Production Key
Full access • Created Dec 1, 2024
vx_prod_•••••••••Read-Only Key
Dashboard access only • Created Dec 5, 2024
vx_read_•••••••••API Key Security
Never expose API keys in client-side code. Store them in environment variables and use server-side code for all API calls.
Auto LP Withdrawal Guide
Learn how to set up automatic LP withdrawal to protect your liquidity positions.
Identify Your LP Positions
Connect your wallet and view all active LP positions in the Dashboard.
Set Withdrawal Triggers
Define conditions like liquidity out percentage, price drops, or risk score changes.
Configure Destination
Choose whether to swap to stables, hold the tokens, or transfer to safe wallet.
Test & Activate
Run a simulation to verify the rule works correctly, then activate for live monitoring.
Snipe Fresh Liquidity Guide
Automatically buy into new pools when they meet your criteria.
const sniperRule = new RuleBuilder()
.name('Fresh Liquidity Sniper')
.when('NEW_POOL')
.condition('initialLiquidity', '>', 30000) // Min $30k
.and('RISK_SCORE_CHANGE')
.condition('newScore', '>', 60) // Safe pools only
.then('AUTO_SWAP', {
from: 'USDC',
to: 'NEW_TOKEN',
amount: 100, // $100 per snipe
slippage: 5,
})
.cooldown(60) // 1 min cooldown
.maxExecutions(10, '24h') // Max 10 per day
.build();High Risk Strategy
Sniping new pools is inherently risky. Always use small position sizes and strict risk filters. Never invest more than you can afford to lose.
DCA Strategy Guide
Set up dollar-cost averaging to accumulate positions over time.
// DCA into SOL every day
const dcaRule = new RuleBuilder()
.name('Daily SOL DCA')
.schedule('0 9 * * *') // Every day at 9 AM UTC
.then('AUTO_SWAP', {
from: 'USDC',
to: 'SOL',
amount: 50, // $50 per day
slippage: 1,
})
.build();
// DCA on dips
const dipDcaRule = new RuleBuilder()
.name('Buy the Dip')
.when('PRICE_CHANGE')
.condition('percentage', '<', -5) // 5% drop
.condition('timeframe', '=', '1h')
.then('AUTO_SWAP', {
from: 'USDC',
to: 'SOL',
amount: 100,
})
.cooldown(3600) // 1 hour between buys
.build();Risk Management Guide
Best practices for managing risk with Vexa automations.
1. Set Position Limits
Never allocate more than 5-10% of your portfolio to a single automated rule.
2. Use Cooldowns
Prevent rapid-fire executions with minimum 60-second cooldowns.
3. Configure Safe Wallet
Always have a cold wallet ready for emergency fund transfers.
4. Monitor Risk Scores
Set rules to pause automations when pool risk scores drop below 50.
5. Test First
Always simulate rules before activating. Use small amounts initially.
6. Diversify
Spread risk across multiple pools and strategies. Don't put all eggs in one basket.
SDK Installation
The Vexa SDK provides a complete TypeScript interface for interacting with the SLAE engine programmatically.
import {
VexaClient,
RuleBuilder,
EventType,
ActionType
} from '@vexa/sdk';
// Initialize client
const vexa = new VexaClient({
wallet: yourWallet,
rpcUrl: process.env.RPC_URL,
options: {
gasOptimizer: true,
rpcFailover: true,
maxRetries: 3,
}
});
// Connect and start monitoring
await vexa.connect();
// Subscribe to events
vexa.on('LIQUIDITY_OUT', (event) => {
console.log('Liquidity removed:', event);
});
// Create and activate a rule
const rule = new RuleBuilder()
.name('My Automation')
.when(EventType.VOLUME_SPIKE)
.condition('multiplier', '>', 2)
.then(ActionType.REBALANCE, {
targets: { USDC: 20 }
})
.build();
await vexa.rules.create(rule);
await vexa.rules.activate(rule.id);SDK Configuration
Complete configuration options for the Vexa SDK client.
interface VexaClientConfig {
// Required
wallet: Keypair | Wallet;
rpcUrl: string;
// Optional
options?: {
// Transaction settings
gasOptimizer?: boolean; // Auto-optimize priority fees
computeUnitLimit?: number; // Max compute units
skipPreflight?: boolean; // Skip simulation
// RPC settings
rpcFailover?: boolean; // Enable failover
fallbackUrls?: string[]; // Backup RPCs
rpcTimeout?: number; // Timeout in ms
maxRetries?: number; // Retry attempts
// Monitoring settings
pollInterval?: number; // Event poll rate (ms)
maxConcurrent?: number; // Concurrent transactions
// Safety settings
safetyGuard?: boolean; // Enable SSG
autoDefense?: boolean; // Auto-protect on risk
};
}SDK Events
Subscribe to real-time events from the Vexa engine.
| Event | Payload |
|---|---|
connected | { publicKey, timestamp } |
ruleExecuted | { ruleId, trigger, actions, txSignature } |
ruleError | { ruleId, error, context } |
riskAlert | { pool, oldScore, newScore, reasons } |
liquidityEvent | { type, pool, amount, wallet } |
transactionConfirmed | { signature, slot, confirmations } |
// Subscribe to events
vexa.on('ruleExecuted', (event) => {
console.log('Rule executed:', event.ruleId);
console.log('Transaction:', event.txSignature);
});
vexa.on('riskAlert', (event) => {
console.warn('Risk detected:', event.pool);
console.warn('Score dropped:', event.oldScore, '->', event.newScore);
});
// Unsubscribe
const unsubscribe = vexa.on('liquidityEvent', handler);
unsubscribe(); // Stop listeningSDK Types
TypeScript type definitions for the Vexa SDK.
// Event types
enum EventType {
LIQUIDITY_IN = 'LIQUIDITY_IN',
LIQUIDITY_OUT = 'LIQUIDITY_OUT',
VOLUME_SPIKE = 'VOLUME_SPIKE',
WHALE_MOVE = 'WHALE_MOVE',
NEW_POOL = 'NEW_POOL',
PRICE_CHANGE = 'PRICE_CHANGE',
RISK_SCORE_CHANGE = 'RISK_SCORE_CHANGE',
}
// Action types
enum ActionType {
AUTO_SWAP = 'AUTO_SWAP',
WITHDRAW_LP = 'WITHDRAW_LP',
ADD_LP = 'ADD_LP',
TRANSFER = 'TRANSFER',
REBALANCE = 'REBALANCE',
TAKE_PROFIT = 'TAKE_PROFIT',
STOP_LOSS = 'STOP_LOSS',
DCA = 'DCA',
}
// Rule interface
interface Rule {
id: string;
name: string;
status: 'active' | 'paused' | 'error';
trigger: EventType;
conditions: Condition[];
actions: Action[];
cooldown: number;
createdAt: Date;
lastExecuted?: Date;
executionCount: number;
}
// Pool interface
interface Pool {
address: string;
tokenA: Token;
tokenB: Token;
tvl: number;
volume24h: number;
apy: number;
riskScore: number;
dex: 'raydium' | 'orca' | 'phoenix' | 'meteora';
}SDK Methods
vexa.connect()Initialize connection and authenticate with wallet
Returns: Promise<void>
vexa.rules.create(rule)Create a new automation rule
Returns: Promise<Rule>
vexa.rules.activate(ruleId)Activate a rule to start monitoring
Returns: Promise<void>
vexa.rules.pause(ruleId)Pause an active rule
Returns: Promise<void>
vexa.pools.monitor(poolAddress)Start monitoring a specific pool
Returns: Promise<PoolMonitor>
vexa.pools.getRiskScore(poolAddress)Get current risk score for a pool
Returns: Promise<RiskScore>
vexa.actions.execute(action)Manually execute a wallet action
Returns: Promise<TransactionResult>
vexa.on(event, callback)Subscribe to real-time events
Returns: Unsubscribe function
Frequently Asked Questions
Is Vexa custodial?
No. Vexa is completely non-custodial. All transactions are signed by your wallet. Vexa never has access to your private keys or the ability to move your funds without your signature.
Which DEXs does Vexa support?
Vexa currently supports Raydium, Orca, Phoenix, and Meteora. More DEX integrations are coming in future updates.
How fast are automations executed?
Vexa monitors events in real-time with sub-second latency. Transaction execution depends on Solana network conditions but typically completes within 1-3 seconds.
What happens if my RPC fails?
Vexa includes automatic RPC failover. If your primary RPC becomes unresponsive, Vexa will automatically switch to backup endpoints to ensure your automations continue running.
Can I run Vexa on my own infrastructure?
Yes. The Vexa SDK can be self-hosted. See the SDK documentation for deployment guides and infrastructure requirements.
How do I report bugs or request features?
Open an issue on our GitHub repository or reach out via Twitter/X. We actively monitor both channels and prioritize community feedback.
Troubleshooting
Common issues and how to resolve them.
Transaction Failed: Insufficient Funds
Ensure you have enough SOL for gas fees (minimum 0.01 SOL recommended) and sufficient token balance for the action.
Check: vexa.wallet.getBalance()Rule Not Triggering
Verify conditions are correctly configured and the rule is in "active" status. Check if cooldown is blocking execution.
Check: vexa.rules.getStatus(ruleId)RPC Connection Errors
Your RPC may be rate-limited or down. Enable failover and add backup RPC endpoints.
Enable: rpcFailover: trueSlippage Exceeded
Market moved too fast. Increase slippage tolerance or reduce trade size for volatile tokens.
Set: slippage: 5 // 5%Changelog
Recent updates and improvements to Vexa.
- • Added Meteora DEX support
- • New DCA action type with scheduling
- • Improved risk score algorithm
- • Telegram notification support
- • Phoenix DEX integration
- • Safe wallet auto-transfer feature
- • Gas optimization improvements
- • Bug fixes and performance updates
- • Initial release
- • Raydium and Orca support
- • Core SLAE engine
- • Rule Builder and Safety Guard
Community & Support
Join the Vexa community to get help, share strategies, and stay updated on new features.