Skip to main content

Validator

Become a Staking Validator

Staking on Starknet provides an opportunity to contribute to network security and earn rewards by becoming a validator. Check out the Becoming a Validator guide to learn more about the validator process.

1. Prerequisites

  • STRK Tokens: At least 20,000 STRK is required for staking. For the latest details, check out the Staking Protocol Details.
  • Node Setup: The latest version of Juno installed and running on your machine.
  • Starknet Wallet: A compatible wallet, like Braavos or Argent.

2. Create 3 different wallets and give it a name

tip

Make sure 3 Wallets deployed by using STRK to send and receive at least 0.1 STRK

  • STAKING_ADDRESS: Hold 20K STRK + 1 STRK as fee
  • REWARDS_ADDRESS: Use this address to run smart contract and receive the reward
  • OPERATIONAL_ADDRESS: Hold 100 STRK for attesting

3. Approving STRK transfer

To stake your STRK tokens, you first need to approve the transfer of STRK tokens from your staking address to the Staking contract.

spender (Starknet Staking Contract): 0x00ca1702e64c81d9a07b86bd2c540188d92a2c73cf5cc0e508d949015e7e84a7

amount (20K): 20000000000000000000000

  • Transact

4. Locking STRK

Once the transfer is approved, you can lock your STRK tokens into the Staking contract by using your staking address to invoke the Staking contract’s stake function

reward_address: Fill the reward address you has created before

operational_address: Fill the operational address you has created before

amount (20K): 20000000000000000000000

  • Transact

5. Setting commission

Once your STRK tokens are locked, you can initialize your commission by using your staking address to invoke the Staking contract’s set_commission function

commission: 1000

  • Transact
tip

The commission rate to set for your delegation pool, as a percentage with precision where 10,000 represents 100% (1000 represents 10%)

6. Allow BTC Staking

All token contracts you need to open delegation pools are set in the staking contract by calling the set_open_for_delegation function with each token's address.

token_address:

WBTC

0x03fe2b97c1fd336e750087d68b9b867997fd64a2661ff3ca5a7c771641e8e7ac

SolvBTC

0x0593e034dda23eea82d2ba9a30960ed42cf4a01502cc2351dc9b9881f9931a68

tBTC

0x04daa17763b286d1e59b97c283c0b8c949994c361e426a28f743c67bdfe9a32f

LBTC

0x036834a40984312f7f7de8d31e3f6305b325389eaeea5b1c0664b2fb936461a4
  • Transact