OKR-6 KR9 Slice V6

CloudBank NFT Mining

This reviewable patch keeps the merged mint and seller flows intact, then adds the minimal buyer path: getActiveListings(offset, limit), approve(COD, TradingEngine), and buyNFT(listingId).

Wallet not connected
Wallet
Not connected
Mint Price
600 COD
COD Balance
0 COD
Allowance
0 COD
Owned NFTs
0
Pending Rewards
0 COD
Trading Reserve
0 COD
Active Listings
0
Marketplace Page
1

Mint Flow

This slice intentionally skips invite UX and secondary market flows. It only verifies the happy path on testnet with the zero inviter.

Rewards

Pending mining rewards are shown before the 60/40 holder and community split.

Claim available
Pending Total
0 COD
Holder Share (60%)
0 COD
Community Share (40%)
0 COD

Connect a wallet to inspect and claim mining rewards.

Marketplace Buy

Buyer-side path only: browse active listings with explicit on-chain pagination, then approve COD to the trading engine and call buyNFT(listingId).

Page 1

Connect a wallet to browse and buy marketplace listings.

Marketplace Listing

Seller-side approval and listing entry. After listing, the NFT leaves your holdings because it is escrowed by the trading engine until sold or cancelled.

Listing path ready
Listing Operator
0x0208...201c
Default Ask Price
600 COD

Connect a wallet to approve and list owned NFTs.

My Active Listings

Active listings are escrowed in the trading engine until sold or cancelled.

0 active

Connect a wallet to inspect and cancel your active listings.

Redemption

Burn an owned NFT back to the protocol if the trading reserve has enough COD.

Reserve below redeem price
Reserve Balance
0 COD
Redeem Price
600 COD
Net Payout (70%)
420 COD

Connect a wallet to redeem an owned mining NFT.

Contracts

COD Token
0x6299...F1C1
Minting Engine
0x97E5...4906
NFT Contract
0x0d35...0d53
Mining Pool
0x0c33...841c
Trading Engine
0x0208...201c

My NFTs

Owned token IDs plus on-chain mint metadata, with one-click redemption for live NFTs.

0 owned

Connect a wallet to load your NFT holdings.

Execution Notes

This app targets chain 97 only and uses the deployed testnet NFT-mining addresses already carried in the repo.

Marketplace scope stays intentionally narrow here: explicit paginated browse, listNFT(tokenId, askPrice), cancelListing(listingId), and buyNFT(listingId). Trade history and richer filtering remain outside this PR.