Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.overpass.ag/llms.txt

Use this file to discover all available pages before exploring further.

Mainnet program

WRAPdXmxrH37RKUbH1QMnYrKdNe8w4Kz44t1cXmYeum
SDK import:
import { PROGRAM_ID } from "@symmetry-hq/overpass";

Protocol kinds

enum ProtocolKind {
  Kvault = 0,
  Klend = 1,
  Save = 2,
  Lulo = 3,
  Marginfi = 4,
}

Source kinds

type SourceKind = "kvault" | "klend" | "save" | "lulo" | "marginfi";
Source kind is used when fetching source constraints or creating a token from a specific source-pool page.

Wrapper vault

A wrapper vault records the relationship between:
  • wrapper mint
  • underlying mint
  • source pool
  • protocol kind
  • creator
  • creator deposit fee
  • accumulated creator fees
  • accumulated protocol fees
  • creation timestamp
The wrapper mint is the yield token users hold. The wrapper vault is the account Overpass uses to route deposits and withdrawals through the correct protocol adapter.

Global config

The global config stores program-wide settings such as:
  • admin
  • fee recipient
  • protocol deposit fee
  • maximum creator deposit fee
Read it with:
const config = await Overpass.fetchGlobalConfig(connection);

Quote types

interface Quote {
  inAmount: bigint;
  outAmount: bigint;
  feeAmount: bigint;
  feeMint: PublicKey;
  warnings: QuoteWarning[];
}

interface QuoteWarning {
  code: string;
  message: string;
  protocol?: string;
}
Quotes use exact-in semantics.

Swap builder

interface BuildOverpassSwapArgs {
  user: PublicKey;
  wrapperMint: PublicKey;
  amount: bigint | number;
  direction: "deposit" | "withdraw";
  minOut?: bigint | number;
  overpass?: Overpass;
  computeUnits?: number;
}
buildOverpassSwap returns a built instruction bundle suitable for versioned transactions.

Wrapper creation

interface CreateWrapperArgs {
  creator: PublicKey;
  source: PublicKey;
  underlyingMint: PublicKey;
  name: string;
  symbol: string;
  uri: string;
  creatorDepositFeeBps: number;
  initialDeposit?: {
    amount: bigint | number;
    minOut?: bigint | number;
  };
  priorityFeeMicroLamports?: number;
}
Wrapper creation returns:
interface CreateWrapperResult {
  tx: VersionedTransaction;
  wrapperMint: PublicKey;
}