staking
Staking
Manage Starknet staking operations: delegate tokens to validators, claim or compound rewards, and unstake positions. Supports multiple token types across various validators and pools.
Prerequisites
- Active session required.
- Sufficient token balance for staking + gas fees.
Supported Tokens
| Token | Type |
|---|---|
| STRK | Native |
| WBTC | Bitcoin |
| tBTC | Bitcoin |
| SolvBTC | Bitcoin |
| LBTC | Bitcoin |
Rules
- BEFORE staking, you MUST run
npx starkfi@latest validatorsto list available validators, thennpx starkfi@latest pools <validator>to see available pools. - BEFORE staking, check
balanceto confirm the user has enough tokens. - Unstaking is a two-step process: first
unstake intentstarts a cooldown, thenunstake exitfinalizes after the cooldown period. The user must wait between these steps. rewards --compoundatomically claims and restakes in one transaction.- AFTER any transactional operation (stake, unstake, rewards), verify with
tx-status. - Use
stake-statusto view the user's current staking positions across all validators. When exit intents are active, unpooling amounts and cooldown dates are shown automatically. - Token defaults to
STRKif--tokenis not specified. - LST Disambiguation: If the user mentions "liquid staking", "xSTRK", or "Endur", redirect to the
lstskill instead. This skill handles delegation staking only. Do NOT userewards --claimorrewards --compoundfor xSTRK positions.
Commands
# Discovery
npx starkfi@latest validators [--json]
npx starkfi@latest pools <validator> [--json]
npx starkfi@latest stake-status [validator] [--json]
# Stake tokens
npx starkfi@latest stake <amount> --validator <name> [--token <symbol>] [--simulate] [--json]
# Unstake (two-step)
npx starkfi@latest unstake intent --validator <name> --amount <amount> [--token <symbol>]
npx starkfi@latest unstake exit --validator <name> [--token <symbol>]
# Rewards
npx starkfi@latest rewards --claim --validator <name> [--token <symbol>]
npx starkfi@latest rewards --compound --validator <name> [--token <symbol>]
Parameters
stake
| Parameter | Type | Description | Required |
|---|---|---|---|
amount |
number | Amount to stake (positional) | Yes |
--validator |
string | Validator name (from validators list) |
Yes* |
--pool |
string | Pool contract address (alternative to validator) | Yes* |
--token |
string | Token symbol (default: STRK) |
No |
--simulate |
flag | Estimate fees without broadcasting | No |
--json |
flag | Output raw JSON | No |
*Provide either --validator or --pool.
unstake
| Parameter | Type | Description | Required |
|---|---|---|---|
| action | string | intent or exit (positional) |
Yes |
--validator |
string | Validator name | Yes* |
--pool |
string | Pool contract address | Yes* |
--amount |
number | Amount to unstake (required for intent) |
For intent |
--token |
string | Token symbol (default: STRK) |
No |
rewards
| Parameter | Type | Description | Required |
|---|---|---|---|
--claim |
flag | Claim pending rewards | Yes* |
--compound |
flag | Claim and immediately restake | Yes* |
--validator |
string | Validator name | Yes** |
--pool |
string | Pool contract address | Yes** |
--token |
string | Token symbol (default: STRK) |
No |
*Provide either --claim or --compound. **Provide either --validator or --pool.
Examples
User: "Which validators can I stake with?"
npx starkfi@latest validators
User: "Show me pools for Karnot"
npx starkfi@latest pools Karnot
User: "Stake 1000 STRK with Karnot"
npx starkfi@latest status
npx starkfi@latest balance --token STRK
npx starkfi@latest stake 1000 --validator Karnot
npx starkfi@latest tx-status <hash>
User: "Stake 0.5 WBTC with Karnot"
npx starkfi@latest balance --token WBTC
npx starkfi@latest stake 0.5 --validator Karnot --token WBTC
npx starkfi@latest tx-status <hash>
User: "Compound my STRK rewards from Karnot"
npx starkfi@latest rewards --compound --validator Karnot
npx starkfi@latest tx-status <hash>
User: "Claim my rewards from Karnot"
npx starkfi@latest rewards --claim --validator Karnot
npx starkfi@latest tx-status <hash>
User: "I want to unstake my STRK from Karnot"
# Step 1: Start unstake cooldown
npx starkfi@latest unstake intent --validator Karnot --amount 1000
npx starkfi@latest tx-status <hash>
# Inform user about cooldown period
# Step 2: After cooldown, finalize
npx starkfi@latest unstake exit --validator Karnot
npx starkfi@latest tx-status <hash>
User: "Show me all my staking positions"
npx starkfi@latest stake-status
Error Handling
| Error | Action |
|---|---|
Validator not found |
Run validators to list valid names. |
Pool not found |
Run pools <validator> to list available pools. |
Insufficient balance |
Check balance and suggest a smaller amount. |
Cooldown not complete |
User must wait before running unstake exit. |
No rewards to claim |
Position has no pending rewards. |
Not authenticated |
Run authenticate-wallet skill first. |
Related Skills
- Use
balanceto check available tokens before staking. - Use
portfoliofor a full overview including staking positions with USD values. - Use
batchto combine staking with other operations in one transaction. - Use
lstfor liquid staking via Endur (xSTRK — automatic yield, instant redemption).
More from ahmetenesdur/starkfi
send
Send STRK, ETH, or any ERC-20 token to a Starknet address. Supports simulation (dry-run) before execution. Use this skill when the user wants to send, transfer, pay, tip, or move tokens to another wallet address on Starknet. Also trigger when the user mentions sending funds to someone, making a payment, transferring assets, or moving crypto to a specific address — even if they just say "pay 10 STRK to 0x...".
10balance
Check Starknet wallet token balances — STRK, ETH, and all ERC-20 tokens. Use this skill when the user asks about their balance, holdings, funds, tokens, wallet contents, or wants to know how much of something they have. Also use before any transaction to verify sufficient funds. Trigger whenever the user says "check my balance", "how much ETH do I have", "what's in my wallet", "do I have enough", "show my tokens", or any variation about checking available assets — even if they don't use the word "balance".
9multi-swap
Execute multiple token swaps in a single Starknet transaction via Fibrous (default). Supports per-provider selection (avnu, ekubo, or auto to race all). Supports 2-3 swap pairs bundled into one multicall. Use this skill when the user wants to swap multiple token pairs at once, do batch swaps, execute several trades simultaneously, perform parallel swaps, or do bulk trading in one transaction. Also trigger when the user mentions "two swaps", "three swaps", "swap X and Y at the same time", or wants to convert multiple tokens in a single call.
9portfolio
View a comprehensive DeFi portfolio dashboard and optimize portfolio allocation via automated rebalancing. Use this skill when the user wants an overview, summary, dashboard, total value, net worth, portfolio rebalancing, target allocation, or wants to see all their DeFi positions across Starknet at once. Also trigger when the user asks "what do I have", "show me everything", "how much am I worth", "my positions", "my investments", "rebalance my portfolio", "I want 50% ETH", "optimize my holdings", or any request for a holistic view of their Starknet holdings — even if they don't explicitly say "portfolio".
9authenticate-wallet
Authenticate, manage sessions, and deploy Starknet wallets with StarkFi. Handles email OTP login (two-step), session checks, address display, account deployment, and logout. Use this skill whenever the user wants to sign in, log in, check their session, see their wallet address, deploy their account, or log out — even if they don't say "authenticate" explicitly.
9batch
Execute multiple different DeFi operations in a single Starknet transaction — combine swaps, staking, lending supply/borrow/repay/withdraw, token sends, DCA orders, and Troves vault deposits/withdrawals into one multicall. Use this skill when the user wants to batch, combine, bundle, or chain multiple diverse operations together in one atomic transaction, such as "swap ETH and then stake STRK" or "withdraw from lending and swap" or "repay debt and stake" or "swap and send in one go" or "create a DCA order and stake" or "deposit into vault and swap". Also trigger when the user mentions multicall, combining operations, doing multiple things at once, or wants to save gas by bundling actions — even if they don't use the word "batch".
7