From 3682727b25e92e748e5363586f28b12930f4b3fe Mon Sep 17 00:00:00 2001 From: hcastc00 Date: Thu, 12 Feb 2026 13:53:36 +0100 Subject: [PATCH] Updated starknet guide for new UI --- docs/user/staking/starknet/solo.md | 175 +++++++++++++++++------------ 1 file changed, 104 insertions(+), 71 deletions(-) diff --git a/docs/user/staking/starknet/solo.md b/docs/user/staking/starknet/solo.md index 0fcc075f9..05cf0c0e9 100644 --- a/docs/user/staking/starknet/solo.md +++ b/docs/user/staking/starknet/solo.md @@ -1,124 +1,157 @@ +# ๐Ÿš€ Starknet Validator Solo Staking Guide + +**Starknet** is a Layer 2 network built on Ethereum, designed for scalability and performance using STARK proofs โšก +This guide walks you through the **complete process of becoming a Starknet validator and Solo Staker** using the DAppNode Starknet Staking package and its built-in UI. Let's get started! ๐ŸŽ‰ + --- -title: "๐Ÿš€ Starknet Validator Solo Staking Guide" -llm_description: "Guide to become a Starknet validator: create accounts, stake STRK, run attestation client." + +## โœ… Prerequisites + +- ๐ŸฆŠ A Starknet-compatible wallet: [Ready Wallet](https://www.ready.co/), [MetaMask (Starknet Snap)](https://snaps.metamask.io/snap/npm/consensys/starknet-snap/), or [Braavos](https://braavos.app/) +- ๐Ÿ–ฅ๏ธ Access to a synced Starknet full node (Juno or Pathfinder) +- ๐Ÿ’ฐ Minimum STRK balance: + - **Sepolia:** 1 STRK + - **Mainnet:** 20,000 STRK + --- -# ๐Ÿš€ Starknet Validator Solo Staking Guide +## 1๏ธโƒฃ Install the Starknet Staking Package on DAppNode -**Starknet** is a Layer 2 network built on Ethereum, designed for scalability and performance using STARK proofs. -This guide will walk you through the **complete process of becoming a Starknet validator and Solo Staker**, from wallet setup to running your attestation client and validator on DAppNode. +1. Open your DAppNode UI. +2. Go to the **Stakers** tab and select **Starknet** ๐ŸŽฏ +3. Follow the setup flow to install the package. -Weโ€™ll use **[Ready Wallet](https://www.ready.co/)** and Starknet's block explorer interfaces for all on-chain interactions. +![Stakers tab](https://github.com/dappnode/DAppNodePackage-starknetstaking-generic/raw/main/images/stakers-tab.png) ---- +During the installation process, you will need to enter: -## ๐Ÿ›  Prerequisites +- `Operational Address` โ€” The address for your **operator** account +- `Private Key` โ€” The private key from your operator account (needed for attestations ๐Ÿ”‘) -โœ… [Ready Wallet](https://www.ready.co/ready-wallet) installed -โœ… Access to a synced Starknet full node (Juno or Pathfinder) -โœ… Minimum STRK balance: +> ๐Ÿ’ก See step 2 for how to create and set up your accounts if you haven't already. -- **Sepolia:** 1 STRK -- **Mainnet:** 20,000 STRK +![Dappnode](https://github.com/dappnode/DAppNodePackage-starknetstaking-generic/raw/main/images/dappnode-package.png) --- -## 1๏ธโƒฃ Create Accounts +## 2๏ธโƒฃ Set Up Your Accounts -Weโ€™ll use **three Starknet accounts** in Ready: +Open the package UI from DAppNode. The **landing page** guides you through the entire setup! ๐Ÿงญ -- **staker** โ†’ Holds your stake -- **operator** โ†’ Runs the validator -- **rewards** โ†’ Receives rewards +![Landing page](https://github.com/dappnode/DAppNodePackage-starknetstaking-generic/raw/main/images/ui-landing.png) -๐Ÿ‘‰ Create them directly in Ready Wallet as _Standard Account_ +### ๐ŸฆŠ Choose Your Wallet -![Ready wallet create account](https://github.com/dappnode/DAppNodePackage-starknetstaking-generic/raw/main/images/argent-create-account.png) +Download and install one of the supported wallets: ---- +- [Ready Wallet](https://www.ready.co/) (Argent) +- [MetaMask](https://snaps.metamask.io/snap/npm/consensys/starknet-snap/) (Starknet Snap) +- [Braavos](https://braavos.app/) -## 2๏ธโƒฃ Fund and Deploy the Accounts +### ๐Ÿ‘› Create Three Accounts -- Fund your **staker** and **operator** accounts with the required STRK amount. +You need **three Starknet accounts** for security: -> Remember to add more than the minimum staking amount to cover gas fees. -> On Sepolia, you can use the [Starknet Faucet](https://starknet-faucet.vercel.app). +- ๐Ÿฆ **Staker** โ€” Holds your stake (cold wallet recommended) +- โš™๏ธ **Operator** โ€” Signs attestations and pays gas (hot wallet) +- ๐ŸŽ **Rewards** โ€” Receives earned rewards -- Deploy your **accounts** in Ready Wallet following these steps: -![account deploy](https://i.imgur.com/LzwWHl0.gif) +Create them in your wallet as _Standard Accounts_. ---- +![Ready wallet create account](https://github.com/dappnode/DAppNodePackage-starknetstaking-generic/raw/main/images/argent-create-account.png) -## 3๏ธโƒฃ Export your operator address private key +### ๐Ÿ’ธ Fund Your Accounts + +- Fund your **staker** account with the required STRK amount (plus extra for gas fees). +- Fund your **operator** account with a small amount for gas. + +> ๐Ÿงช On Sepolia, you can use the [Starknet Faucet](https://starknet-faucet.vercel.app). +> ๐ŸŒ‰ You can bridge STRK from Ethereum via [StarkGate](https://starkgate.starknet.io/) or swap on a Starknet DEX like [AVNU](https://app.avnu.fi/). + +### ๐Ÿ” Export Your Operator Private Key + +The staking package needs your **operator** private key for attestations. Export it from your wallet: -The _starknetstaking_ package needs your **operator** address private key to make the _attestations_. -You can obtain it from _Ready Wallet_ following these steps: ![export PK](https://github.com/dappnode/DAppNodePackage-starknetstaking-generic/raw/main/images/export-pk.gif) --- -## 4๏ธโƒฃ Approve spending +## 3๏ธโƒฃ Connect Your Wallet -1. Go to the block explorer STRK token contract [STRK (Sepolia)](https://sepolia.voyager.online/contract/0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d#writeContract) or [STRK (Mainnet)](https://voyager.online/contract/0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d#writeContract) -2. Connect your **staker** Ready Wallet. -3. In the implementation section, scroll down to the `approve` function (#19 on Sepolia #22 in Mainnet) -4. Click and fill in the data: - - **spender** โ†’ Starknet Staking Contract [Starknet Addresses](https://docs.starknet.io/resources/chain-info/#staking) - - **amount** โ†’ Amount in FRI (1 STRK = `1000000000000000000`) -5. Click the **Transact** button. +1. Open the package UI from DAppNode. +2. Click **Connect Wallet** in the header ๐Ÿ”— +3. Select your wallet and approve the connection. +4. The UI will verify you are on the correct network (Mainnet or Sepolia). -![Voyager approve](https://github.com/dappnode/DAppNodePackage-starknetstaking-generic/raw/main/images/voyager-approve.png) +![Connect Wallet](https://github.com/dappnode/DAppNodePackage-starknetstaking-generic/raw/main/images/ui-connect-wallet.png) + +Once connected, you'll see the **Dashboard** with your account balances! ๐ŸŽŠ + +![Dashboard](https://github.com/dappnode/DAppNodePackage-starknetstaking-generic/raw/main/images/ui-dashboard.png) --- -## 5๏ธโƒฃ Stake STRK +## 4๏ธโƒฃ Create Your Validator + +From the Dashboard, click **Create Validator**. The UI handles the full staking process for you! ๐Ÿช„ -1. Open the [Staking Contract on Voyager (Sepolia)](https://sepolia.voyager.online/contract/0x03745ab04a431fc02871a139be6b93d9260b0ff3e779ad9c8b377183b23109f1#writeContract) or the [Staking Contract on Voyager (Mainnet)](https://voyager.online/contract/0x00ca1702e64c81d9a07b86bd2c540188d92a2c73cf5cc0e508d949015e7e84a7#writeContract). -2. Connect your **staker** Ready Wallet. -3. In the implementation section, scroll down to the `stake` function (#1) -4. Click and fill in the calldata: - - **rewards_address** โ†’ Your rewards account - - **operational_address** โ†’ Your operator account - - **amount** โ†’ Amount in FRI (1 STRK = `1000000000000000000`) -5. Click the **Transact** button. +Create Validator -๐Ÿ“Œ **Staking contract addresses:** [Starknet Docs โ€“ Staking](https://docs.starknet.io/resources/chain-info/#staking) +### Step 1: Approve STRK โœ๏ธ -![Voyager write contract stake](https://github.com/dappnode/DAppNodePackage-starknetstaking-generic/raw/main/images/voyager-stake.png) +- Enter the amount you want to stake. +- Click **Approve STRK Allowance** and confirm in your wallet. + +### Step 2: Stake ๐Ÿฅฉ + +- Enter your **operator address** and **rewards address**. +- Click **Confirm Stake** and confirm in your wallet. + +The attestation process starts automatically and your validator will be live! ๐ŸŸข๐ŸŽ‰ --- -## 6๏ธโƒฃ Install the Starknet Staking Package on Dappnode +## 5๏ธโƒฃ Manage Your Validator -Now that youโ€™ve staked, you need to set up the validator client on your DAppNode. +The Dashboard shows your validator status with real-time data: -1. Open your Dappnode UI. -2. Go to the **DAppStore** and search for `starknetstaking`. -3. Click **Install**. +- ๐ŸŸข **Validator status** โ€” Active, Paused, Exiting, or Exited +- ๐Ÿ’ฐ **Staked amount** โ€” Total STRK staked +- ๐ŸŽ **Rewards earned** โ€” Accumulated rewards -During the installation process, you will need to enter the following information: +![Validator](https://github.com/dappnode/DAppNodePackage-starknetstaking-generic/raw/main/images/ui-validator.png) -- `Operational Address` โ†’ The address for the `operator` Account you created via Ready Wallet in step #1 -- `Private Key` โ†’ The private key from your operator account (exported from Ready Wallet in step #3) +### ๐ŸŽฎ Available Actions -![Dappnode](https://github.com/dappnode/DAppNodePackage-starknetstaking-generic/raw/main/images/dappnode-package.png) +- ๐ŸŽ **Claim Rewards** โ€” Withdraw earned rewards to your rewards account +- โž• **Add Stake** โ€” Increase your staked amount (approve + stake flow) +- ๐Ÿ“ **Change Reward Address** โ€” Update where rewards are sent +- ๐Ÿ”“ **Unstake** โ€” Initiate the unstaking process (irreversible) + +### โณ Unstaking Process + +Unstaking is a two-phase process: -The attestation process will start automatically, and your validator will be live. You can check rewards and more info via the `staker_info_v1` contract in Voyager [Mainnet](https://voyager.online/contract/0x00ca1702e64c81d9a07b86bd2c540188d92a2c73cf5cc0e508d949015e7e84a7#readContract) or [Sepolia](https://sepolia.voyager.online/contract/0x03745Ab04a431fc02871A139be6B93D9260b0Ff3E779AD9c8B377183B23109F1#readContract) +1. ๐Ÿšช **Initiate Unstake** โ€” Start the withdrawal process. This action is irreversible! +2. โฐ **Waiting Period** โ€” 7 days on Mainnet / 5 minutes on Sepolia. The UI shows a countdown. +3. โœ… **Complete Unstake** โ€” Once the waiting period ends, withdraw your staked funds. --- -## ๐Ÿง  Notes & Tips +## ๐Ÿ’ก Notes & Tips -- You can **claim rewards** or **increase stake** later from the same Voyager contract UI. -- Make sure your validator client runs **24/7** to avoid penalties. -- Always test your setup on Sepolia before moving to mainnet. +- โฐ Keep your validator client running **24/7** to avoid penalties. +- ๐Ÿงช Always test your setup on **Sepolia** before moving to Mainnet. +- ๐Ÿ” Use separate accounts for staker, operator, and rewards for better security. --- -**References:** +## ๐Ÿ“š References -- [Ready Wallet](https://www.ready.co/) -- [Voyager StarkNet Explorer](https://voyager.online/) -- [Starkscan Starknet Explorer](https://starkscan.co/) -- [Starknet Staking Docs](https://docs.starknet.io/architecture/staking/) -- [Juno Full Node](https://github.com/NethermindEth/juno) +- [Ready Wallet](https://www.ready.co/) +- [Braavos Wallet](https://braavos.app/) +- [MetaMask Starknet Snap](https://snaps.metamask.io/snap/npm/consensys/starknet-snap/) +- [Voyager StarkNet Explorer](https://voyager.online/) +- [Starknet Staking Docs](https://docs.starknet.io/architecture/staking/) +- [Starknet Chain Info & Contract Addresses](https://docs.starknet.io/resources/chain-info/#staking) +- [Juno Full Node](https://github.com/NethermindEth/juno)