# Mission 5 — Stake with REX

> Learn how to stake $A with REX, manage savings and withdrawals, and understand where REX rewards come from.

Canonical: https://help.blockzhub.io/articles/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](http://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](https://github.com/EOSIO/eosio.contracts/issues/117)

## 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](http://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](https://www.vaulta.com/resources/vaulta-token-swap-a-begins-may-14)

## 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 &#x26; Earn

Login to Blocksfinity:

Open Blocksfinity → Stake &#x26; Earn.

[https://www.blocksfinity.com/rex](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 spendable

### 2. 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](https://github.com/VaultaFoundation/vaulta-system-contract/blob/main/contracts/system.entry.cpp)

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 &#x26; 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](https://github.com/VaultaFoundation/system-contracts/blob/main/contracts/eosio.system/src/rex.cpp)

Also doube check your new account balances:

[https://www.blocksfinity.com/account](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 &#x26; Earn.

[https://www.blocksfinity.com/rex](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](https://github.com/VaultaFoundation/system-contracts/blob/main/contracts/eosio.system/src/rex.cpp)

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](http://vaulta.gitbook.io)

The lifecycle now becomes:

REX Savings
     ↓
mvfrsavings
     ↓
21-day unstaking period
     ↓
Matured REXAfter 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](http://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 $A
### Sell 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](https://github.com/VaultaFoundation/vaulta-system-contract/blob/main/contracts/system.entry.cpp)

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](https://github.com/VaultaFoundation/system-contracts/blob/main/contracts/eosio.system/src/rex.cpp)

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 &#x26; Earn.

[https://www.blocksfinity.com/rex](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](https://github.com/VaultaFoundation/system-contracts/blob/main/contracts/eosio.system/src/rex.cpp)

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](https://www.blocksfinity.com/wallet/allocate)) 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](https://github.com/VaultaFoundation/vaulta-system-contract/blob/main/contracts/system.entry.cpp)

Conceptually:

Already-staked $A on CPU/NET
       ↓
unstaketorex
       ↓
      REX
       ↓
REX staking position

Open Blocksfinity → Stake &#x26; Earn.

[https://www.blocksfinity.com/rex](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 &#x26; Earn.

[https://www.blocksfinity.com/rex](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](https://github.com/EOSIO/eosio.contracts/issues/117)

### 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](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 deposit and buyrex via 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 mvfrsavings to 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.

- sellrex and withdraw are 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](https://vaulta.gitbook.io/vaulta-guides/user-guides/support/faqs/staking-faq?utm_source=chatgpt.com)

- [Vaulta Tokenomics — fixed supply, four-year halvings and REX 2.0](https://vaulta.gitbook.io/vaulta-guides/vaulta-token/tokenomics?utm_source=chatgpt.com)

- [Vaulta — The Era of $A: Token Swap Begins May 14](https://www.vaulta.com/resources/vaulta-token-swap-a-begins-may-14?utm_source=chatgpt.com)

- [Vaulta system-contract REX implementation — current rex.cpp](https://github.com/VaultaFoundation/system-contracts/blob/main/contracts/eosio.system/src/rex.cpp?utm_source=chatgpt.com)

- [Vaulta core.vaulta system wrapper — current system.entry.cpp](https://github.com/VaultaFoundation/vaulta-system-contract/blob/main/contracts/system.entry.cpp?utm_source=chatgpt.com)

- [Vaulta system-contracts v3.10.0 — $A staking transition](https://github.com/VaultaFoundation/system-contracts/releases/tag/v3.10.0?utm_source=chatgpt.com)

- [Historical EOSIO REX implementation notes — original REX economics and maturity model](https://github.com/EOSIO/eosio.contracts/issues/117?utm_source=chatgpt.com)

## 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](http://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.
