starkzap
v3.0.0
Published
Helper sdk for easy wallet integration
Readme
Starkzap - Bitcoin in your app in minutes
The complete money toolkit for your app in minutes from wallets, tokens, staking, gasless transactions, confidential transactions, swaps, bridging, lending and borrowing, all within a typescript SDK.
Works on web (React, Vite, etc.), iOS & Android (React Native, Expo), and Node.js backends.
Full documentation: docs.starknet.io/build/starkzap
Curated list of projects using Starkzap: awesome-starkzap
Starkzap Debugging Group: telegram chat
Installation
Install Starkzap using npm or yarn:
npm install starkzapor
yarn add starkzapBuilding for React Native/Expo? Use React Native Integration and install starkzap-native instead of using starkzap directly in your mobile app.
Dependencies
The SDK depends on:
starknet(v9+) - Starknet.js core library
This will be installed automatically when you install starkzap.
Peer dependencies by feature
All peer dependencies are optional to keep the package lean. Install only what you need:
| Feature | Included in | Peer Dependencies |
| ---------------------------------------------------------------- | --------------------------------- | --------------------------------------------------------------------------------------------------------- |
| Ethereum bridging (deposit / withdraw to Ethereum) | starkzap,starkzap-native | ethers@^6 |
| Solana bridging (deposit / withdraw to Solana via Hyperlane) | starkzap,starkzap-native | @solana/web3.js@^1, @hyperlane-xyz/sdk@^14, @hyperlane-xyz/registry@^19, @hyperlane-xyz/utils@^14 |
| Cartridge Controller wallet | starkzap,starkzap-native | @cartridge/controller@^0.13 |
| Confidential transfers (Tongo) | starkzap,starkzap-native | @fatsolutions/tongo-sdk@^1 |
| React Native / Expo | starkzap-native | react-native-get-random-values@^1, fast-text-encoding@^1, @ethersproject/shims@^5, buffer@^6 |
# Ethereum bridging
npm install ethers
# Solana bridging
npm install @solana/web3.js @hyperlane-xyz/sdk @hyperlane-xyz/registry @hyperlane-xyz/utils
# Cartridge Controller (only for Web)
npm install @cartridge/controller
# Confidential transfers
npm install @fatsolutions/tongo-sdk
# React Native / Expo (use starkzap-native instead of starkzap)
npm install starkzap-native react-native-get-random-values fast-text-encoding @ethersproject/shims bufferQuick Start
import {
StarkZap,
StarkSigner,
OnboardStrategy,
Amount,
fromAddress,
sepoliaTokens,
} from "starkzap";
const sdk = new StarkZap({ network: "sepolia" });
const { wallet } = await sdk.onboard({
strategy: OnboardStrategy.Signer,
account: { signer: new StarkSigner("0xYOUR_PRIVATE_KEY") },
deploy: "if_needed",
});
const STRK = sepoliaTokens.STRK;
const balance = await wallet.balanceOf(STRK);
console.log(balance.toFormatted()); // "150.25 STRK"
const tx = await wallet.transfer(STRK, [
{ to: fromAddress("0xRECIPIENT"), amount: Amount.parse("10", STRK) },
]);
await tx.wait();For onboarding flows (Privy, Cartridge, etc.) and more examples, see the Quick Start guide.
Documentation
All guides and API reference live on the Starknet docs site. We recommend starting with Quick Start.
Examples
The repo includes web, mobile, and server examples in examples/. See the Examples docs for run instructions and details.
Contributors✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
Contributing
npm install
npm run typecheck
npm test
npm run test:integration # requires starknet-devnet
npm run lint
npm run prettier
npm run buildToken and validator presets can be regenerated with npm run generate:tokens, npm run generate:tokens:sepolia, npm run generate:validators, and npm run generate:validators:sepolia.
License
MIT — 0xLucqs
