Tenzro
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
← All tutorials