Skip to content

distribution-kit

A decentralized platform for flexible token management through configurable staking, vesting, and reward distribution with ERC721 certificate NFTs

DistributionKit is a sophisticated DeFi platform built on the EIP-2535 Diamond Standard that enables project managers to create highly configurable token projects. The platform uses Certificates (ERC721 NFTs) to represent proportional ownership in reward-generating pools, with support for both real token deposits (tShares) and virtual allocations (vShares).

  • Certificate-Based Ownership: Every stake/allocation is an ERC721 NFT that can be transferred, merged, split, or liquidated
  • Dual Share System: Supports both token-backed shares (tShares) and virtual shares (vShares) for flexible allocation models
  • Flexible Reward Distribution: Two distribution modes - progressive (per-second unlock) or upon cycle end (cliff unlock)
  • Multi-Token Rewards: Support for up to 10 different reward tokens per project
  • Cycle-Based Epochs: Time-bounded reward periods with configurable duration
  • Diamond Upgradability: Modular facet architecture allows feature upgrades without changing contract addresses
  • Reward Compounding: Auto-convert rewards to deposit tokens via Uniswap
  • One-Click Liquidation: Exit positions and convert all assets to ETH atomically

The platform implements the EIP-2535 Diamond Standard to achieve:

  • Modular Functionality: Features split across independent facets that can be upgraded separately
  • Gas Optimization: Only relevant code is executed for each operation
  • Single Entry Point: All interactions flow through one ProjectDiamond address per project
  • Unlimited Contract Size: Bypass the 24KB contract size limit
  • Main Hub - Central platform contract managing projects and fees
  • Project Diamond - The main staking/reward contract using the Diamond pattern
  • Certificate NFT Manager - ERC721 contract managing certificate ownership
  • Facets - Individual contract modules that provide specific functionality
  • Interfaces - All interfaces available in the project
  • Libraries - Shared Solidity libraries
  • Types - Data structures, enums, and constants