Mission 5 — Stake with REX
REX, short for REssource eXchange, has existed since the EOS era, but its economics have changed significantly. Originally, REX returns came mainly from economic activity flowing into the REX pool. In 2024, REX was redesigned into a broader staking-reward mechanism with a dedicated reward allocation, a four-year halving schedule, and a longer unstaking period.
In this mission, you will stake $A using Blocksfinity, inspect what happens on-chain, understand the REX savings and 21-day unstaking process, and learn where REX rewards came from historically versus where they come from today.
What am I actually doing?
Staking means committing tokens to a protocol instead of keeping them immediately liquid and spendable. The purpose and reward mechanism depend on the blockchain.
On Vaulta, the staking system uses REX.
When you stake $A into REX, you are exchanging liquid $A for a REX position. That position participates in the economics of the REX pool and can increase in $A value over time.
It is not equivalent to putting money into a bank account, and the displayed yield is not guaranteed.
Key idea: When you stake $A with REX, your $A is no longer immediately liquid. In return, you hold REX tokens that participates in Vaulta's staking-reward system.
What is REX?
REX stands for Resource Exchange.
When you stake $A, the protocol gives you REX tokens in return. Vaulta's current Staking FAQ explicitly describes this conversion: when Vaulta tokens are staked, the user receives REX. vaulta.gitbook.io
REX is best thought of as an internal accounting position in the protocol, rather than another normal token that you buy because you expect its market price to rise.
Conceptually:
Liquid $A
↓
Stake into REX
↓
Receive a REX position (REX tokens)
↓
REX tokens represent your share of the REX poolThis is important because REX rewards are reflected in the value represented by your REX position. They do not need to arrive in your account as a separate little payment every day.
Where did REX yield originally come from?
REX was created during the EOS era.
A user could lend $EOS into REX and receive REX tokens representing their position in the pool.
The original REX model did not have today's dedicated staking-reward allocation. Instead, its returns were generated by economic activity that added value to the REX pool.
The original EOSIO REX implementation identifies the sources as:
payments from CPU and NET resource loans;
RAM trading fees, when those fees were routed to REX;
premium account-name auction proceeds, when those proceeds were routed to REX.
Those revenues were added to the value backing the REX pool.
For this mission, the important economic relationship is simply:
ORIGINAL REX
Network economic activity
↓
Fees and other system revenue
↓
REX pool
↓
More $EOS backing the REX pool
↓
Higher $EOS value for the REX stakersKey idea: Originally, REX yield came mainly from network economic activity flowing into the REX pool. It was not primarily an inflation-funded staking reward.
The original REX system also imposed a much shorter maturity period: newly acquired REX generally needed to mature for approximately four days before it could be sold. It already had a savings mechanism that could hold REX indefinitely without allowing it to mature. GitHub

What changed with REX 2.0?
In 2024, while the network was still called EOS, REX became the mechanism for a substantially redesigned staking program.
The major change was the creation of a pre-allocated 250 million $EOS token staking-reward pool.
Vaulta's current Staking FAQ says that this reward pool is released according to a four-year halving schedule. It describes the first four-year period as distributing 125 million $EOS tokens in total, equivalent to 31.25 million $EOS tokens per year during that period. vaulta.gitbook.io
At the same time, REX's lockup period was extended from approximately 4 days to 21 days. Vaulta's current tokenomics documentation confirms both the REX 2.0 staking-reward integration and the change from 4 to 21 days.
The new model therefore looks more like this:
CURRENT REX STAKING
Pre-allocated staking reward reserve
↓
Scheduled reward release
↓
REX pool
↓
Value accrues to REX positionsThis is fundamentally different from the original REX model.
Is this inflation?
Not in the old sense of continuously creating new tokens every year without a fixed maximum supply.
Vaulta's current tokenomics documentation states that the network moved to a fixed maximum supply of 2.1 billion tokens and eliminated ongoing inflation. Token distribution instead follows predetermined allocations and four-year halving cycles.
So it is more precise to describe modern REX rewards as scheduled token distribution from a pre-allocated staking reserve, rather than simply saying “REX is paid from inflation.”
The broader Vaulta tokenomics documentation also states that system fees can be allocated between block producers and REX participants. However, Vaulta's REX-specific Staking FAQ identifies the 250 million-token pre-allocated reward pool as the source of staking yield.
Key idea: The defining change in modern REX is that staking rewards no longer depend mainly on the old REX fee model. A dedicated staking-reward allocation is now distributed through REX according to a halving schedule.
What does the four-year halving mean?
The staking reserve is not distributed at the same rate forever.
Vaulta's Staking FAQ describes the halving process:

The important concept is not the exact APY that results.
The important concept is:
The amount scheduled for distribution decreases over time.
That means today's staking return should never be projected indefinitely into the future.
What changed when EOS became Vaulta?
The change from EOS to Vaulta in 2025 did not restart REX or introduce another new tokenomics model.
$EOS was replaced by $A as the network's native token through a 1:1 token swap. Vaulta explicitly states that this was not a fork or blockchain reset and that the existing token supply, allocations and vesting schedules remained unchanged. Existing staked $EOS also remained staked. Vaulta blog
Why does the APY change?
APY = Annual Percentage Yield
Vaulta's Staking FAQ gives the simplified yield relationship as:
annual staking reward
─────────────────────
total amount stakedAs the total amount participating in REX changes, the resulting yield changes too. Future halvings also change the amount being distributed.
Blocksfinity makes another useful distinction in its REX interface: the displayed APY is calculated from actual recent pool growth, rather than presented as a guaranteed forecast.
So if Blocksfinity displays an APY around 9%, that does not mean:
“I am guaranteed approximately 9% for the next year.”
It means the interface is annualizing observed REX-pool performance under recent conditions.
Important: REX rewards are variable. The displayed APY can change each day, and staking introduces a liquidity restriction because the unstaking process takes approximately 21 days.
Stake liquid $A with REX
1. Open Stake & Earn
Login to Blocksfinity:

Open Blocksfinity → Stake & Earn.
https://www.blocksfinity.com/rex
Scroll down and select Lend liquid $A.

Before entering an amount, remember what you are doing:
Liquid $A
↓
REX staking position
↓
$A is no longer immediately spendable2. Enter the amount of $A
Enter a small amount of $A for the exercise.

Blocksfinity also displays information such as the current APY and any existing withdrawal queue.
Review the amount carefully before continuing.
3. Inspect the signing request
When you continue, Blocksfinity prepares the on-chain transaction and sends it to the Authenticator for approval.
In the flow demonstrated in this mission, you may see actions including:
core.vaulta::noop
core.vaulta::deposit
core.vaulta::buyrex
The important actions for understanding REX are deposit and buyrex.
The current core.vaulta source code shows that deposit takes the user-facing $A amount and forwards it into the underlying REX system, while buyrex uses the deposited amount to purchase the REX position. GitHub
The reason you still encounter legacy $EOS terminology inside parts of the system-contract implementation is historical architecture. The action you are performing today is a $A-facing Vaulta action through core.vaulta.
Checkpoint: Before approving, verify the Vaulta account, permission, amount of $A, contract and requested actions. Do not approve a transaction simply because Blocksfinity opened it.

Approve/Sign the transaction.
What happened to the $A?
Your liquid $A has now become a REX position.
In the current Stake & Earn overview, you will see both the REX position and the amount held in REX Savings.

Conceptually:
Your $A
↓
deposit
↓
buyrex
↓
REX
↓
REX SavingsThe current Vaulta system contract includes configurable logic that processes newly purchased REX directly into the savings state, and buyrex invokes that savings processing after creating the REX position. GitHub
Also doube check your new account balances:
https://www.blocksfinity.com/account
Available $A should have decreased while REX should have increased:

What does REX Savings mean?
The word savings is easy to misunderstand.
Savings is not what generates the reward.
Blocksfinity explicitly tells you that moving REX into savings does not provide additional rewards.
Instead, savings controls maturity and liquidity.
REX in Savings
↓
Held indefinitely
↓
No 21-day exit countdown runningAs long as REX remains in savings, it stays there until you decide to begin unstaking.
Key idea: REX Savings is about the exit timeline, not about earning a higher reward.
Move REX out of savings
To begin the unstaking process, open Blocksfinity → Stake & Earn.
https://www.blocksfinity.com/rex
Scroll down and select Move to savings and choose the amount you want to move from savings.

Blocksfinity prepares the action:
core.vaulta::mvfrsavings
The current Vaulta contract shows that mvfrsavings removes the selected REX from savings and assigns it a future maturity time. GitHub
In the current staking configuration, that maturity period is approximately 21 days. Vaulta's Staking FAQ states that the staking period has a minimum of 21 days and that unstaking must be initiated manually. vaulta.gitbook.io
The lifecycle now becomes:
REX Savings
↓
mvfrsavings
↓
21-day unstaking period
↓
Matured REX
After signing click Lend liquid A. On the right side, Blocksfinity's withdrawal queue shows the amount and approximately how long remains before it can be unstaked.

As soon as 21 days have passed, you will be able to withdraw. Enter the amount and click Unlend A from REX.
Do I still earn rewards during and after the 21 days?
Yes.
Moving out of savings does not immediately sell the REX position.
Vaulta's current Staking FAQ states that an unstaking position continues producing yield until the staking period ends and the position is claimed or automatically claimed through another staking action. vaulta.gitbook.io
That means you can deliberately start the 21-day clock while continuing to hold the REX position during and after that period until you withdraw (unlend from REX).
For example:
Stake $A
↓
REX enters Savings
↓
Move REX from Savings immediately
↓
Wait approximately 21 days
↓
REX becomes matureThis can be useful if you want your position closer to liquidity instead of leaving it indefinitely in savings.
The trade-off is that after maturity, the position is ready to be sold.
What happens after 21 days?
Completing the 21-day period does not mean that $A magically appears as liquid $A in your account.
There are two concepts to understand:
Matured REX
↓
sellrex
↓
Value returned to your REX fund
↓
withdraw
↓
Liquid $ASell REX
sellrex converts matured REX back into its underlying value.
Withdraw
withdraw takes the available value from the REX fund and returns it to your liquid $A balance.
The current core.vaulta wrapper exposes both sellrex and withdraw. Its withdraw implementation performs the underlying withdrawal and then converts the result back into the user-facing $A token. GitHub
Key idea: Selling REX and withdrawing $A are technically separate operations.
The Blocksfinity explorer combines those two actions into one button Unlend A from REX
Matured REX can also be sold automatically
There is one additional behavior worth understanding.
Vaulta's current Staking FAQ states that after the 21-day period has completed, performing another staking-related operation can cause a matured REX position to be sold automatically.
The current system contract contains this behavior as well: buyrex processes matured REX after the new purchase, and the same processing is used in other REX actions. GitHub
For example:
Stake 1 $A
↓
Start unstaking 1 $A
↓
21 days pass
↓
REX is mature
↓
Later stake another 100 $A
↓
The matured REX (1 $A) can be automatically soldBut remember:
Sold does not necessarily mean withdrawn.
The resulting value can still be sitting inside the REX fund waiting to be withdrawn as liquid $A.
If this is the case, Blocksfinity offers buttons to execute each action manually if needed.
Open Blocksfinity → Stake & Earn.
https://www.blocksfinity.com/rex
Scroll down and select Lend liquid $A.
Scroll down until you see the section “Manual actions”:

What if the REX cannot be sold immediately?
There is another liquidity consideration.
The REX system can queue a sellrex order when it cannot fill the sale immediately. The current Vaulta system-contract code explicitly creates a queued REX sell order when a sale cannot be filled. GitHub
So the 21-day maturity period tells you when your REX becomes eligible to be sold.
It does not create an absolute guarantee that every sale will always settle instantly regardless of REX-pool liquidity.
Important: “21 days” means the REX reaches maturity. Actual completion of a sale can still depend on available REX liquidity.

Move already-staked $A directly into REX
Blocksfinity also provides Lend staked $A which are allocated to CPU/NET.
You already learned about the separate resource-staking state (allocate $A to CPU/NET) in the resource mission.
For REX, the only concept you need is this:
If your account already has $A in that staked state (allocated to CPU/NET), Blocksfinity can move selected value directly into REX instead of first taking the normal unstake-and-return-to-liquid route.
The relevant action is:
core.vaulta::unstaketorex
The current core.vaulta implementation accepts the selected staked amounts and forwards them directly into the underlying unstaketorex system action. GitHub
Conceptually:
Already-staked $A on CPU/NET
↓
unstaketorex
↓
REX
↓
REX staking positionOpen Blocksfinity → Stake & Earn.
https://www.blocksfinity.com/rex
Scroll down and select Lend staked A.

There you can see how much you allocated to CPU/NET. Either unstake them all to REX or click “Customize” and enter how much of the staked tokens from CPU/NET you want to transfer to REX:

Before signing, verify the amounts Blocksfinity is proposing to move.

After you should see an increase of your available $A in savings:

Inspect the REX statistics
Now open REX Stats / Charts in Blocksfinity.
Open Blocksfinity → Stake & Earn.
https://www.blocksfinity.com/rex
Scroll down and select REX stats/charts.

This screen is useful because it exposes the underlying REX pool rather than showing staking as a simple “earn” button.
Total REX
This is the total amount of REX accounting units representing positions in the pool.
REX and $A are not the same unit.
Total lendable
This represents the underlying value accounted for by the REX pool.
The relationship between total_lendable and total_rex is central to determining how much underlying value a REX position represents. The same relationship existed in the original REX design. GitHub
Total borrowed / Total unborrowed
These fields come from REX's original resource-market architecture.
They remain useful for observing what is happening inside the pool, but do not interpret today's displayed staking APY as simply being generated by the borrowed percentage.
For example, in the Blocksfinity snapshot used in this mission, REX utilization was only around 0.07%, while the displayed APY was approximately 9.03–9.04%.
That is a useful reminder that the modern staking model includes the dedicated staking-reward program and cannot be understood by looking at the old REX utilization metric alone.
REX price
Blocksfinity displays a relationship such as:
0.00015063 $A / 1 REX
This tells you how much underlying $A one REX currently represents.
Because your position is held in REX, changes in that relationship matter when your position is eventually converted back into $A.
APY
Blocksfinity annualizes recent REX-pool growth to show an APY.
It is a useful observation metric, but it is not a contractual promise of future performance.
What if I lend?
Blocksfinity can also estimate what a specified $A position would earn over periods such as:
one day;
30 days;
one year.
These are projections based on current conditions. They should not be interpreted as guaranteed future results.

Verify what happened on-chain
After completing the exercise, open your account in the Blocksfinity Explorer.
https://www.blocksfinity.com/account
Find the REX transaction and inspect the actions.
Depending on which part of the mission you completed, you should be able to identify actions such as:
core.vaulta::deposit
core.vaulta::buyrex
core.vaulta::mvfrsavings
core.vaulta::unstaketorex

Later, when exiting the position, you may also encounter:
core.vaulta::sellrex
core.vaulta::withdraw
This is the important distinction between Blocksfinity and Vaulta:
Blocksfinity prepared a convenient interface for you.
Your Authenticator authorized the transaction.
The Vaulta system contracts changed the blockchain state.
The Explorer lets you verify what actually happened.
What just happened?
In this mission you did more than click a staking button:
You learned that staking $A creates a REX position in Vaulta's on-chain staking system.
You learned that original REX returns came primarily from network economic activity flowing into the REX pool.
You learned that REX 2.0 introduced a pre-allocated staking-reward reserve with a four-year halving schedule.
You confirmed that the EOS-to-Vaulta transition did not reset those tokenomics.
You used
depositandbuyrexvia Blocksfinity Lend A to REX to move liquid $A into REX.You learned that REX Savings controls the exit timeline rather than creating additional yield.
You used
mvfrsavingsto begin the approximately 21-day unstaking process.You learned that an unstaking REX position continues participating in yield during the waiting period.
You learned that matured REX can be sold manually or automatically when a later REX action occurs.
You learned that selling REX and withdrawing liquid $A are separate operations.
You inspected REX statistics and distinguished the old REX utilization metrics from the modern staking-reward model.
You can now verify the corresponding contract actions on-chain rather than relying only on what the Blocksfinity interface displays.
What you should remember
REX stands for Resource Exchange.
When you stake $A today, you receive a REX position representing your participation in the staking pool.
Original REX yield came mainly from network economic activity, including resource-loan payments and certain system revenues.
Modern REX added a pre-allocated 250 million-token staking-reward pool distributed according to a four-year halving schedule.
This scheduled reward distribution is different from ongoing unlimited inflation.
The $EOS → $A transition did not reset the staking tokenomics.
REX Savings controls maturity; it does not provide extra rewards.
Moving REX out of savings begins the approximately 21-day unstaking period.
The position continues participating in rewards while it is unstaking.
A mature position may be automatically sold when another REX action occurs.
sellrexandwithdraware separate concepts.A REX sale can be queued when the pool cannot fill it immediately.
APY is variable and should not be treated as a guaranteed investment return.
Verified sources and further reading
Information from the following pages were used and were online when this mission was prepared:
Vaulta Staking FAQ — current yield source, 21-day staking period and automatic sale behavior
Vaulta Tokenomics — fixed supply, four-year halvings and REX 2.0
Vaulta core.vaulta system wrapper — current system.entry.cpp
Historical EOSIO REX implementation notes — original REX economics and maturity model
Quick Quiz
1. What does REX represent when you stake $A?
A. A second Vaulta account
B. An internal protocol position representing participation in the REX pool
C. A fixed-interest bank account
D. A token that must be transferred to Blocksfinity
2. Where did original REX returns primarily come from?
A. A dedicated 250 million-token staking-reward reserve
B. Guaranteed payments from Block.one
C. Network economic activity such as resource-loan payments and certain system revenues
D. The 21-day unstaking period
3. What is the defining source of rewards added by the modern REX staking model?
A. A pre-allocated staking-reward reserve released according to a halving schedule
B. Blocksfinity subscription fees
C. Users paying to create Vaulta accounts
D. Automatically creating an unlimited amount of new $A every year
4. What happens when you move REX out of savings?
A. It immediately becomes liquid $A
B. It stops earning immediately
C. Its approximately 21-day unstaking period begins
D. It is permanently destroyed
5. Your REX has completed its 21-day maturity period. You then perform another REX staking action. What can happen?
A. The matured REX can be sold automatically, although the resulting value may still need to be withdrawn
B. The original REX automatically returns to savings for another 21 days
C. Your entire Vaulta account becomes locked
D. The REX automatically becomes RAM
Answer footnote: Q1:2; Q2:3; Q3:1; Q4:3; Q5:1.
Last updated:
Was this article helpful?
Have a specific question about this article?