Skip to content
LinQup Docs

NFT Features

Learn how to create and manage NFTs for your supporters

NFT Features

LinQup allows you to reward your supporters with unique NFTs (Non-Fungible Tokens) that commemorate their support. When someone starts streaming to you, they can receive a personalized NFT as a thank-you gift.

What are Support NFTs?

Support NFTs are ERC721 tokens on the Polygon network that serve as:

  • Proof of Support - A permanent record on the blockchain
  • Collectible Memorabilia - Unique digital assets for supporters
  • Customizable Rewards - You design the appearance and metadata

Each NFT includes:

  • Creator name
  • Supporter name (optional)
  • Support date
  • Serial number
  • Custom imagery and metadata

How NFT Minting Works

Automatic Flow

  1. Supporter Starts Streaming - When someone begins supporting you
  2. NFT Queued - System creates a pending NFT mint record
  3. SVG Card Generated - Automatic creation of a visual card with:
    • Template-based design (OG, Square, Story, Card formats)
    • Creator branding
    • Support details and serial number
  4. Supporter Mints - Supporter triggers minting in the UI
  5. Metadata Storage - Metadata uploaded to Irys (decentralized storage)
  6. On-chain Mint - NFT minted to supporter's wallet

Manual Control

You have full control over:

  • When NFT features are enabled
  • Maximum supply limits
  • Template designs
  • Image, audio, and 3D model assets

Setting Up NFT Templates

Creating an NFT Template

  1. Go to DashboardNFT tab
  2. Click Create New NFT Setting
  3. Configure your template:
    • Name - Template name for your reference
    • Creator Name - Displayed on the NFT
    • Image - Upload PNG, JPEG, or WEBP (max 5MB)
    • Audio (Optional) - Add background music
    • Template Type - Choose card size/format
    • Max Supply - Set maximum number of mints
  4. Click Save

Linking NFT to Widget

After creating a template:

  1. Open the NFT template settings
  2. Select which widget(s) should use this NFT
  3. Toggle Enabled to activate
  4. Supporters using that widget will receive NFTs

Editing Templates

You can update existing templates:

  • Change images or audio
  • Adjust max supply
  • Enable/disable for specific widgets
  • All changes are tracked in version history

NFT Metadata

Each NFT includes ERC721-compliant metadata:

{
  "name": "LinQup Support NFT #123",
  "description": "Support stream from X to creator Y",
  "image": "https://...",
  "animation_url": "https://.../model.glb",
  "attributes": [
    { "trait_type": "Creator", "value": "0x..." },
    { "trait_type": "Supporter", "value": "0x..." },
    { "trait_type": "Stream Amount", "value": 100 },
    { "trait_type": "Support Date", "value": "2025-10-23..." },
    { "trait_type": "Platform", "value": "LinQup" }
  ]
}

Metadata is stored on Irys (formerly Bundlr), a decentralized storage solution built on Arweave.

NFT Smart Contracts

LinQup uses:

  • LinQupNFT Contract - ERC721 implementation on Polygon
  • InstantRoyaltySplitterOptimizedV2 - Automatic royalty distribution

Contract interactions include:

  • getMintPrice() - Check current mint price in MATIC
  • mintNFT() - Execute mint transaction
  • Built-in royalty tracking

Managing NFT Settings

Dashboard NFT Section

View all your NFT templates with:

  • Template name and creation date
  • Linked widgets
  • Mint progress (current mints / max supply)
  • Enabled status
  • Quick edit and delete actions

NFT Statistics

Track your NFT collection:

  • Total mints across all templates
  • Remaining supply
  • Per-template mint counts

NFT Settings History

All changes to NFT templates are tracked:

  • What changed (changedBy, changeType)
  • Previous and new data
  • Timestamp of changes

Media Assets

Supported File Types

Images

  • PNG, JPEG, WEBP
  • Max size: 5MB
  • Stored in Vercel Blob (production) or local storage (development)

Audio

  • Various audio formats supported
  • Added as NFT metadata attribute

3D Models

  • Auto-generated GLB files
  • Used as animation_url in metadata
  • Created from template settings with text overlays

Asset Storage

  • Development - Local /public/nft/ directory
  • Production - Vercel Blob storage with automatic cleanup (500 file limit)

Enabling NFT Features

NFT features are controlled by environment variable:

NFT_ENABLED=true

When disabled, all NFT APIs return 405 status.

Frequently Asked Questions

Do I need to deploy my own smart contract?

No. LinQup uses shared smart contracts on Polygon. You just configure templates and settings.

What network are NFTs minted on?

Polygon PoS (mainnet). Low fees make it ideal for NFT distribution.

Who pays for minting?

Supporters pay:

  • MATIC for gas fees
  • Small storage fee (in POL or USDC) for Irys metadata hosting

Can I limit the number of NFTs?

Yes. Set a max supply when creating your template. Once reached, no more NFTs can be minted from that template.

Can supporters sell or trade their NFTs?

Yes. They are standard ERC721 tokens that can be transferred, sold on NFT marketplaces, or traded.

What happens if a supporter stops streaming?

They keep the NFT permanently. It represents their support, regardless of current stream status.

Can I update NFT images after minting?

No. Once minted, the metadata is permanent on Irys/Arweave. However, you can create new template versions for future mints.

Best Practices

  1. Design Quality Images - NFTs are permanent, so use high-quality artwork
  2. Set Realistic Max Supply - Consider your audience size
  3. Test First - Create a test template and mint to yourself before going live
  4. Communicate Value - Tell supporters about the NFT feature
  5. Version Templates - Create new versions instead of overwriting existing designs

Next Steps