Solutions

Cross-chain swaps, inside your wallet.

One integration gives your users native swaps across 30+ chains, without ever leaving the app.

01

Your users won't stay on one chain.

They expect to move between Bitcoin, EVM chains, Solana and Tron without leaving their wallet. SwapKit lets you offer that with one integration, not one per protocol.

02

What you get

Native Bitcoin swaps

Real BTC in and out. No bridges, no wrapped assets.

Gas only on the source chain

Users only need gas on the chain they swap from. SwapKit handles the rest of the route.

Every provider, one integration

THORChain, Chainflip, Maya, NEAR Intents and more, with automatic fallback if one is down.

03

Turn swaps into revenue

Set your own affiliate fee, anywhere from 0 to 1,000 bps. It's added to every swap your users make and paid to your addresses automatically, with volume and earnings tracked per app in the dashboard.

Your fee
You choose
Payout
Automatic, on-chain
SwapKit fee
0.10–0.15%
See pricing and an earnings example →

04

How to integrate

Pick the depth that fits your wallet. Most teams go live in under a week.

Mobile and backend-driven wallets

API

REST endpoints for quotes, transactions and tracking. Works from any language.

Quickstart →

TypeScript wallets

SDK

Quotes, wallet connections and signing for every chain in one TypeScript package.

SDK docs →

Web wallets that want it live today

Widget

A drop-in swap interface you brand in Widget Studio. No swap UI to build.

Widget Studio →
  1. 1

    Get a quote

    Ask for a price across every provider. Your user sees the best route.

  2. 2

    Your user signs

    SwapKit returns a ready-to-sign transaction. Keys never leave the wallet.

  3. 3

    Track to completion

    Follow the swap across chains until the funds arrive.

TypeScript
import { Chain, createSwapKit, SwapKitApi } from "@swapkit/sdk";

const swapKit = createSwapKit({ config: { apiKeys: { swapKit: apiKey } } });

const { routes } = await SwapKitApi.getSwapQuote({
  sellAsset: "BTC.BTC",
  buyAsset: "ETH.ETH",
  sellAmount: "0.05",
  sourceAddress: swapKit.getAddress(Chain.Bitcoin),
  destinationAddress: swapKit.getAddress(Chain.Ethereum),
});

const txHash = await swapKit.swap({ route: routes[0] });
Read the quickstart →

05

What's supported

Native assets and tokens on 30+ chains, routed through 14 liquidity providers. Including:

  • Bitcoin
  • Ethereum
  • Solana
  • BNB Chain
  • XRP
  • THORChain
  • Base
  • Arbitrum
  • Polygon
  • Avalanche
  • Optimism
  • TRON
  • Litecoin
  • Dogecoin
  • Bitcoin Cash
  • Cosmos
  • Sui
  • NEAR
  • and more
THORChain Chainflip Maya Protocol NEAR Intents Mayan 1inch Jupiter Uniswap PancakeSwap SushiSwap TraderJoe Garden Flashnet Harbor
Full chain and route matrix →

06

Trusted in production

Wallets that millions of people use every day ship cross-chain swaps with SwapKit.

  • Non-custodialUsers sign every transaction in their own wallet. SwapKit never holds keys or funds.
  • Address screeningEvery address in a swap is screened for AML risk before the transaction is built.
  • Public statusProvider and API health are published at status.swapkit.dev.
Compare building it yourself →

07

Questions

Is SwapKit non-custodial?

Yes. Users sign every transaction in their own wallet and keep full control of their keys.

Can I use only specific providers?

Yes. You can limit routing to the providers you choose, for example THORChain and Maya only.

How do I show quotes in my wallet?

Each quote returns the expected output, fees and route details, ready to render in your own UI.

Does it work with hardware wallets?

Yes. SwapKit supports Ledger and other hardware wallets through standard signing flows.

Ship cross-chain swaps this week.

One integration for 10,000+ assets across 30+ chains, with limit orders and Hyperliquid deposits included. Non-custodial by design.