SOL-slot-block-tps-priority fee-epoch-mainnet

Token-2022 support

Both SPL Token and Token-2022 are supported, chosen per mint. The traded token and the payment asset may sit on different programs in the same order.

Pass the right program

Read it from the mint account's owner rather than guessing from a list. Passing the wrong one fails the transaction.

TypeScript
import { getMint } from '@solana/spl-token';

// The owner of the mint account IS the token program to pass.
const info = await connection.getAccountInfo(tokenMint);
const tokenProgram = info!.owner;

Transfer fees

Quote helpers report the notional and the protocol fee, not the mint's transfer fee. If your interface serves fee-bearing mints, read the extension and show the delivered amount separately from the purchased amount.

Extensions that are rejected

Order creation fails for mints whose extensions would break escrow or atomic settlement, rather than accepting the order and stranding funds later. This includes:

  • Non-transferable mints, which cannot enter escrow at all.
  • Permanent delegate, which would let a third party drain escrowed tokens.
  • Transfer hooks, which can execute arbitrary logic inside a settlement.
  • Confidential transfers, whose amounts the program cannot verify.

A freeze authority on a mint does not block order creation, but the authority holder can freeze accounts, including escrow. Check for one before taking size in an unfamiliar mint.