Tutorial — Enterprise & RWA
Build an NFT marketplace
The NFT factory precompile mints collections with verifiable randomness — no off-chain oracle for trait rolls. Pair it with the settlement engine for trustless escrowed trades.
- Level
- Intermediate
- Time
- ~25 min
- Prerequisites
- Wallet, deployer balance
- Stack
- Solidity · TypeScript
01
Deploy the collection
The NFT factory at 0x1006 mints a fresh collection with deterministic addressing.
const coll = await tz.call("nft_create_collection", {
name: "Tenzro Genesis", symbol: "TZG", max_supply: 10000
});02
Mint with VRF
Call mintRandom() — the VRF precompile rolls traits and rarity verifiably.
await tz.call("nft_mint_random", { collection: coll.address, to: buyer });03
List for sale
List via the settlement escrow primitive — the NFT locks until the trade clears or expires.
await tz.call("nft_list", {
collection: coll.address, token_id: 42,
price: "100", currency: "TNZO"
});04
Settle the trade
The escrow swaps the NFT and the funds atomically. No counterparty risk.
await tz.call("nft_buy", { collection: coll.address, token_id: 42 });Related