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
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.
Checking the published deployment manifest. Wallet and network actions stay disabled.
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
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.
- Funding raises the index
index += deposit × 10¹² ÷ total stakedThe division rounds down. The leftover stays in the reward vault and is never paid out. - Each position catches up before it changes
credit += your stake × (index − your checkpoint); checkpoint = indexThis runs on every stake, withdraw and claim, so a new stake only earns from later deposits. - Claims pay whole units
claim = credit ÷ 10¹²; credit keeps the remainderA fraction of a unit stays credited to you for next time.
Example
- A stakes 600,000 and B stakes 400,000.Total staked: 1,000,000.
- 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. - C stakes 1,000,000.Total staked: 2,000,000. C earns nothing from the first deposit.
- 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.