TypeScript packages for the Arkade Bitcoin wallet ecosystem: onchain and offchain wallets via Arkade, and Arkade Intents asset swaps.
| Package | Description |
|---|---|
@arkade-os/sdk |
Bitcoin wallet SDK with Taproot and Arkade support |
@arkade-os/swap |
Client-side Arkade Intents asset swaps: state a route, get an outcome — pay, receive, exchange |
The regtest/ directory is a shared regtest environment, vendored as the
arkade-regtest git submodule.
- Node.js >= 24.22.1 < 27 (LTS; see
.nvmrc) - pnpm >= 10.25.0 < 11
corepack enable
git submodule update --init
pnpm installpnpm run build # Build all packages (sdk first, then the plugins)
pnpm test # Run all unit and integration tests
pnpm run test:unit # Run unit tests across packages
pnpm run test:integration # Run integration tests across packages against regtest
pnpm run lint # Check formatting (biome)# Single file
pnpm -C packages/sdk vitest run test/wallet.test.ts
# Single test by name
pnpm -C packages/sdk vitest run -t "test name pattern"Integration tests run against the shared regtest stack; pnpm run test:integration cycles every
package's suite (sdk, swap, and the swap RFQ profile) end-to-end. See
CONTRIBUTING.md for per-package stack control, running selected test files, and
how CI fans the sdk e2e suite out across parallel groups.
TypeDoc-generated API docs for @arkade-os/sdk are written to the repo-root docs/ directory (the source for arkade-os.github.io/ts-sdk).
pnpm -C packages/sdk run docs:build # Build into ./docs at the repo root
pnpm -C packages/sdk run docs:open # Open ./docs/index.html (macOS `open`)After regenerating, sanity-check that source links in the generated HTML point to monorepo-style paths (e.g. packages/sdk/src/...) before publishing.
Releases run from the repository root and are package-scoped (sdk, swap, or all), each with
its own version and tag. Releasing sdk also bumps the dependents (swap), so they never stay
pinned to a stale SDK:
pnpm run release -- sdk patch # SDK + dependent swap patch
pnpm run release:dry-run -- sdk patch # Preview the plan without changing files
pnpm run release:cleanup # Restore manifests, delete local tagsworkspace:* dependencies are replaced with the workspace package's exact version when a package
is published. If a dependent starts using a newly released SDK API, release the SDK first and the
dependent second; otherwise the dependent can be published with an older, incompatible SDK pin.
See CONTRIBUTING.md for all targets, bump types, prerelease flags, and cleanup behavior.
- CHANGELOG.md — release history
- CONTRIBUTING.md — integration testing and releasing in detail
- SECURITY.md — security policy
MIT