Starkzap SDK
Core SDK powering wallets, tokens, staking, and transaction building
Overview
Starkzap is the core SDK that powers all on-chain interactions in StarkFi. It provides a unified TypeScript API for Starknet — wallet management, token operations, staking, gas abstraction, and multicall transaction building.
StarkFi uses Starkzap v1.0.0 as a direct dependency.
How StarkFi Uses Starkzap
| Feature | Starkzap API | StarkFi Command |
|---|---|---|
| Token Balances | wallet.balanceOf() | balance, portfolio |
| Token Transfers | wallet.transfer() | send |
| Staking | wallet.stake(), wallet.exitPoolIntent() | stake, unstake |
| Rewards | wallet.claimPoolRewards() | rewards --claim / --compound |
| Wallet Deploy | wallet.ensureReady() | deploy |
| Transaction Building | wallet.tx() (TxBuilder) | batch, multi-swap |
| Gas Abstraction | feeMode: "sponsored" | config set-gasfree |
SDK Initialization
import { Starkzap } from "starkzap";
const sdk = new Starkzap({
network: "mainnet",
rpcUrl: "https://your-rpc.com", // optional — uses Starkzap preset by default
paymaster: {
nodeUrl: "https://starknet.paymaster.avnu.fi",
},
});Wallet Connection
StarkFi uses the Privy onboarding strategy with the ArgentX v0.5.0 account preset:
import { PrivySigner, ArgentXV050Preset } from "starkzap";
const wallet = await sdk.connectWallet({
account: {
signer: new PrivySigner({
walletId: session.walletId,
publicKey: session.publicKey,
serverUrl: session.serverUrl,
}),
accountClass: ArgentXV050Preset,
},
feeMode: "sponsored", // gasfree mode
});Key APIs
Token Operations
wallet.balanceOf(token); // Get token balance (Amount object)
wallet.transfer(token, transfers); // Send tokens to an address
Amount.parse("100", token); // Parse human-readable → Amount
Amount.fromRaw(wei, token); // Create from raw bigintStaking
wallet.stake(poolAddress, amount); // Stake tokens
wallet.exitPoolIntent(pool, amount); // Begin unstaking (step 1)
wallet.exitPool(pool); // Finalize unstaking (step 2)
wallet.claimPoolRewards(pool); // Claim rewards
wallet.getPoolPosition(pool); // Get position detailsTxBuilder (Multicall)
The TxBuilder composes multiple operations into a single atomic Starknet multicall:
const tx = await wallet
.tx()
.approve(token, amount, spender)
.add(calls)
.stake(poolAddress, amount)
.send({ feeMode: "sponsored" });StarkFi uses TxBuilder for batch, multi-swap, and lending operations where multiple calls must execute atomically.
Token Presets
import { getPresets, ChainId } from "starkzap";
const presets = getPresets(ChainId.MAINNET);
const tokens = presets.tokens; // All known tokens with addresses and decimalsValidator Presets
import { mainnetValidators, sepoliaValidators } from "starkzap";Validator presets provide name-to-staker-address mappings used by the validators and pools commands.
Last updated on