Trust Stack Docs
Products

Staking pools

Create or join a fully funded, time-weighted reward pool with isolated principal.

Trust Stack staking pools distribute a fixed reward budget over an immutable time window. Stake principal and reward funding live in separate untransferable vaults, and every participant receives an independent position object.

Staking pool creation form with asset verification, reward budget, and schedule

When to use it

Use a pool when a project wants to reward users according to how much and how long they stake during a defined campaign. The reward budget is supplied upfront rather than promised by an administrator.

The current pool is intentionally simple. It does not provide validator staking, compounding, lock multipliers, early-withdrawal penalties, mutable emissions, emergency administrator withdrawal, or principal confiscation.

Before creating a pool

The creator needs:

  • distinct admitted, non-dispatchable stake and reward Fungible Assets;
  • the complete reward budget;
  • future UTC start and end timestamps; and
  • SUPRA for network gas.

The creator should publish the two metadata addresses, reward budget, schedule, and pool object so participants can verify the economics independently.

Create a pool

  1. Open Create staking pool.
  2. Enter and verify the stake-asset and reward-asset metadata addresses.
  3. Confirm that the two assets are distinct and admitted.
  4. Enter the full reward budget and future start/end timestamps.
  5. Review the emission window, funded amount, creator recovery rule, and costs.
  6. Sign the pool creation transaction.
  7. Wait for the matching PoolCreated event and save the pool object and transaction hash.

The reward budget transfers into its vault before the creation event is emitted. The contract cannot create an unfunded reward promise.

Practical example

A project funds a 10-day pool with 1,000 REWARD tokens. Users stake STAKE tokens.

  • If Alice is the only staker for the complete emission window, she earns approximately the full budget, subject to whole-unit rounding.
  • If Alice and Bob stake equal amounts for the same complete period, they earn approximately equal shares.
  • If Bob joins halfway through, Alice has more time-weighted stake and earns more.
  • Withdrawing returns a user's entire principal plus pending whole rewards and closes that position.
  • Any unallocated reward from empty periods or integer dust is recoverable by the creator only after the pool ends and total stake reaches zero.

The reward budget is a funded allocation, not a protocol fee. Staked principal is custody that is returned on withdrawal, not a payment to Trust Stack.

Fees and costs

ActionTrust Stack protocol feeWho paysOther cost or funding
Create poolNoneNobodyCreator supplies full reward budget and pays network gas
StakeNoneParticipantParticipant supplies principal and pays network gas
Claim rewardsNoneParticipantSupra network gas
Withdraw and close positionNoneParticipantSupra network gas; principal is returned
Recover unallocated rewardsNoneCreatorSupra network gas

Trust Stack does not deduct a percentage from principal or rewards and has no early-withdrawal penalty. More frequent reward claims create more gas transactions but do not change a protocol fee. See Fee governance.

Stake and manage a position

Staking participant workspace for pool and position actions

  1. Open Manage staking.
  2. Load the pool object and verify both assets, reward budget, schedule, and live balances.
  3. Enter a stake amount and sign. Save the resulting position object.
  4. Return with the position object to review principal and accrued whole rewards.
  5. Choose Claim rewards while keeping principal staked, or Withdraw to receive principal plus pending whole rewards and permanently close the position.

Rewards use a cumulative reward-per-stake index scaled by 10^18. Fractional remainders remain with the position so frequent claims do not create a rounding advantage.

Creator recovery

The creator may recover only unallocated reward tokens, and only after both conditions are true:

  1. the reward window has ended; and
  2. total staked principal is zero.

This includes rewards emitted during empty periods and integer-division dust. The creator has no path to participant principal.

Common problems

  • Pool assets are the same: the first pool type requires distinct stake and reward assets.
  • Stake rejected: verify the campaign state, admitted asset, amount, and participant balance.
  • Reward looks small: rewards depend on both amount and time relative to all other positions.
  • Fraction not claimable yet: only whole base units transfer; remainder stays accounted.
  • Creator recovery unavailable: the pool is active or some principal remains staked.
  • Position missing: use the saved position object directly while indexing catches up.

Understand the economic boundary

Fully funded rewards remove an unfunded administrator promise, but they do not establish the value, safety, or issuer quality of either asset. This is immutable-testnet engineering evidence, not an investment recommendation or mainnet approval.

On this page