Wallet connectors for the SwapKit SDK:
browser extensions, hardware devices, and mobile/protocol wallets, exposed
through a single loadWallet entry point and typed SKWallets registry.
| Package | Contents |
|---|---|
@swapkit/wallets |
aggregator: loadWallet, SKWallets/SKWalletsSupportedChains types, and connectors without their own package (keystore, tonconnect, xaman, radix, passkeys, …) |
@swapkit/wallet-extensions |
injected browser-extension providers (MetaMask/EVM, Keplr, Vultisig, Ctrl, Phantom, Petra, Noir Wallet, …) |
@swapkit/wallet-hardware |
Ledger, Trezor, KeepKey |
@swapkit/wallet-mobile |
mobile wallet support |
@swapkit/sdk |
batteries-included bundle re-exporting core, plugins, toolboxes, and wallets |
Each connector is a lazy-loaded subpath export — apps pull only the wallets they use.
Requires bun — use the version pinned in
.github/workflows/ci.yml to keep bun.lock
reproducible.
bun install
bun run build:ci # build all packages + .d.ts generation
bun run type-check # tsc across packages
bun test # bun test across packages
bun run lint # biome check --fix
bun run playground:vite-lite:start # browser playgroundSee docs/adding-a-wallet.md — covers the connector
module, registering the WalletOption and error codes through the
@swapkit/helpers extensible registries (no helpers release required), the
loadWallet/SKWallets wiring, and the gotchas.
Versioning goes through changesets:
every user-facing change ships a .changeset/*.md entry, and @swapkit/*
dependency bumps additionally need the generated changeset from
bun generate:dep-changeset (CI enforces it). Merges to develop roll up
into a "Version Packages" PR; merging that publishes to npm.