PotDrive
Open Drive

Guides

NFTs on Portaldot

Mint with Portaldot's native Nfts pallet. The media is stored by Portaldot too, so no part of the NFT depends on a pinning service.

One signature

Mint as NFT on a file sends one utility.batchAll:

  1. nfts.create and nfts.setCollectionMetadata the first time. Your PotDrive collection is tagged so later mints reuse it.
  2. nfts.mint(collection, item, you).
  3. nfts.setMetadata(collection, item, json), with the metadata written straight into chain state.
item metadata (≤ 256 bytes, the pallet's StringLimit)
{"name":"Field Notes","image":"ipfs://bafykbzace…","url":"https://potdrive.anshverma.tech/f/bafykbzace…","mime":"image/png","by":"PotDrive"}

image points at a CID that Portaldot's own validators hold and prove. Anyone can resolve it through any Portaldot node's bitswap_v1_get, or through the gateway.

Deposits

Collection1 tPOT (once)
Item0.1 tPOT
Metadata0.1 tPOT + 0.06 tPOT per byte

Deposits are held, not spent, while the collection and item exist. When we checked on 17 October 2026, no Nfts collection existed on the V3 testnet yet.

From code

mint.ts
const plan = await planMint(api, owner, { name: "Field Notes", image: `ipfs://${cid}` });
await send(api, api.tx.utility.batchAll(mintCalls(api, owner, plan)), { address: owner, signer });
const mine = await ownedNfts(api, owner);

Edit this page on GitHub