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
- Supporter Starts Streaming - When someone begins supporting you
- NFT Queued - System creates a pending NFT mint record
- 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
- Supporter Mints - Supporter triggers minting in the UI
- Metadata Storage - Metadata uploaded to Irys (decentralized storage)
- 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
- Go to Dashboard → NFT tab
- Click Create New NFT Setting
- 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
- Click Save
Linking NFT to Widget
After creating a template:
- Open the NFT template settings
- Select which widget(s) should use this NFT
- Toggle Enabled to activate
- 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 MATICmintNFT()- 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_urlin 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=trueWhen 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
- Design Quality Images - NFTs are permanent, so use high-quality artwork
- Set Realistic Max Supply - Consider your audience size
- Test First - Create a test template and mint to yourself before going live
- Communicate Value - Tell supporters about the NFT feature
- Version Templates - Create new versions instead of overwriting existing designs