Skip to main content

$GNDX Token

$GNDX is the index product token of GNDX Protocol. It represents proportional ownership of the underlying basket of Web3 gaming tokens held in the IndexVault smart contract.

Key Properties​

PropertyValue
TypeArbitrum-native ERC-20
SupplyElastic — no cap
Genesis NAVExactly $1.00 per token
Value driverNAV of the underlying basket
GovernanceNone — $GNDX does not grant voting rights
UpgradeableUUPS proxy — upgrades require governance vote + 7-day timelock

How $GNDX is Minted​

$GNDX is minted exclusively by MintEngine.sol when a user deposits USDC:

  1. User approves USDC transfer and calls submitMintOrder(usdcAmount, slippageToleranceBps, recipient)
  2. For small orders (below the instant floor of $25,000): always executes instantly from the USDC buffer — $GNDX minted in the same transaction
  3. For mid-range orders ($25,000–$50,000): probabilistically routed to instant or TWAP using a quadratic curve that increasingly favours TWAP as the amount approaches $50,000
  4. For orders above $50,000: 1-hour TWAP execution over 4 equal chunks — $GNDX minted when all chunks complete
  5. Additional rate limiting: per-address rolling 24-hour window (capped at $50,000 cumulative instant) and a global protocol-level budget of $500,000 instant mints per hour
  6. $GNDX minted at the NAV price at the time of completion

A 0.10% mint fee applies to all orders. This fee is sent to FeeCollector.sol and distributed weekly.

How $GNDX is Burned​

$GNDX is burned exclusively by RedeemEngine.sol when a user redeems:

  1. User approves $GNDX transfer and calls the relevant redemption function
  2. A 0.20% exit fee is transferred to FeeCollector (in $GNDX, before burn)
  3. The remaining $GNDX is burned
  4. The user receives their chosen redemption: basket tokens, USDC, or a single overweight token with 0.22% bonus
Proportion Before Burn

The proportion calculation (userShare = gndxAmount / totalSupply) is always computed before any $GNDX is burned. This ordering is enforced in the smart contract and is critical to correctness.

NAV per $GNDX = Total Vault Value (USD) ÷ Total $GNDX Supply

At protocol genesis, when total supply is zero, NAVOracle.getNAVPerToken() returns exactly 1e18 ($1.00). This is hardcoded and not configurable.

After launch, NAV moves with the underlying basket:

  • When the gaming basket appreciates → NAV rises → $GNDX price rises
  • When the gaming basket falls → NAV falls → $GNDX price falls
  • The streaming fee (0.75%/yr) creates a small, predictable downward NAV drag

Secondary Market and Arbitrage​

$GNDX trades on a $GNDX/USDC Uniswap V3 pool on Arbitrum. Its market price is kept tightly pegged to NAV by arbitrage:

  • $GNDX at premium: arbitrageurs mint at NAV, sell at premium → increases supply, pushes price down
  • $GNDX at discount: arbitrageurs buy cheap on DEX, redeem at NAV → decreases supply, pushes price up

This is identical to how ETF creation/redemption units work in traditional finance.

Streaming Fee Drag​

The 0.75% annual streaming fee is charged by very slightly diluting existing $GNDX holders each block:

PeriodNAV DragExample: $10,000 position
1 year0.75%$9,925 net of fee
2 years1.49% cumulative$9,851 net
3 years2.22% cumulative$9,778 net

This is comparable to Vanguard ETF expense ratios and is transparent on-chain at all times.

Contract Address​

The $GNDX contract is a UUPS upgradeable proxy that will be deployed to Arbitrum One. Contract addresses will be published once mainnet deployment is complete.


See also: $GAME Token · Minting · Redeeming