The Solayer chain is SVM-compatible —
@solana/web3.js, @solana/spl-token,
and @coral-xyz/anchor work against the L2 RPC exactly as they do on Solana.How staking works
- You stake one SPL token — LAYER, the stake token. It is both the asset you stake and the asset you earn rewards in. There is no separate reward token.
- You delegate your tokens to a validator (an operator the project has
registered). You can split across several validators; each
(you, validator)pair is an independent position. - Rewards accrue continuously at the gross APY the admin sets, and are minted directly to your wallet when you claim. No epochs, no manual compounding.
- Each validator charges a commission (0–100%, set in basis points) on its
delegators’ rewards, so your effective APY is
apy * (1 - commission). The admin sets a validator’s initial rate at registration; the validator can change it any time viaset_commission(only future rewards are affected) and collects it on-chain viaclaim_commission. - Unstaking has a cooldown (7 days by default). You request, wait, then withdraw. The portion in cooldown stops earning immediately.
infini-stake) runs on the L2, and it accepts the
L2-native LAYER mint. LAYER’s home chain is the L2 — it is a
Solayer-native token, not a Solana token bridged in — so if you already hold
LAYER on the L2 you can delegate straight away, no bridging needed. Only
holders of the wrapped form on Solana (L1) have to
bridge it back
first.
A “validator” in this program is just a registered pubkey on-chain — an
identity. The node software (rpc-v2) does not sign anything for the
staking program; the admin allowlists who counts as a validator out-of-band.
Running a node is the service that earns you a spot on that allowlist.
Lifecycle at a glance
Network endpoints & addresses
The stake token is LAYER, and it is Solayer-L2-native: the L2 mint
above is the token’s home, and the L1 mint is only a wrapped
representation created by the bridge (its mint authority is the bridge
handler PDA). The token/bridge addresses are devnet values — mainnet may
differ, and the canonical source of truth once the program is initialized is
Config.stake_mint (see
Check your position).
Post-launch values (TBD)
These only exist after the staking program is deployed andinitialized:
Config.stake_mint— expected to be the native L2 LAYER mint above. Whatever you hold or receive on L2 must equal this value, ordelegaterejects it. (The L1 mint is only the wrapped form — the program does not accept it.)- Validator identity pubkey(s) — registered validators you can delegate to.
infini_stake.json (served from
these docs, generated from the program source). You’ll need it for the
TypeScript snippets in the Delegate LAYER
page.