Bring Bitcoin, stablecoins, and DeFi to any web or mobile app via Starknet in minutes. One TypeScript SDK: wallets, tokens, staking, and gasless transactions — with a clean API and great UX. Starknet’s account abstraction lets you hide blockchain complexity (no seed phrases, optional gasless flows). 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
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.
The SDK depends on:
starknet(v9+) - Starknet.js core library
This will be installed automatically when you install starkzap.
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 bufferimport {
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.
All guides and API reference live on the Starknet docs site. We recommend starting with Quick Start.
The repo includes web, mobile, and server examples in examples/. See the Examples docs for run instructions and details.
Thanks goes to these wonderful people (emoji key):
0xLucas 💻 |
micbakos 💻 |
0xsisyfos 💻 |
Akashneelesh 💻 |
Abdel @ StarkWare 💻 |
||
|
|
||||||
This project follows the all-contributors specification. Contributions of any kind welcome!
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.
MIT — 0xLucqs