StarkFiStarkFi

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

FeatureStarkzap APIStarkFi Command
Token Balanceswallet.balanceOf()balance, portfolio
Token Transferswallet.transfer()send
Stakingwallet.stake(), wallet.exitPoolIntent()stake, unstake
Rewardswallet.claimPoolRewards()rewards --claim / --compound
Wallet Deploywallet.ensureReady()deploy
Transaction Buildingwallet.tx() (TxBuilder)batch, multi-swap
Gas AbstractionfeeMode: "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 bigint

Staking

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 details

TxBuilder (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 decimals

Validator Presets

import { mainnetValidators, sepoliaValidators } from "starkzap";

Validator presets provide name-to-staker-address mappings used by the validators and pools commands.

Edit on GitHub

Last updated on

On this page