Overview
While Starknet is currently still centralized, it is gradually moving towards employing a staking protocol, handing over the responsibilities of producing, attesting, and proving blocks to validators. To facilitate this gradual implementation, the protocol’s architecture is divided into several components, ensuring maximum flexibility and ease of upgrades. However, anyone holding STRK or BTC can already stake their tokens and earn rewards based on their level of participation by following a few simple steps.Starting Q3 2025, Starknet’s staking protocol enables BTC holders to lock their assets on Starknet and earn staking rewards in STRK, by supporting a curated selection of tokenized BTC representations (“wrappers”) for direct BTC staking on Starknet.To review all BTC wrappers, use the staking contract’s
get_active_tokens function.- Staking dashboards by Endur, Voyager, AlignedStake, and Staking Rewards
- Staking on starknet.io
starknet-stakingon GitHub (deployed tag)- Starknet launches phase 1 of its staking initiative on mainnet on the Starknet blog
- SNIP 28: Staking V2 proposal on the Starknet community forum
- SNIP 31: Bitcoin staking on Starknet
Roadmap
Naturally, handing over the responsibility for maintaining and securing Starknet to validators in one day is neither feasible nor desirable. Instead, the staking protocol is implemented in incremental phases, with each phase bringing additional requirements from validators until they fully maintain and secure the network. The protocol is currently in the second of four phases, illustrated in following figure:
Protocol
The following sections describe the details of Starknet’s staking protocol. The parameters used in the protocol are summarized in the following table:Roles
Starknet’s staking protocol features two options for participation:- Staking directly as validators: Staking a minimum of 20,000 STRK and earning rewards by handling any responsibilities the protocol requires
-
Staking indirectly as delegators: Delegating STRK or BTC to validators who allow delegation and sharing in their rewards without handling any of their responsibilities
Validators can choose whether to allow delegation or not.
Epochs
Starting from its second phase, the staking protocol introduces the notion of epochs (similarly to many other protocols). Epochs represent checkpoints, such that changes made in epoch are applied in epoch , where is a new latency parameter. For example, the following figure illustrates a scenario where in epoch validator has 50K STRK staked and someone delegates an additional 10K STRK to them, and in epoch someone undelegates 30K STRK from :
Validator power
The staking power of a validator staking amount of STRK and amount of BTC is defined as follows: where:- is a parameter determining BTC’s weight in the staking power
- and are the total STRK and BTC staked, respectively
Validator responsibilities
Starting from its second phase, the staking protocol requires validators to attest to blocks by running one of the followings:- The Juno full node with Nethermind’s attestation tool
- The Pathfinder full node with Equilibrium’s attestation tool
- is the number of blocks in an epoch, termed epoch length
- is the number of blocks applicable for attestation submittal, termed attestation window
attest transaction, which must be included within the attestation window. For example, if and is the relative block number assigned to validator , then must submit an attest transaction between the blocks whose relative number within the epoch are and .
In the second phase of the protocol, each Validator is required to perform only one attestation per epoch.
attest transaction includes the block hash of the attested block, ensuring validators actively use full nodes, as they need to continuously track block hashes. Additionally, the attestation is publicly verifiable, ensuring validators’ reliability is publicly tested — a crucial prerequisite before handing them any core responsibilities.
Rewards
Staking rewards are issued in newly minted STRK tokens, based on a minting curve. The minting curve balances participation and inflation by adjusting the distributed rewards according to the total STRK locked in the protocol. The total minting rate percentage () is defined as follows: where:- is the effective inflation coefficient
- is the percentage of STRK staked out of the total STRK supply
- For STRK:
- For BTC:
- is the total BTC staked
- is the total STRK supply
As previously described, stakers that enter the protocol on epoch will start getting rewards only on epoch , and stakers that signal an intent to exit the protocol on epoch will still get rewards until epoch .
Commissions
The staking protocols enables validator to set a commission that is deducted from their delegators’ rewards. Starting from its second phase, the staking protocol allows validators to increase their commission. To avoid an unexpected increase in commissions, validators must commit to a certain maximum commission and the last date (in epochs) that this commitment is relevant for. Until this date arrives, validators cannot increase their commission beyond , but can freely change their commission in the range .Latencies
The following latencies are set in place:- To disincentivise sudden large withdrawals that could destabilize the network, funds are subject to a 7-day lockup after signaling an unstake intent, during which no rewards are earned and funds cannot be withdrawn.
- Starting from the second phase of the protocol, to prevent delegator from switching too quickly between validators while still promoting a competitive delegation market, a switch intent that is signaled on epoch takes effect only on epoch .
Addresses
To reduce exposure to threats and enhance security, multiple addresses are defined for both validators and delegators:-
Validator addresses:
- Staking address: Used for staking, adding stake, and unstaking. This address is only needed when entering or exiting the protocol and handles large amounts of STRK, and therefore is best kept by a cold wallet with minimal activity.
- Rewards address: Used for receiving rewards. This address is only needed when receiving rewards, and therefore is best kept by a cold wallet.
- Operational address: Used for operational purposes, such as block attestations (starting from the protocol’s second phase), block proposing (starting from the protocol’s third phase), etc. This address is used frequently and doesn’t handle large amounts of funds, and therefore is best kept by a hot wallet. Starting from the protocol’s second phase, however, hacking the operational address can lead to a lose of yield for the validator and its delegators.
- Pools addresses: Used for pooling stake delegations for a specific token. For each token that a Staker is open to receiving delegations in, a unique delegation pool contract (with its own address) is created for users to delegate funds to. These pool contracts are automatically deployed for the Staker when they invoke the staking contract’s
set_open_for_delegationfunction.
-
Delegator addresses:
- Staking address: Used for delegating stake, adding stake and unstaking. This address is only needed when entering or exiting the protocol and handles large amounts of STRK, and therefore is best kept by a cold wallet with minimal activity.
- Rewards Address: Used for receiving rewards. This address is only needed when receiving rewards, and therefore is best kept by a cold wallet.
Components
The implementation of Starknet’s staking protocol is divided into several contracts, summarized in the following figure:
Procedures
The following tables detail the procedures enabled by the staking protocol for both validators and delegators, along with the instructions to perform them. To invoke onchain contracts, useStarknet Foundry's sncast, Starkli, or a block explorer. To get the onchain addresses of the staking and STRK contracts, see Important addresses.