0xMiden / 0xMiden/tutorials

docs(rust): add an end-to-end NFT mint and transfer recipe

Open
#245 0 comments 0 reactions 1 assignee Claimed by @BrianSeong99 View on GitHub
Dominant language
Rust
Stars
18
Forks
34
PR merge metrics
No merged PRs in 30d

Description

## Goal

Add a focused Rust recipe showing the complete v0.16 NFT flow:

1. Create authenticated Alice and Bob wallets.
2. Create a user `NonFungibleFaucet`.
3. Compute an NFT asset commitment from metadata and a salt.
4. Mint the NFT to Alice through the production `MintNote` / `MintNoteStorage` flow.
5. Have Alice consume and transfer the NFT to Bob.
6. Have Bob consume it and verify final ownership.

## Dependency

Blocked until the tutorials Rust client is migrated from v0.15 to v0.16. Philipp is working on that migration. Implement this from updated `main` after it lands; do not introduce a second temporary dependency stack.

## Deliverables

- A concise page under `docs/src/rust-client/`.
- A matching runnable binary under `rust-client/src/bin/`.
- Registration in `docs/src/lib.rs` and the Rust tutorial runner.
- The documentation and runnable example use the same flow.
- The recipe explains that `compute_asset_commitment(metadata, salt)` is an off-chain convention. The faucet does not validate the metadata, salt, or knowledge of the preimage.

## Acceptance criteria

- [ ] Creates a non-fungible faucet using the v0.16 standard APIs.
- [ ] Mints one NFT to Alice using `MintNote` / `MintNoteStorage`.
- [ ] Alice consumes and transfers the NFT to Bob using `PaymentNoteDescription` and `build_pay_to_id`.
- [ ] Bob consumes the transfer note.
- [ ] The example verifies Alice no longer owns the NFT and Bob does.
- [ ] Rust checks and documentation tests pass.
- [ ] `yarn tutorials --rust=nft_mint_transfer` passes.
- [ ] The ingested page renders and the Docs build passes.

## Out of scope

Fees, burning, Web/React SDKs, marketplace behavior, and metadata hosting. Reuse the canonical v0.16 network and fee bootstrap established by the migration without teaching fees in this recipe.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.