Loading
Loading
Staking is how you collect the stock a vault has bought. You deposit the memecoin into its own vault, and while it sits there, each harvest's stock streams to you in proportion to your share of everything staked.
On a token page, the Stake section shows two figures for your connected wallet: how much of the token you have staked, and how much stock you have earned and not yet claimed. The earned figure climbs every second while a stream is running; the panel re-reads it every 8 seconds.
Below the figures:
Approve TICKER, Stake TICKER, or Unstake TICKER.Approve TICKER. Sign it. The amount you typed stays in the field.Stake TICKER. Sign it.The vault measures what it received rather than trusting the amount, so a token with transfer fees would credit you the net figure. Pons tokens have no transfer fee, so the two match.
From that block on, you earn from whatever stream is running.
Choose Unstake, enter an amount (or max), sign. Tokens return to your wallet at once. There is no lock, no cooldown, and no fee. Stock you earned before unstaking stays credited to you and remains claimable.
Press Claim STOCK. The vault transfers your accrued stock to your wallet. Claiming does not touch your stake.
If rounding in the accumulator leaves you owed a few wei more than the vault holds, the vault pays what it has and keeps the remainder credited to you.
The contract has exit(), which unstakes everything and claims in one transaction. The site does not expose it; call it from a wallet or script if you want a single signature. See Contract reference.
Each harvest opens a seven-day stream. The vault sets a per-second rate equal to the harvest's stock (after the app fee) divided by seven days, and credits stakers at that rate.
Your share of each second's payout equals your staked balance divided by the total staked at that second. The vault tracks this with a Synthetix-style accumulator: rewardPerToken grows over time, and your earnings are your stake multiplied by the growth since your last settlement.
A second harvest while a stream is running does not wait. The vault adds whatever the running stream still owed to the new harvest's stock and opens a fresh seven-day stream from that moment. Stock is never dropped; the schedule resets.
If a stream runs while nothing is staked, the vault parks what it emitted in rewardResidual and folds it into the next harvest's stream.
Two people stake a token. Alice stakes 3,000,000 tokens, Bob stakes 1,000,000. Total staked: 4,000,000. Alice holds 75%, Bob 25%.
A harvest lands with 10 NVDA. The vault sends 2 NVDA to IndexFactory as the app fee and streams 8 NVDA over 7 days, so 1.142857 NVDA per day.
After 2 days:
Bob unstakes. His 0.571429 stays claimable. Alice now holds 100% of the stake.
After 2 more days:
A second harvest lands with 5 NVDA (4 NVDA after the app fee). The running stream still owes 3 days at 1.142857, which is 3.428571 NVDA. The new stream carries 4 + 3.428571 = 7.428571 NVDA over a fresh 7 days, so 1.061224 per day, all to Alice while she is the only staker.
Carol stakes 4,000,000 tokens in the same block as that harvest and unstakes in the next block. She earns about two seconds of the stream at her 57% share, about 0.000014 NVDA. That is the point of the stream: a single-block round trip around a harvest is worth almost nothing.
The vault holds staked balances in its own address. The only functions that move them are unstake and exit, and both send to msg.sender only. There is no admin, no pause, no upgrade, and no sweep. Nothing else in the contract reads stakedOf for any purpose except reward math.
A harvest excludes staked balances. The vault only ever converts balanceOf(vault) - totalStaked of the memecoin, and in practice the vault holds no memecoin beyond stakes because fees arrive as ETH or stock, not as the memecoin.
Everything the panel does is four calls. See Contract reference for the signatures and cast examples.