vaea-flash-sdk 0.1.0

VAEA Flash — Universal Flash Loan SDK for Solana. Borrow any SPL token atomically in one call.
Documentation

VAEA Flash SDK (Rust)

Universal Flash Loan SDK for Solana — Borrow any SPL token atomically in one call.

Crates.io Docs.rs License: MIT

Features

  • 83+ tokens — SOL, USDC, JitoSOL, mSOL, JUP, and 78 more
  • 3 protocols — Marginfi, Kamino, Jupiter Lend
  • Smart Router (VTE) — Automatically finds cheapest route
  • Local Builder — Build instructions in <0.1ms, zero HTTP
  • Jito Bundle — Native MEV protection support
  • Profitability Check — Verify profit before execution
  • Multi-token — Atomic multi-asset flash loans

Quick Start

[dependencies]
vaea-flash-sdk = "0.1"
use vaea_flash_sdk::{VaeaFlash, BorrowParams};
use solana_sdk::signature::Keypair;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let payer = Keypair::new();
    let flash = VaeaFlash::with_rpc(
        "https://api.vaea.fi",
        "https://api.mainnet-beta.solana.com",
        &payer,
    )?;

    // Check available liquidity
    let capacity = flash.get_capacity().await?;
    let sol = capacity.tokens.iter().find(|t| t.symbol == "SOL").unwrap();
    println!("SOL available: {} ({})", sol.max_amount, sol.source_protocol);

    // Get a quote
    let quote = flash.get_quote("SOL", 1000.0).await?;
    println!("Fee: {}% ({} SOL)", quote.fee_breakdown.total_fee_pct, quote.fee_breakdown.total_fee_sol);

    // Build flash loan instructions
    let ixs = flash.borrow(&BorrowParams {
        token: "SOL".to_string(),
        amount: 1000.0,
        instructions: vec![/* your arb instructions */],
        slippage_bps: None,
        max_fee_bps: Some(5), // 0.05% max fee guard
    }).await?;

    println!("Built {} instructions", ixs.len());
    Ok(())
}

Zero-HTTP Local Builder

For latency-critical bots, build instructions in <0.1ms with zero network calls:

use vaea_flash_sdk::{localBuild, LocalBuildParams, FlashTier, syncRegistry};

// Sync token registry once at startup
sync_registry(None).await;

// Build locally — 0.1ms, no HTTP
let result = local_build(LocalBuildParams {
    payer: wallet.pubkey(),
    token: "SOL".into(),
    amount: 1000.0,
    tier: FlashTier::Sdk,
})?;

// result.begin_flash + [your IXs] + result.end_flash

API Methods

Method Description
get_capacity() Real-time liquidity across 83+ tokens
get_quote(token, amount) Fee breakdown with VTE routing
build(request) Get prefix/suffix instructions from API
borrow(params) Build complete flash loan instructions
borrow_local(params) Same as borrow, zero HTTP (<0.1ms)
execute(params) Build + sign + send in one call
execute_local(params) Same as execute, zero HTTP
execute_smart(params) Smart routing with local fallback
simulate(params) Dry-run simulation
borrow_multi(params) Multi-token atomic flash loans
is_profitable(params) Pre-execution profitability check
read_flash_state(payer, mint) Read on-chain FlashState PDA
get_route(token, amount, max_bps) VTE smart route resolution
get_health() System health check
get_matrix() Full liquidity matrix
get_discovery() Token discovery summary

License

MIT — see LICENSE