Skip to content

Fee Structure

UniVoucher implements a simple, transparent fee model with support for partner fees. This page explains how fees work and how they're calculated.

Fee Overview

UniVoucher implements two types of fees:

Creation Fees

  • The fee is calculated as a percentage of the card amount
  • The current fee percentage is 1% (100 basis points)
  • Fees are paid in the same token as the card
  • Fees are collected at the time of card creation
  • No fees are charged for card redemption or cancellation

Partner Fees

  • Partners can earn 1% of the card amount when facilitating redemptions
  • Partner fees are deducted from the card amount (not added on top)
  • Partner fees are optional and only apply when a partner address is provided
  • Partners receive their fee directly during the redemption transaction

Fee Calculation

Creation Fee Calculation

Creation fees are calculated using the following formula:

Creation Fee = Card Amount × Fee Percentage

Where:

  • Fee Percentage = 1% (0.01)

For example:

  • A card with 100 USDC would incur a creation fee of 1 USDC
  • A card with 1 ETH would incur a creation fee of 0.01 ETH

Partner Fee Calculation

Partner fees are calculated and deducted during redemption:

Partner Fee = Card Amount × 1%
Recipient Amount = Card Amount - Partner Fee

For example, when redeeming a 100 USDC card through a partner:

  • Partner receives: 1 USDC (1% partner fee)
  • Recipient receives: 99 USDC (remaining amount)

Important: Partner fees are deducted from the card amount, not added to the total cost.

The contract uses a more precise calculation with basis points:

function calculateFee(uint256 amount) public view returns (uint256) {
    return amount.mul(feePercentage).div(10000);
}

Where:

  • feePercentage = 100 (basis points, equal to 1%)
  • 10000 basis points = 100%

Total Transaction Value

When creating a card, the total transaction value is:

Total Value = Card Amount + Fee

For example:

  • Creating a card with 100 USDC requires 101 USDC total
  • Creating a card with 1 ETH requires 1.01 ETH total

For bulk card creation, this is multiplied by the number of cards:

Total Value = (Card Amount + Fee) × Number of Cards

Fee Collection and Management

Fee Collection

Fees are collected by the smart contract during card creation:

  1. For native tokens (ETH, BNB, AVAX, etc.):

    • The fee is added to the transaction value
    • The contract separates the fee from the card amount
  2. For ERC-20 tokens:

    • The fee is added to the token approval amount
    • The contract transfers both the card amount and fee

Fee Accounting

The contract maintains separate accounting for fees collected in different tokens:

  • Native token fees are stored in the contract's balance
  • ERC-20 token fees are tracked by token address
  • Fee accounting is separate from card funds

Fee Retrieval

Fees can only be withdrawn by the contract owner:

  • The contract includes a function to withdraw accumulated fees
  • Fees can be withdrawn per token type
  • Withdrawal events are publicly visible on the blockchain

Fee Display

The UniVoucher interface clearly displays fee information:

  1. During Card Creation:

    • The fee is shown alongside the card amount
    • The total transaction value is displayed
    • For bulk cards, both per-card and total fees are shown
  2. In Card Details:

    • The "Fee Paid" is displayed in the advanced card details
    • This is shown for transparency and record-keeping

Fee Considerations by Network

While the fee percentage is the same across all networks, different networks have different gas costs:

  • High-gas networks (like Ethereum mainnet):The transaction gas cost may be higher than the fee for small card amounts

  • Low-gas networks (like Polygon, Arbitrum, etc.): Gas costs are typically much lower, making the fee more significant in proportion

Transparent Fee Policy

UniVoucher maintains a transparent fee policy:

  • Creation Fee: 1% of card amount (paid by card creator)
  • Partner Fee: 1% of card amount (deducted during redemption, if partner is involved)
  • No Hidden Charges: All fees are clearly disclosed
  • No Redemption Fees: Recipients don't pay to redeem cards
  • No Cancellation Fees: No cost to cancel unredeemed cards
  • No Maintenance Fees: No ongoing costs for active cards

The only cost beyond the creation fee is the blockchain network gas fee, which is standard for all blockchain transactions. Partner fees (when applicable) are deducted from the card amount and don't create additional costs for the card creator or recipient.

Future Fee Adjustments

The fee percentage is managed through the smart contract:

  • The current fee is 1%
  • Fee changes would be transparent and announced to the community
  • The contract allows fee adjustments up to a maximum hard cap of 2%
  • The contract emits an event whenever the fee percentage changes

event FeePercentageUpdated(
    uint256 oldFeePercentage,
    uint256 newFeePercentage,
    uint256 timestamp
);
function setFeePercentage(uint256 newFeePercentage) external onlyOwner {
   require(newFeePercentage <= 200, "Fee cannot exceed 2%");
   uint256 oldFeePercentage = feePercentage;
   feePercentage = newFeePercentage;
   emit FeePercentageUpdated(oldFeePercentage, newFeePercentage, block.timestamp);
}