skills/staking/SKILL.md
Stake, unstake, claim, and compound rewards for STRK, WBTC, tBTC, SolvBTC, and LBTC on Starknet. View validators, pools, and staking positions. Use this skill when the user mentions staking, delegating, validators, staking pools, rewards, compounding, unstaking, earning yield, passive income on crypto, or wants to earn on their STRK or BTC tokens — even if they don't say "stake" explicitly.
npx skillsauth add ahmetenesdur/starkfi stakingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manage Starknet staking operations: delegate tokens to validators, claim or compound rewards, and unstake positions. Supports multiple token types across various validators and pools.
| Token | Type | | ------- | ------- | | STRK | Native | | WBTC | Bitcoin | | tBTC | Bitcoin | | SolvBTC | Bitcoin | | LBTC | Bitcoin |
npx starkfi@latest validators to list available validators, then npx starkfi@latest pools <validator> to see available pools.balance to confirm the user has enough tokens.unstake intent starts a cooldown, then unstake exit finalizes after the cooldown period. The user must wait between these steps.rewards --compound atomically claims and restakes in one transaction.tx-status.stake-status to view the user's current staking positions across all validators. When exit intents are active, unpooling amounts and cooldown dates are shown automatically.STRK if --token is not specified.lst skill instead. This skill handles delegation staking only. Do NOT use rewards --claim or rewards --compound for xSTRK positions.# 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>]
| 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.
| 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 |
| 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.
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 | 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. |
balance to check available tokens before staking.portfolio for a full overview including staking positions with USD values.batch to combine staking with other operations in one transaction.lst for liquid staking via Endur (xSTRK — automatic yield, instant redemption).testing
Deposit and withdraw from Troves DeFi yield vault strategies on Starknet. View available strategies, check positions, and manage vault deposits. Use this skill when the user mentions Troves, vault, yield vault, DeFi vault, strategy, yield farming, vault deposit, vault withdraw, earning yield through vaults, passive yield strategies, or wants to deposit into or withdraw from a yield strategy — even if they don't say "Troves" explicitly.
testing
Liquid staking via Endur on Starknet — stake STRK to receive xSTRK, redeem xSTRK back to STRK, check positions, and view protocol stats. Yield is embedded in the xSTRK share price (no manual claim needed). Use this skill when the user mentions liquid staking, LST, xSTRK, Endur, liquid staking token, share price, instant staking, tradeable staking position, or wants a staking token they can trade or use in DeFi — even if they don't say "liquid staking" explicitly.
testing
Create, preview, list, and cancel recurring Dollar-Cost Averaging (DCA) buy orders on Starknet via AVNU or Ekubo. Use this skill when the user wants to set up automatic recurring purchases, dollar-cost average into a token, create a DCA order, schedule periodic buys, invest regularly, buy every day/week/month, or manage existing DCA orders. Also trigger when the user says "recurring buy", "scheduled purchase", "buy X of Y every day", or any variation about automated periodic investing — even if they don't use the term "DCA" explicitly.
development
Manage confidential (private) transfers via Tongo Cash on Starknet — setup, fund, transfer, withdraw, ragequit, rollover using ZK proofs. Use this skill when the user wants to send tokens privately, hide transfer amounts, use zero-knowledge proofs, set up Tongo, fund or withdraw from a confidential account, perform an emergency exit (ragequit), or activate pending balance (rollover). Also trigger when the user says "send privately", "confidential transfer", "hide my transaction", "Tongo Cash", "ZK transfer", or any variation about privacy-preserving transfers — even if they don't use the word "confidential".