Liquid Staking on Energy Web X

What is Liquid Staking?

In traditional staking systems, tokens are locked when delegated to validators. Locked tokens cannot be transferred or used in other on-chain applications. This reduces token utility because the staked capital becomes temporarily illiquid.

The Liquid Staking Pallet on Energy Web X removes this constraint and provides a simplified and powerful staking experience. Token holders who stake $EWT through the Liquid Staking Pallet (either via the EWX Staking App or via extrinsic calls through Polkadot.JS) receive liquid staking tokens in return, stEWT. The staked $EWT tokens enter a common pool managed by the Liquid Staking Pallet.

Liquid Staking Enables:

  • Continued participation in network security through the staking of $EWT

  • Ongoing eligibility for staking rewards, with rewards from the pooled stake automatically compounded

  • Enhanced liquidity and utility, as stEWT remains transferable and can be used across additional applications

    • stEWT can be used by Verified Compute Operators (formerly Worker Node Operators) to stake into Solution Groups, unlocking additional rewards and utility

  • A simplified staking experience, without the need to manually delegate to collators or manage reward restaking.

How Liquid Staking Works on EWX

Liquid staking on Energy Web X provides a simplified, pooled, and highly flexible staking experience. Instead of delegating to individual collators, users deposit EWT into a shared pool managed by the Liquid Staking Pallet.

The Liquid Staking Flow:

  1. Users deposit EWT into the liquid staking pool

    • When users stake, their $EWT is transferred into the pallet’s pooled account.

    • Liquid Staking can be performed via the EWX Staking App, or through an extrinsic call from Polkadot.JS.

  2. The pallet acts as a single nominator

    • The pallet stakes the pooled $EWT across a governance-approved whitelisted set of collator nodes.

    • This whitelisted set ensures that only verified, trusted collators are used for staking.

  3. Receive stEWT in return

    • For every $EWT staked, the user receives stEWT based on the current pool exchange rate.

    • stEWT represents the user's share of the staking pool.

  4. stEWT is liquid and transferable

    • Unlike bonded $EWT, stEWT is not locked.

    • stEWT can be held, transferred and used in applications, such as the Verified Compute Solution Groups.

  5. Rewards automatically increase the value of stEWT

    • As collators produce blocks, the pallet continuously earns staking rewards.

    • These rewards are automatically re-staked by the pallet (auto-compounding).

    • Since no new stEWT is minted during restaking of rewards, the value of each stEWT, in terms of EWT, rises over time.

Liquid staking gives $EWT holders a simple way to participate in network security and retain flexibility to use their assets.

Understanding the Exchange Rate

The liquid staking system uses an exchange rate to determine how much $EWT each stEWT is worth at any point in time. This rate increases over time as staking rewards are earned and automatically restaked.

The model uses the following formula:

Where:

  • total_native_staked = amount of $EWT actively staked in the pool (including compounded rewards)

  • total_voucher_supply = amount of stEWT issued to users

At launch of the pool, the system begins with a 1:1 exchange rate. Over time, the staked EWT earns staking rewards and the exchange rate changes.

Example:

  1. Initial Pool State

    1. At launch, Alice stakes 100 $EWT and Bob stakes 200 $EWT through the Liquid Staking Pallet.

    2. The pallet issues voucher tokens representing their stake in the pool.

    3. Alice receives 100 stEWT and Bob receives 200 stEWT.

    4. The pallet acts as a single nominator, and stakes the 300 $EWT tokens with the whitelisted collator set, while storing Alice and Bob's individual stake contributions.

    5. The exchange rate at this time is 1:1, as there are 300 $EWT staked through the pallet, and 300 stEWT in circulation.

    6. Exchange Rate 1 : 1

  2. After Staking Reward Distribution

    1. After a staking reward distribution, e.g. from a growth event, the pallet receives 30 $EWT as staking rewards.

    2. The pallet automatically restakes the rewards, meaning there is now 330 $EWT staked through the pallet

    3. Since no new stEWT is issued for restaking events, there are still 300 stEWT in circulation.

    4. Therefore, the exchange rate of stEWT:EWT becomes 1:1.10 (300:330)

    5. Exchange Rate 1 : 1.10

How Unstaking Works with the Liquid Staking Pallet

Unstaking in the liquid staking system follows a multi-step lifecycle. Unlike staking, which is a simple, single-action process, unstaking requires coordination with the underlying staking protocol, must respect network constraints, and is processed in controlled batches.

Because the Liquid Staking Pallet acts as a single unified nominator, all unstake requests pass through a shared queue. Towards the end of each era, the pallet batches the pending user requests and submits one unbonding call to the Parachain Staking Pallet for a selected collator from the curated whitelisted collator set.

The Parachain Staking Pallet allows only one pending unbonding request per nominator–collator pair, which means the Liquid Staking Pallet cannot submit another request for that collator until the scheduled unbond has passed the Unstake Delay and has been executed. Only then can that collator be used again for additional unstake processing.

Towards the end of the next era, the pallet selects a different collator (the one with the highest stake that does not already have a pending unbond) and submits the next batched request. This process continues across the whitelisted collator set.

For these reasons, unstaking operates with a dynamic delay ( ≥ Parachain Staking UnStake Delay), dependent not only on the network’s unbonding period but also on queue length, collator availability, and block weight limits.

Lifecycle of an Unstake Request

The unstaking process has four distinct stages, most of which occur automatically in the background.

  1. Request Unstake

    1. The user initiates an unstake request (either through the EWX Staking App or by calling the request_unstake extrinsic)

      1. The palelt burns the user's stEWT and calculates the amount of $EWT to redeem for the user based on the current exchange rate.

      2. The calculated amount of $EWT is added to the unstake queue.

  2. Scheduling the Unstake

    1. Late in each era, the pallet acts on the queued unstake requests.

      1. One collator is selected to Unstake from. The pallet chooses the highest-staked collator without a pending unbond request.

      2. User requests are batched together until the collator's available stake is filled.

      3. A single unbonding call is submitted to the Parachain Staking Pallet.

      4. For each user included in the batch, the Liquid Staking Pallet creates an UnlockChunk.

        1. An UnlockChunk is a record of the amount owed to the user and era in which it will be claimable.

        2. These UnlockChunks can be viewed as temporary IOUs while the staking system processes the requests.

  3. Funding the UnlockChunks (IOUs)

    1. For each matured UnlockChunk, the Liquid Staking Pallet claims the unbonded $EWT from the Parachain Staking Pallet and transfers it into the Unstaking Pot.

    2. This converts the UnlockChunks into actual withdrawable $EWT.

  4. Final Claim

    1. Once the user's UnlockChunks are matured and funded in the Unstaking Pot, the user can claim the $EWT (either through the EWX Staking App or via claim_unstake extrinsic call via Polkadot.JS).

    2. The pallet then sums all the user's claimable chunks, applies any configured unstake fee and transfers the $EWT to the user.

Minimum Unstake Amount & Unstake Fee

To keep the staking system efficient, fair, and resilient to spam, the Liquid Staking Pallet enforces safeguards around unstaking. These safeguards ensure that the shared unstake queue remains manageable and that the pallet’s batch-processing system can operate predictably even under heavy load.

Minimum Unstake Amount

All unstake requests enter a shared queue that is processed gradually by the pallet. A high volume of small unstake requests could flood the queue, causing:

  • Excessive storage usage

  • Increased processing weight

  • Congestion of the single available unbonding slot per collator

  • Delays for all other users waiting to exit.

To prevent this, the pallet enforces a minimum unstake amount. Requests below this threshold are rejected.

This ensures predictable queue behaviour, fair access for all users and protection against congestion from micro-unstake spam.

Unstake Fee

When the user finally claims their unstaked EWT, either via the EWX Staking App or using the claim_unstake extrinsic, a small unstake fee is applied. This fee does not apply at the moment the unstake is requested, only at the moment of claiming the unstaked $EWT.

The fee serves several purposes:

  • Deterrent against spamming the network with many unstake and restake requests, since a user would incur an economic cost for such actions

Note: the fee is returned to the liquid staking pallet and restaked, thus increasing the value of stEWT and benefiting all remaining stakers.

This means users are deterred against frequent churning which could cause congestion to the system while long-term stakers share in redistributed fees.

Key Configuration Parameters

Below is the configuration set that governs the behaviour of the Liquid Staking Pallet. These parameters ensure predictable performance, spam resistance, and fair operation under real network constraints.

Parameter
State
Rationale

WhitelistedCollators

Entire candidate pool (initially)

The list of collators to which the liquid staking pallet will aggregate user stake. Curated list of high performing nodes. At the start all collators are curated (no permissionless onboarding).

MinUnstakingAmount

50 stEWT

This needs to be high enough to prevent spamming and congestion of the queue.

MinStakingAmount

150 EWT

Should be greater than the MinUnstakingAmount so that funds will not get stuck as stEWT value appreciates relatively to EWT.

PercentageUnstakeFee

0.5%

The unstake fee acts as a spam deterrent by adding a cost to repeated unstake requests that could otherwise flood the queue and degrade system performance. All fees are returned to the staking pool and automatically restaked, increasing the stEWT exchange rate and benefiting all holders.

Unstake Fee Destination

Liquid Staking Pallet (for restaking)

The fees are to be restaked by the Liquid Staking Pallet, increasing the stEWT : EWT exchange rate, thus distributing the value to all liquid stakers.

Token holders can perform delegated staking either through the EWX Staking Web App or through Polkadot.js.

Last updated