STRK

Introduction to zkLend STRK staking

STRK staking represents the initial phase of a decentralized staking mechanism on Starknet, allowing participants to earn rewards by locking their STRK tokens. This initiative aims to enhance network security while providing users with an opportunity to engage actively in the ecosystem.

zkLend is proud to be one of the validators for STRK staking, running full nodes and managing the staking process. Users may delegate their STRK to zkLend, and zkLend will stake these tokens on behalf of users into the protocol.

Why delegeate with zkLend?

  • Zero Fees: 100% of rewards go straight to you— no commission.

  • No Hassle: No need to run a full node or meet the 20K $STRK minimum. Just stake directly through the zkLend dApp.

  • Fast Withdrawals: Faster withdrawals with innovative design, leading to greater flexibility to control your assets, your way.

  • Composability: zkLend will issue a deposit certificate token (kSTRK) to the users, representing their staked position inclusive of rewards earned. kSTRK will be usable across DEXes, Money Markets, and other DeFi applications (coming soon).

  • Secured: zkLend’s staking contract is audited by Nethermind Security with zero issues found.

All funds are subjected to a native STRK staking security lockup period (i.e. 21 days) after initiating an unstake transaction. However, zkLend has designed a unique tranching mechanism which results in faster withdrawals for most cases.

Things to Note

  • There is no need for users to separately collect staking rewards. They are periodically collected by zkLend and deposited into the staking pool. This means that the conversion rate of a user's deposit certificate token to STRK will therefore increase over time.

  • As we are currently in the first phase of staking on Starknet, the staking architecture is expected to change and the contracts are designed with security and upgradability in mind. Each contract is modular, allowing for targeted upgrades and improvements without affecting the entire system.

  • Rewards are based on the minting curve set by Starknet. This will fluctuate based on the total % STRK supply locked and the maximum theoretical inflation percentage, currently set at 1.6%.

For more details on Starknet's staking architecture, refer to https://docs.starknet.io/staking/overview/

kSTRK Supporting Platform

kSTRK is a fungible deposit certificate token or Liquid Staking Token (LST) on Starknet representing the staked STRK positions on zkLend, allowing STRK token holders earn yield while maintaining custody and liquidity.

With kSTRK, users will be able to get

  • Yield: Deposit kSTRK to zkLend in order to receive bonus yield via DeFi Spring incentives (subject to availability), while accumulating STRK staking rewards.

  • Leverage: Use kSTRK as collateral to borrow against other assets on zkLend and Nostra (soon).

  • Swap: Trade kSTRK for STRK on Ekubo, or add liquidity to enjoy trading fees

Guide

How to stake?

Here are the steps:

  1. Connect your Starknet wallet to zkLend

  2. Select 'Staking' at the top navigation bar

  3. Click on 'Stake' under STRK

  4. Enter the amount of STRK and/or zSTRK (i.e. deposited STRK) to stake

  5. Press 'Stake' and confirm the transaction on your wallet

How to unstake?

Here are the steps

  1. Click on ‘Unstake' under STRK

  2. Press ‘Unstake’ again and confirm the transaction on your wallet.

  3. Unstake’ and confirm the transaction on your wallet.

  4. Click ‘Withdraw’ once the unstaked STRK tokens are for withdrawal.

With zkLend’s Tranche Mechanism, you may experience full or partial immediate unstaking. This means you can instantly access the available portion of your staked STRK, while only the remaining amount will be subject to a cooldown period. The cooldown period begins once users initiate an unstake transaction. During this time, the staked STRK tokens would not accrue further rewards.

Concepts

What is kSTRK?

Whenever users stake their STRK tokens, deposit certificate tokens (in the form of kSTRK tokens) are issued to the users, representing their claims on the pool of staked funds. The amount of kSTRK tokens is based on the prevailing kSTRK:STRK exchange rate at the time of staking.

Exchange Rate and Yield-Bearing

The exchange rate represents the current conversion ratio of kSTRK to STRK. The rate increases over time as staking rewards are accrued, reflecting growth in users’ staking position. In essence, the exchange rate captures the auto-compounding (or reinvestment) component of STRK rewards for kSTRK holders.

Tranche Mechanism

The Liquid Staking protocol (“Protocol”) functions by collecting funds from users and delegating them to a pool of diversified stakers. The Protocol periodically collects rewards from said delegations, increasing the size of the pool, and hence the value of each kSTRK token.

This process is illustrated in the following diagram:

The Protocol divides it into tranches, with each one being of a fixed size which can be adjusted to optimize cost and staking time. The Protocol only delegates or undelegates in units of tranches. A tranche that is not full is known as an ‘open tranche’. As such, there will always be an open tranche in the Protocol. When the Protocol is first deployed, it contains a single tranche that is open and empty.

Withdrawal

The Protocol maintains a withdrawal queue. Whenever a user makes a withdrawal request by burning their kSTRK tokens, the following happens:

  1. If the withdrawal queue is empty, the Protocol takes as much funds as needed from the open tranche in an attempt to fulfill the request.

  2. If the request is still not fulfilled after step 1, it is then queued to wait for a fulfilment.

There are several ways that withdrawal requests in the queue can be fulfilled:

  • New deposits

When the Protocol receives deposits through new STRK staking requests from other users, instead of directly filling the open tranche it attempts to fulfil as many withdrawal requests as possible. Only when the withdrawal queue becomes empty that the excess deposits would be directed into the open tranche.

  • Tranche deactivation

Whenever a new unstake request is queued into the withdrawal queue, the Protocol checks whether the inflight undelegating tranches represent enough funds to cover all requests in the withdrawal queue. If not, the undelegation process is started for more tranches.

When a tranche completes the undelegation queue, its funds are used to fulfill the withdrawal queue. Excess funds, if any, go into the open tranche. Also if the withdrawal queue is cleared while a tranche is deactivating, the deactivation will be reversed to maximize pool efficiency.

Roadmap

Milestone
Timeline
Status

Mainnet

26th Nov 2024

Adding kSTRK to zkLend Money Markets

Dec 2024

Multivalidator Support

Q2-Q3 2025

Expand integration across Starknet DeFi

Ongoing effort

Relevant Contracts

kSTRK: 0x045cd05ee2caaac3459b87e5e2480099d201be2f62243f839f00e10dde7f500c

zkLend STRK Staking: 0x033d152598873a307b9abdd7bd5d479cadf1814db4bf87e0f0d61a8f84d0bf63

Brand Kits

kSTRK logo

kSTRK color palette

Last updated