Vemo Network Docs
  • Overview
  • VEMO PROTOCOL
    • NFT Account
      • How it works
      • Integration
    • Smart Voucher
      • How it works
      • Integration
      • Examples
      • Voucher NFT Collection
  • VEMO APP
    • NFT Account Guidance
      • Create a NFT Account
      • Deposit & Withdraw
      • Connect to a DApp
      • Delegation
    • Marketplace Guidance
    • Smart Voucher Guidance
      • Admin Console
      • IVO Page
      • Portfolio
      • Marketplace
  • TOKENOMICS
    • $VEMO token
    • Vesting Schedule
  • REFERENCES
    • Audits
    • FAQ
Powered by GitBook
On this page
  • Overview
  • Types of Voucher NFT Collections
  • How to create a collection
  1. VEMO PROTOCOL
  2. Smart Voucher

Voucher NFT Collection

Overview

Each Voucher consists of two parts: an NFT (representing ownership) and an ERC6551Account (representing data). The Voucher NFT must belong to a Vemo Voucher NFT Collection, which is associated with a specific token address (locked asset) and must be pre-deployed before minting vouchers.

Types of Voucher NFT Collections

  1. Manual TokenURI Provision: TokenURI must be provided (selfhost tokenURI) but the collection's name and symbol can be customized according.

  2. Auto-Generating TokenURI (Coming Soon): Vemo will offer an algorithm to automatically generate TokenURIs based on a provided template. The collection's name and symbol will be automatically generated based on Vemo's standard.

How to create a collection

The VoucherFactory provides interfaces for creating VoucherCollection,

The deployment contract addresses of VoucherCollection.sol on different chains:

Chain
Address

Avalanche Fuji Testnet

0x65B903D7903d277bE600B8524a759aBEa3CC7e1A

Avalanche Mainnet

0xbB740E17f3c177172CaAcCef2F472DB41b9b1d19

Bnb Mainnet

0x9869524fd160fe3adDA6218883B6526c0977D3a5

  1. Manual TokenURI Provision

  • createVoucherCollection: Create a Collection that associated with a token address, name and symbol need to provide


function createVoucherCollection(
        address token,
        string calldata name,
        string calldata symbol,
        IFactory.CollectionSettings calldata settings
    ) public nonReentrant returns (address) {}

struct CollectionSettings {
    uint96 royaltyRate;
    bool isSoulBound;
    FreeMintableType isFreeMintable;
    bool isSemiTransferable;
}

enum FreeMintableType {
    NON_FREE_MINTABLE,
    FREE_MINT_COMMUNITY,
    FREE_MINT_WHITELIST
}


  1. Auto-Generating TokenURI (Coming Soon)

  • createAutoURIVoucherCollection: Create a Collection that associated with a token address, all tokenURI of tokens will be automatically generated.

function createAutoURIVoucherCollection(
        address token,
        address descriptor
    ) public nonReentrant returns (address) {}
PreviousExamplesNextNFT Account Guidance

Last updated 9 months ago