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