NFTs
Create a collection, mint, and hold and send NFTs in the wallet.
NFTs on QRDX are native, like tokens: a collection is a registry entry and each NFT is a record of its owner, held in consensus, with no contract to deploy. They are moved by exchange transactions signed with ML-DSA-65.
Run sends this request from your browser to https://test.qrdx.org/rpc.
In the wallet
The NFTs tab of the QRDX Wallet lists the NFTs your account owns on the network, grouped by collection, with their images, descriptions and traits from their metadata. Open one to see it in full, view it on the explorer, or Send it: the wallet shows the collection, the token id and the recipient for review before it signs NFT_TRANSFER. NFTs are held by your quantum-safe (0xPQ) account.
Buy and sell on QRDX Trade
trade.qrdx.org/nfts lists every collection on the network with its floor, listings and volume, and each collection's NFTs with their prices.
- Buy. A listing has a price in QRDX or in a token. Buying is one EVM transaction to the market contract: it moves the NFT to you, pays the seller, and pays the collection's royalty to its creator, all at once or not at all. For a token price the wallet first asks you to let the market take that amount.
- List. Open one of your NFTs, set a price and a currency. The first time, the wallet asks you to let the market move NFTs of that collection (
NFT_SET_APPROVAL_FOR_ALL); it can move one only when it sells. Your NFT stays in your account until then. - Change the price or cancel from the same place. A listing whose seller no longer owns the NFT, or no longer approves the market, is stale: it cannot sell, and anyone can clear it.
- Create a collection and mint under Create a collection; its page then has a mint form for you.
Nothing is held in escrow and the contract has no owner or fee. Every call is run against the latest block before the wallet signs it, so one that would fail says why instead of costing its fee.
A network without the market contract (testnet after a reset) lists collections and NFTs read-only. Anyone can open trading on testnet: Deploy the market contract on the NFTs page deploys it from your account (about 700,000 gas), and once its code checks out on chain it becomes the network's market for everyone.
Metadata
A collection and each NFT carry a uri. Wallets read it as JSON in the common format: name, description, image, and attributes (trait_type and value). https://, ipfs:// and data: URIs are all read. Point image at a stable location: the chain stores the URI, not the file.
Create a collection and mint
NFT_CREATE_COLLECTIONwithname,symbolanduri; optionallymax_supply, royalties (royalty_bpsandroyalty_recipient), amint_authorityand anupdate_authority(you, by default), andnon_transferablefor soulbound tokens.NFT_MINTwithcollection, andto,uri,nameortoken_idas needed. Only the mint authority can mint.- Hand over or renounce an authority with
NFT_SET_AUTHORITY. Renouncing the mint authority fixes the collection's supply for good.
The operations reference lists every NFT operation with its parameters and gas.
Reading NFTs
| Read | |
|---|---|
exchange_getNftCollections | Every collection. |
exchange_getNftCollection(collection) | One collection: metadata, supply, royalties, authorities. |
exchange_getNft(collection, token_id) | One NFT: owner, URI, approved account. |
exchange_getNftsOf(owner, collection?, limit?) | The NFTs an account owns. |
exchange_isNftOperator(collection, owner, operator) | Whether an operator may move all of an owner's NFTs in a collection. |
Run sends this request from your browser to https://test.qrdx.org/rpc.
Inside the EVM, each collection is also an ERC-721, and transfers emit the standard Transfer event with the token id indexed.