Pre-launch · built and tested

Staking

Holders lock your coin in a pool and earn a share of every reward you deposit, in proportion to how much they stake.

  • VEYDUCT fee0.01 SOL per pool
  • Lockupnone
  • Yieldonly what you deposit
  • CoinsPump and classic SPL
Staking pool, worked exampleA stakes 600,000, B 400,000 and C 1,000,000 DEMO. You deposit 100,000 while only A and B are staked, then 50,000 after C joins. A earns 75,000, B 50,000 and C 25,000. You deposit rewards100,000 then 50,000 Pool2,000,000 staked · no lockup B 20% A 30% C 50% B A C 400k600k1M Earned 50,000 75,000 25,000 Each deposit splits by stake at that moment.C joined after the first, so it shares only the second.
Example from the worked math in How it works · example numbers, not a real pool

With your wallet

Stake, withdraw or claim

Staked coins stay in the pool, which only the program controls, until you withdraw them. Every action is checked against the live pool and signed by you.

Pre-launch

Checking the published deployment manifest. Wallet and network actions stay disabled.

Wallet

Wallet No wallet connected.

Choose an action

As a holder

As the pool admin

Lock tokens in the pool. You earn a share of every reward deposit made while they are staked.

Pool and amount

32 to 44 letters and numbers, from the pool admin or from your own receipt after “Create a pool”. Read pool shows its coin, totals and your position before anything is signed.

in tokens

In whole tokens, decimals allowed: for example 250000 or 1.5. The review shows the exact amount and every cost before you approve.

New pool settings

Creates immutable stake and reward vaults for a classic SPL token or a Pump coin (Token-2022, including coins trading on PumpSwap). Stake and reward can be the same coin; it must have no freeze authority. The connected wallet becomes the funding admin.

pick another if the pool exists
Connect a wallet to beginNothing is read or signed until you click.

Practice run · simulated · nothing is sent

Practice run

The practice run loads with the page. It needs JavaScript; nothing is signed or sent.

Everything the staking program does, and does not do

Checked against the program’s source and this page’s own code.

Lockup
None. Withdraw any time
Yield
Only what the pool admin deposits
VEYDUCT fee
0.01 SOL to create a pool. Nothing else
Coins
Pump coins (Token-2022) and classic SPL
Example

Accounts the program creates

Every account has an address derived from fixed seeds (a Program-derived address: an account address worked out from fixed words (seeds) and the program’s ID. Nobody holds a private key for it; only the program can sign for it.), so the page can find it from the pool admin and a number, and nobody can swap in a look-alike.

Pool

Settings and totals: admin, both coins, total staked, rewards funded and paid, and the reward index.

Seeds
"tenure-staking", admin, nonce
Size
220 bytes
Created by
Create a pool

Stake vault

A token account owned by the pool address that holds everyone’s staked coins.

Seeds
"stake-vault", pool
Size
165 bytes, 170 for Token-2022
Created by
Create a pool

Reward vault

A token account owned by the pool address that holds deposited rewards until they are claimed.

Seeds
"reward-vault", pool
Size
165 bytes, 170 for Token-2022
Created by
Create a pool

Your position

One per wallet per pool: your stake, the index you last caught up to, and your credited rewards.

Seeds
"position", pool, your wallet
Size
114 bytes
Created by
Your first stake

The stake vault and reward vault belong to the pool address, which only the program can sign for. Before and after every action the program checks that the vaults still hold at least the recorded stake and the unpaid rewards.

Who can do what

  • ActionWho signsRules the program enforces
  • Create a poolAny wallet; it becomes the pool adminBoth coins use the same token program, have no freeze authority and are not wrapped SOL. Stake and reward may be the same coin.
  • Fund rewardsThe pool admin onlySomething must be staked. The deposit is split across stakes at that moment.
  • StakeThe holderFrom the holder’s own token account into the stake vault. Adds to the same position.
  • WithdrawThe holderUp to the holder’s own stake, back to an account the holder owns.
  • ClaimThe holderWhole units of the holder’s own credited rewards, to an account the holder owns.
  • Take anyone else’s coinsNobodyNo instruction lets the admin, VEYDUCT or anyone else move principal or sweep the reward reserve. There is no pause, rescue or close.

Being the pool admin does not prove you created the coin. Before staking in someone else’s pool, check the coin address and who the admin is.

Reward math, with a worked example

Amounts on chain are whole token units; 1 DEMO with 6 decimals is 1,000,000 units.

The pool keeps one number, the A running total of rewards per staked unit, scaled by 10¹². Your earnings are your stake × how much the index rose since your last action.: rewards per staked unit, multiplied by 1012 so fractions are not lost. Funding raises it; each position remembers the index it last caught up to.

  1. Funding raises the indexindex += deposit × 10¹² ÷ total stakedThe division rounds down. The leftover stays in the reward vault and is never paid out.
  2. Each position catches up before it changescredit += your stake × (index − your checkpoint); checkpoint = indexThis runs on every stake, withdraw and claim, so a new stake only earns from later deposits.
  3. Claims pay whole unitsclaim = credit ÷ 10¹²; credit keeps the remainderA fraction of a unit stays credited to you for next time.

Example

  1. A stakes 600,000 and B stakes 400,000.Total staked: 1,000,000.
  2. The admin funds 100,000.each staked unit earns 100,000 ÷ 1,000,000 = 0.1A can claim 60,000, B can claim 40,000.
  3. C stakes 1,000,000.Total staked: 2,000,000. C earns nothing from the first deposit.
  4. The admin funds 50,000.each staked unit earns 50,000 ÷ 2,000,000 = 0.025A: 60,000 + 15,000 = 75,000. B: 40,000 + 10,000 = 50,000. C: 25,000.

Run the same steps in Try it: it uses the program’s arithmetic and the page SDK’s accrual function, so you will see these numbers.

Costs

VEYDUCT fee to create a poolPaid once, in the same transaction, to VEYDUCT’s fee wallet. Shown in the review.
0.01 SOL
Account rent for a new poolPool (220 bytes) and two vaults, at mainnet rent of 5,080 lamports per byte plus 128 bytes per account.
≈ 0.0048 SOL (Token-2022) · 0.0047 SOL (classic)
Account rent for your positionOnce per wallet per pool, on your first stake.
≈ 0.0012 SOL
Network feePer transaction, one signature.
0.000005 SOL
Percentage feesStake, withdraw, claim and fund carry no VEYDUCT fee, and the program takes no cut.
None

SOL deposited into an account so Solana keeps storing it. It is normally returned when the account is closed. stays in the program’s accounts: the program has no instruction that closes a pool, vault or position, so it is not refunded. If your token account for the coin was closed, the page re-creates it in the same transaction and shows that rent (about 0.0015 SOL) in the review.

Lockups and withdrawals

  • No lockup, cooldown or schedule. Withdraw any part of your stake at any time; the coins arrive in the same transaction.
  • No promised yield. There is no APR. Rewards exist only when the admin deposits them.
  • Withdrawing keeps your earned rewards. Your credit is brought up to date first and stays claimable after you withdraw everything.
  • No compounding. Claimed rewards land in your wallet; stake them again if you want them to earn.

Edge cases and what can go wrong

Funding with nothing staked

The program refuses it (no one to split it across), and the whole transaction is undone.

Staking after a deposit

You only share deposits made while you are staked. Earlier rewards belong to earlier stakers.

Tiny deposits

If a deposit divided by the total stake rounds to zero, the index does not move and the deposit stays unclaimable in the reserve.

Unsupported coins

Solana’s newer token program. Pump coins use it with metadata only, which staking supports. Classic SPL coins use the original token program. coins with transfer fees, transfer hooks or other extensions, coins with a A key that can freeze any holder’s token account for that coin. A pool refuses coins that still have one., and wrapped SOL are refused when the pool is created.

Mixed token programs

A classic SPL coin cannot pay rewards for a Token-2022 coin, or the other way round.

Stale review

The page re-reads the pool, your position and balances when you approve; if anything changed, it asks you to review again.

FAQ

Can the pool admin take my staked coins?

No. The program has no instruction that moves your principal anywhere except back to you, and only when you sign.

Can the admin pull back rewards it already deposited?

No. Deposited rewards can only leave the reward vault as claims by the stakers who earned them.

Why can I not claim 0.4 of a token unit?

Claims pay whole units. The fraction stays credited to your position and adds to your next claim.

Can I stake more than once?

Yes. Every stake adds to the same position, after your earned rewards are brought up to date.

Can the program be changed after launch?

The release only switches staking on for a program with no upgrade authority (nobody can change its code), and the page checks the exact program bytes before every wallet action.

Does staking work with Pump coins?

Yes. Pump coins are Token-2022 with metadata only, which is supported, and they can be staked whether they trade on the curve or on PumpSwap.

Tested in this release

Test results are published with each release

Every release build runs the staking program’s exact pinned bytes and this page’s own code in an isolated Solana runtime (LiteSVM), with mainnet token programs and a real Pump coin captured read-only. This copy of the site has no build results attached; Release status lists the latest release.

  • Pool setup with the exact 0.01 SOL VEYDUCT fee, then stake, fund, claim and withdraw, on a Pump (Token-2022) coin and on a classic SPL coin.
  • Rewards split by stake, fractions kept, later stakers kept out of earlier deposits, funding refused while nothing is staked.
  • Theft, over-withdrawal, wrong signers and unsupported token extensions refused by the page, the relay and the program.