Application repo for the SinguVault reward and redemption flow.
Player-facing dApp for AchievementNFT redemption, staking and EULM claim on Sui · Site https://eveuluv.me/ · Demo https://youtu.be/DWrJCcNGC0c
Join the Discord community at https://discord.gg/5bGUfNngHw to report technical issues or share suggestions.
dapp/: Vite + React frontend for redeeming approved achievement NFTs, minting stake passes, previewing reward balances, and withdrawing principal.dapp/api/redeem-ticket.ts: Vercel serverless endpoint that validates owned NFTs and issues signed redeem tickets.dapp/src/lib/: RPC, reward profile, wallet integration, and SinguVault client helpers.dapp/.env.example: frontend and Vercel environment variable template.
Hybrid design: on-chain custody for AchievementNFT redemption, StakePass issuance and locked positions; off-chain ticket signer for replay-safe redemption.
graph TB
subgraph "Upstream"
Hunt[singuhunt-contracts]
end
subgraph "Player"
Wallet[Sui Wallet]
NFT[AchievementNFT]
end
subgraph "Vercel"
SPA[Vite + React SPA]
API[/redeem-ticket API/]
end
subgraph "Sui Testnet — singuvault package"
Vault[singuvault Move Package]
VaultState[(VaultState shared object)]
EVE[(EVE Treasury)]
EULM[(EULM Treasury)]
Pass[StakePass]
Position[StakePosition<USDC>]
end
Hunt -->|mint| NFT
NFT --> Wallet
Wallet --> SPA
SPA -->|verify ownership + request ticket| API
API -->|signed redeem ticket| SPA
SPA -->|redeem_nft_for_eve| Vault
Vault --> EVE
SPA -->|redeem_nft_for_stake_pass| Vault
Vault --> Pass
Pass -->|activate_stake_pass with SUI+USDC| Position
Position -->|claim_stake_position after unlock| EULM
Vault --> VaultState
cd dapp
npm install
npm run devcd dapp
npm run build- Copy
dapp/.env.exampleto a local.envwhen needed. REDEEM_TICKET_PRIVATE_KEYmust stay in local or deployment secrets only.- Default config values in
dapp/src/lib/config.tsare placeholders and should be replaced with deployment-specific values.
- The frontend supports four flows: redeem for a reward token, redeem for a stake pass, claim reward balances, and withdraw stablecoin principal.
- Approved NFT types should be configured through environment variables before deployment.
Copyright (c) Eve U Luv Me. All rights reserved. This repository is proprietary and unlicensed for public reuse.