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%
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
Get a quote
Ask for a price across every provider. Your user sees the best route.
- 2
Your user signs
SwapKit returns a ready-to-sign transaction. Keys never leave the wallet.
- 3
Track to completion
Follow the swap across chains until the funds arrive.
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] }); 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 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.
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.