Unstake cooldown
Provisional: the cooldown length (7–14 days) is provisional and will be finalized before launch.
Unstaking $RELAY is a three-step flow. You always get 100% of your tokens back — the cooldown only delays when, never whether.
The flow
- Request unstake. You choose an amount to unstake. From this moment, those tokens immediately stop counting toward your landing priority — cooldown tokens (mid-unstake) do not count toward priority.
- Cooldown. The requested tokens sit in cooldown for the cooldown period (provisional: 7–14 days). They give no priority and can't be withdrawn yet.
- Withdraw. After the cooldown ends, you withdraw 100% of the unstaked amount. No fee, no penalty, no haircut.
Illustrative instruction flow
Illustrative only — not runnable today. The staking program ships at TGE. The instruction names and account layout below are a sketch of the intended flow, not a deployed interface, and will change before launch.
The two on-chain steps mirror the flow above — request_unstake starts the clock, withdraw completes it once the cooldown elapses (an Anchor-style sketch):
// ILLUSTRATIVE ONLY — pseudocode, not a live program.
// 1. Request unstake — moves `amount` from locked into cooldown.
// Those tokens stop counting toward priority immediately.
await program.methods
.requestUnstake(new BN(amount))
.accounts({
staker: wallet.publicKey,
stakeAccount, // PDA derived from the staker's pubkey
})
.rpc();
// 2. Withdraw — after the cooldown period elapses, pull 100% back to your wallet.
// Called before the cooldown ends, this fails.
await program.methods
.withdraw()
.accounts({
staker: wallet.publicKey,
stakeAccount,
vault, // program-owned escrow holding locked RELAY
stakerTokenAccount, // your RELAY token account (destination)
tokenProgram: TOKEN_PROGRAM_ID,
})
.rpc();Reading the stake account between the two steps (see Staking) shows the requested tokens under cooldownAmount with a cooldownEndsAt timestamp — they return to your wallet in full at withdrawal.
Why the cooldown exists
The cooldown keeps priority meaningful and prevents gaming access for a single event — without it, someone could stake minutes before a token launch, take the landing edge, and exit immediately. The cooldown makes priority a standing commitment rather than a flash rental.
No slashing, ever
Staking $RELAY is an access deposit, not a bond. There is no slashing and nothing is ever confiscated — unstake and you receive 100% of your tokens back, every time. The only cost of unstaking is losing your landing priority for the tokens in cooldown.
Want the priority back? Any tokens you re-stake start counting toward priority again — see Staking.