Error Codes
All error responses use the same format:HTTP status codes
API errors
Authentication errors (all /api/v1/* endpoints)
Quote errors (GET /api/v1/quote)
Swap errors (POST /api/v1/swap)
GET /quote will return an ExactOut quote over a Fluxbeam or Moonit route, because the DEX restriction is enforced when the transaction is built, not when the route is priced. Handle the 400 at /swap or /instructions rather than assuming a successful quote implies an executable ExactOut swap.Instructions errors (POST /api/v1/instructions)
Firm-quote errors (POST /api/v1/swap, POST /api/v1/instructions with quoteId)
See Firm quotes for how
quoteId and firm work.
Simulation result errors
WhenskipSimulation is false, the swap response includes a simulation object:
On-chain errors
These surface after a signed transaction is submitted — in the transaction’s error and program logs, not in an HTTP response. They come from two sources: the Vulcx aggregator program itself, and the Solana runtime / SPL Token program underneath it.Vulcx aggregator program errors
Anchor custom errors from programVu1cUxynmbPUsFqVz51FJJ2y69vX2yrkTS13ajomd9D. In a failed transaction they appear as Custom(<code>) on the aggregator instruction and by name in the program logs.
Administration and validation errors (
6000 InvalidAmount, 6004 InvalidIndex, 6012–6015 InvalidFeeRecipient / FeeTooHigh / InvalidAdmin / ProtocolNotInitialized, 6018 InvalidStepCount) occur only on protocol-admin instructions or malformed hand-built transactions — not on engine-built swaps.
Solana runtime & SPL Token errors
These are not Vulcx program errors — they come from the network or the token program, so they carry no6xxx code.