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
  1. VEMO PROTOCOL
  2. Smart Voucher

How it works

PreviousSmart VoucherNextIntegration

Last updated 9 months ago

The core framework of Vemo in version 1 revolves around three key contracts: VoucherFactory.sol, AccountRegistry.sol, and VoucherAccount.sol. These manage all aspects of creating, splitting, and merging vouchers, creating token-bound accounts, claiming tokens according to vesting schemes, and more.

Any Dapps, project owners, or token holders can act as the Implementation Layer to interact with these contracts. However, to illustrate the functionality of the Vemo protocol in a practical setting, we've created our own . This IVO product makes use of both VemoVestingPoolFactory.sol and VemoVestingPool.sol, as described below:

File Name
Description

VoucherFactory.sol

The code defines a smart contract, Voucher Factory, responsible for managing the distribution of both NFTs tokens and their token-bound accounts (in the form of ERC6551Account) to manage vesting positions. Additionally, it functions as a portal, allowing users to create NFT - ERC6551Account pairs in batches, specify vesting schedules, and request common information.

AccountRegistry.sol

The code defines the AccountRegistry contract, which functions as a factory for ERC6551Account. This contract allows for the creation and retrieval of token-bound accounts for NFTs using the CREATE2 opcode. This contract serves as a registry for token-bound accounts associated with NFTs, providing functionalities for their deterministic creation and retrieval.

VoucherAccount.sol

The code defines the VoucherAccount contract. This contract is designed to hold token assets on behalf of users, while simultaneously delegating ownership of those assets to the corresponding NFT owner. The NFT owner can claim the vesting tokens through either the Voucher contract or directly through the ERC6551Account contract itself.

VemoVestingPoolFactory.sol (for reference only)

The code defines the VemoVestingPoolFactory contract. This contract functions as a factory for creating and managing VemoVestingPool contracts. It provides a standardized and efficient approach for deploying and interacting with token vesting schedules within decentralized applications.

VemoVestingPool.sol (for reference only)

The code defines the VemoVestingPool contract. This contract is responsible for managing token vesting schedules and facilitating the purchase and distribution of tokens according to pre-defined rules. It incorporates functionalities such as whitelist verification, fee calculations, and offering flexible allocation options.

Moreover, Vemo is designed with scalability in mind. It can accommodate locked positions from diverse sources, such as staking as well as possess the flexibility to adapt to various business logics, with the potential for future expansion planned in version 2.

IVO product
Vemo Protocol Architecture