Skip to main content
Pods Swap v2 prices and executes token swaps through a single endpoint. It automatically detects the route type — same-chain, cross-chain, or fiat ramp — aggregates across providers for the best output, and returns an executable payload you sign yourself. Pods never takes custody of funds.
Request the quote with wallet addresses (and pixKey for fiat offramps) and the response already includes the executable fields (id, transactionData, and paymentInstructions for fiat onramps) — you do not need a second POST /v2/swap/bytecode call.

Introduction

The system automatically detects the route type from the chains you pass and routes to the appropriate provider:
Same-chain swap: originChain equals destinationChain Cross-chain swap: originChain differs from destinationChain Fiat ramp: originChain or destinationChain is fiat

Authentication

Every request requires:
  • The key identifies your customer. Fee configuration and strategy catalog are scoped to it.
  • Success responses are the bare JSON body (HTTP 200). Errors use { "error": { "code", "message", "details?" } }.
  • Keep the API key on your backend — never expose it in a browser app.
Don’t have a key yet? Get an API key.

Integration flow

1

Get a quote

Request a same-chain, cross-chain, or fiat quote. Pass originAddress and destinationAddress (or pixKey for fiat offramps) so the response includes executable fields.
2

Review the quote

Read tokenOut.expectedAmountOut / minAmountOut and feeBreakdown before executing, and store the canonical chainIdIn / chainIdOut and quote.quoteId:
Full guide: Get a quote.
3

Execute

Execute all origin-chain transactionData legs as one atomic batch (EIP-7702 or a smart-account userOp) from originAddress — never submit them one by one, or a later failure can leave approvals/transfers committed and strand funds. Fiat onramps have nothing to sign — show paymentInstructions instead:
Full guide: Execute a swap (atomic batching via EIP-7702 or Executing Bytecode).
4

Track

Poll the swap to fulfilled with the quote’s quoteId, or subscribe to live WebSocket updates:
Full guide: Track a swap.