Staking
The Mirage app includes a ClankerCats staking surface at app.mirage.garden/staking, but the staking vault transaction flow is currently marked as pending in the UI.
Current live behavior
When a wallet connects, the staking page reads:
| Read | Purpose |
|---|---|
CCAT.OwnerUpegsCount(wallet) | Checks whether the wallet holds any CCAT upegs |
ClankerCatsNFT.balanceOf(wallet) | Checks whether the wallet holds any ERC-721 ClankerCats |
CLKCAT.balanceOf(wallet) | Shows staking input token balance |
CLKCAT.decimals() | Formats the balance |
CLKCAT.symbol() | Labels the balance |
A wallet is shown as eligible if either:
OwnerUpegsCount(wallet) > 0, orClankerCatsNFT.balanceOf(wallet) > 0.
Current UI state
The page lets a user:
- Connect a wallet.
- See CCAT upeg count.
- See ClankerCats ERC-721 count.
- See eligibility.
- See CLKCAT balance.
- Enter a stake amount.
- Select a staged lock tier.
The final action button is disabled and labeled as pending because the staking vault address and write ABI are not live in the app.
Staged tiers
The current app constants show:
| Tier | Multiplier |
|---|---|
| Flexible | 1.00x |
| 7 days | 1.10x |
| 1 month | 1.75x |
| 3 months | 4.00x |
These are UI constants until the vault contract is deployed and connected.
Roadmap note
The intended staking model is ClankerCats-oriented: stake CLKCAT, require ClankerCats eligibility, and earn CCAT-related rewards once the vault is available. Until the contract is deployed and wired into the app, docs should treat staking as a status/eligibility surface rather than an active staking product.