Staking Design
The PRFI NFT Staking System uses a fully upgradeable, omnichain architecture built on the Diamond Standard (EIP-2535) and LayerZero. Users stake PRFI, level up NFTs, and earn rewards across chains.
Architecture
All staking logic and NFT management are modularized into facets within a single proxy contract on the main chain:
ERC721Facet
Core NFT logic: minting, burning, bridging, metadata
StakerFacet
Staking engine: stake, merge, lock, rewards, claiming
AdminFacet
Configuration, pausing, access control
GetterFacet
Read-only data for frontend and integrations
Omnichain NFT Support (ONFT)
NFTs are omnichain - they can be bridged between Base and other supported chains using LayerZero.
All economic logic lives on the mainnet (single source of truth).
Users interact from low-gas chains (e.g., Base).
NFTs preserve full metadata and reward history when bridged.
A sidechain contract manages local NFT ownership and forwards user actions (stake, claim, withdraw, redeem) to the mainchain. The mainchain executes the logic and replies with confirmations.
Staking Mechanics
Stake PRFI into your NFT to begin earning rewards.
NFT Level increases as stake crosses defined thresholds (up to level 20).
Rarity Multiplier and Level combine into a weight that determines rewards.
Reward Calculation
Rewards are distributed monthly and split into two equal buckets:
50% based on the NFT's
multiplier(rarity + level)50% based on
stake x weight(multiplier x staked PRFI)
This ensures fair rewards for both quality (rarity) and quantity (stake commitment).
Claiming
Rewards are claimable on any chain.
Calling
claim()syncs missed distributions and updates the last claimed amount.High-precision math (
ABDKMathQuad) ensures exact distribution.
Merging
Two NFTs of the same rarity can be merged into one with a higher rarity.
The resulting NFT inherits the combined stake and an upgraded multiplier.
Merged NFTs are burned; a new NFT is minted from a reserved ID range.
Withdrawing & Redeeming
Partial withdrawal: Remove a portion of staked PRFI (20% fee, redistributed to other holders).
Burn to redeem: Destroy the NFT to withdraw all staked PRFI.
Withdrawals are blocked during lock periods.
Security
Diamond Standard
Facets can be added or upgraded without contract migration
Reentrancy Guard
Prevents reentrancy attacks
Pausable
Authorized roles can pause functions during incidents
Trusted Endpoints
LayerZero messages restricted to trusted chains/contracts
On-chain
All data is auditable and fully deterministic
Technical Parameters
Withdrawal fee
20% (configurable)
Max level
20
Rewards pool
Funded via protocol earnings, royalties, and monthly airdrops
Storage
NFT state replicated between chains via bridging
Last updated