Skip to content

Run it locally

  • Rust with the Solana platform tools (cargo build-sbf), and rustc 1.98 or newer for the LiteSVM tests
  • Anchor 1.2.2 for the IDL
  • Node 20 or newer
Terminal window
export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"
# LM-OTS against the RFC 8554 vectors
cargo test -p lmots --features sign
# program binary
cargo build-sbf --tools-version v1.58 --manifest-path programs/quantark/Cargo.toml --sbf-out-dir target/deploy
# program tests on LiteSVM
cargo +1.98.1 test -p quantark --test flow -- --nocapture
# client checks, then the full flow on a local validator with Meteora's mainnet DBC binary
cd app && npm run test:lib && npm run test:localnet

Rebuild the IDL after changing the program:

Terminal window
RUSTUP_TOOLCHAIN=1.98.1 ~/.avm/bin/anchor-1.2.2 idl build -p quantark -o target/idl/quantark.json
cp target/idl/quantark.json app/lib/idl/
Terminal window
bash app/scripts/dev-localnet.sh

Starts a seeded validator with the canary fixtures, the basket, a launch config and sample coins, then serves the app on localhost:4810.

Terminal window
bash app/scripts/devnet.sh

Needs about 3.5 devnet SOL on the deployer key. It deploys the program, seeds the basket and launch config against Qanary’s devnet canary, and writes app/.env.production.local.

Variable Meaning
NEXT_PUBLIC_RPC RPC endpoint. Use a dedicated one for full holder data
NEXT_PUBLIC_CLUSTER devnet, localnet or mainnet-beta, used for explorer links
NEXT_PUBLIC_DBC_CONFIG QuantArk’s Meteora DBC launch config
NEXT_PUBLIC_COMPONENT_LABELS JSON map of component mint to display name