Skip to content

Implement private NFT claims - #84

Draft
tindzk wants to merge 1 commit into
mainfrom
feat/tn-ring-nfts
Draft

Implement private NFT claims#84
tindzk wants to merge 1 commit into
mainfrom
feat/tn-ring-nfts

Conversation

@tindzk

@tindzk tindzk commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

A public NFT claim proves a Merkle leaf built from the claimant, so the mint is tied to the player
who earned it. Add a path where a claim proves ring VRF membership of the claimants that registered
for a game: the proof shows that some registrant earned the credit, but not which one.

A game opts in at scheduling time and is then private only. Each claimant registers a one-time ring
VRF key on the People chain for a credit price, and the offchain worker builds one ring over the
registered keys once registration closes. The ring goes to the claims chain over XCM, where a
claimant submits one claim_private per slot the game grants. Each proof runs under a context
derived from (game_index, slot), and the alias it yields is the nullifier that spends that slot.

claim_private carries no signer and pays no fee: two claims from one fee payer are two claims by
one member. The proof authorizes the call and MaxPrivateClaimsPerBlock caps the verifications one
block runs. A ring's claims run in one window, which opens PrivateClaimDelay after the ring
arrives and closes PrivateClaimWindow later, and a member who misses it mints nothing.

A game that too few claimants registered for, or whose ring fails to build, is abandoned. Its
credits mint over the public path instead.

@tindzk
tindzk force-pushed the feat/tn-ring-nfts branch from d658ff9 to b5ae24e Compare August 31, 2026 19:35
@tindzk
tindzk force-pushed the feat/tn-ring-nfts branch from b5ae24e to 5105472 Compare August 31, 2026 19:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant