Overview
Once on-chain points/referral accrual (NF-13) and the claim/escrow contract (NF-14) exist, there's no UI for a user to actually see and redeem what they've accrued.
Problem
Points are currently only ever a mock number shown on the frontend (per GF-23's original scope) with no real redemption path. Even once NF-13/NF-14 land on-chain, nothing in the app calls claim() or shows a user their real, currently-redeemable value.
Proposed Solution
- New page
app/src/app/rewards/page.tsx: shows the connected wallet's current points balance and referral-bonus-owed (read via the points/rewards contracts, once an SDK client exists for them — coordinate with whichever future SDK issue covers that, or call the contracts directly via RPC as an interim step if no SDK client exists yet), the current redemption rate (NF-14), and the resulting redeemable USDC amount.
- A "Claim Rewards" button calling the escrow contract's
claim(), with the standard pending/confirmed/failed transaction states used elsewhere in the app.
- Show claim history (past redemptions) for transparency.
Acceptance Criteria
Overview
Once on-chain points/referral accrual (NF-13) and the claim/escrow contract (NF-14) exist, there's no UI for a user to actually see and redeem what they've accrued.
Problem
Points are currently only ever a mock number shown on the frontend (per GF-23's original scope) with no real redemption path. Even once NF-13/NF-14 land on-chain, nothing in the app calls
claim()or shows a user their real, currently-redeemable value.Proposed Solution
app/src/app/rewards/page.tsx: shows the connected wallet's current points balance and referral-bonus-owed (read via the points/rewards contracts, once an SDK client exists for them — coordinate with whichever future SDK issue covers that, or call the contracts directly via RPC as an interim step if no SDK client exists yet), the current redemption rate (NF-14), and the resulting redeemable USDC amount.claim(), with the standard pending/confirmed/failed transaction states used elsewhere in the app.Acceptance Criteria