Rewards Tokenizer Documentation
System for tokenizing Clanker fee admin positions into tradeable ERC20 shares with automatic revenue distribution.
Overview
What is Rewards Tokenizer?
The Rewards Tokenizer allows Clanker token creators to convert their fee admin positions into tradeable ERC20 tokens. This enables:
Tradeable Revenue Rights
100 tokens = 100% of fee stream
Automatic Distribution
Revenue auto-settles on transfer
Permissionless
No approval needed
Multi-Version Support
V3.1+ compatible
Architecture DiagramFOR DEVS
Full system architecture visualization
Interactive diagrams showing contract relationships
System Components
RevenueShareRegistryStores tokenized Clanker tokens β vault mappings. Manages tokenizer contracts.Tokenizers (Factory)Factory contracts that deploy new vaults for each Clanker token.Revenue VaultsIndividual vaults per token that hold and distribute revenue to share holders.How Vaults Work
The tokenizer contracts are factory contracts - they deploy a unique Revenue Vault for each Clanker token you tokenize. You cannot simply point your fee recipient to the tokenizer contract.
Factory Contract Addresses (Base)
Example Transactions
Architecture Principles
Immutable Registry Design
The RevenueShareRegistry is designed to be permanent and unchangeable. Once deployed, it serves as the canonical source of truth for vault mappings. This separation ensures the registry remains stable while tokenizers can be upgraded or added.
Forward Compatibility
- Designed to support future Clanker versions (V5, V6, etc.) as well as V3.1+
- New tokenizers can be added without modifying the registry or existing vaults
- Each tokenizer is self-contained with version-specific logic
- Vaults inherit from
BaseRevenueShareVaultfor consistent revenue distribution
Permissionless Design
- Anyone can tokenize their Clanker admin positions
- No gatekeeping or approval needed from protocol admins
- Users maintain full control of their positions until finalization
Two-Step Tokenization Flow
No CREATE2 PredictionWe explicitly avoid relying on off-chain CREATE2 address prediction in the UI. If the UI incorrectly predicts the vault address, the user transfers admin to the wrong address, and recovering admin rights would require centralized logic controlled by a multisig safe.
initTokenization()Deploys vault on-chain, stores pending state, returns actual vault address
Admin transfers admin role to the verified vault address
Off-chain action via Fee Locker / LP Locker
finalizeTokenization()Validates vault is admin, validates recipient authorization, mints shares
V4 Tokenizer
CurrentClankerV4Tokenizer
New tokens: Tokenize revenue fees for new Clanker V4 tokens via:
tokenizeAndDeployV4Clanker()Existing tokens: Tokenize via 2-step flow:
- 1.
initTokenization()- Admin initiates tokenization - 2.Admin manually updates reward admin to vault in Fee Locker (off-chain)
- 3.
finalizeTokenization()- Admin completes and receives shares
RevenueSharesVaultV4
- Handles reward claims via
claimRewards() - Extends
BaseRevenueShareVaultwith fee distribution logic - Supports V4 Fee Locker with fee conversion
Uniswap V4 Swap Lag Behavior
1-Swap Lag: Due to Uniswap V4's architecture, fees from the most recent swap won't be immediately available for claiming.
This means the latest swap's fees are always "pending" until the next swap occurs.
V3.1.0 Tokenizer
LegacyClankerTokenizerV3_1_0
Tokenizes revenue fees for existing Clanker V3.1.0 tokens via 2-step flow:
- 1.
initTokenization()- Admin initiates tokenization - 2.Admin manually updates creator/interfacer admin to vault in LP Locker (off-chain)
- 3.
finalizeTokenization()- Admin completes and receives shares
Fee Position Types: Tokenizes creator (70%) and interfacer (10%) fee positions separately.
RevenueSharesVaultV3_1_0
- Handles reward claims via
claimRewards() - Extends
BaseRevenueShareVaultwith V3.1.0-specific fee distribution logic - Compatible with Clanker V3.1.0 fee structure and LP locker mechanisms
Token Recovery
Revenue Vaults
Have a rescueTokens() function that allows withdrawing accidentally sent tokens.
Protected: Revenue tokens (clanker/paired tokens) cannot be rescued
Tokenizers
Can rescue any tokens via rescueTokens().
Tokenizers are not designed to hold funds
Future Features
Composable ERC20 Tokens
Revenue shares are designed as composable ERC20 tokens that can be integrated with auction-style contracts and other DeFi protocols.
Fully Transferable with Auto-Settlement
Shares are fully transferable, with automatic revenue distribution ensuring that when tokens are transferred, all accumulated rewards are settled to the original holder before the transfer completes.
Engagement Pools
Trading CompetitionsOn-Chain Trading Competitions
Engagement Pools are the live game layer of PoolFans β transparent, on-chain competitions where players compete on ROI. Everything from entries to payouts resolves trustlessly via smart contracts.
1 Key = 1 Position
Open a position on any listed token and track your live performance
How It Works
Earn Keys Through Engagement
Complete social coordination tasks (like, recast, follow) to earn keys that grant pool entry
Open On-Chain Positions
Use your key to open a position on any listed token β all positions are recorded on-chain
Compete on ROI
When the pool timer ends, all positions close automatically and top ROI performers share the prize pot
Automatic Payouts
Winners receive prizes automatically via smart contracts β no manual claims needed
Fully On-Chain & Trustless
- Positions are recorded on-chain with verifiable entry prices
- ROI calculations are transparent and immutable
- Payouts execute automatically when the pool ends β no intermediaries
- Prize pools are held in smart contracts, not custodial wallets
How to Join a Pool
Access the Platform
Open the PoolFans miniapp in the Base app or on Farcaster, then go to the Pools tab
Review Pool Details
Check the prize pool, current top ROI, creator, number of participants, and time remaining
Select a Token
Choose from trending tokens or browse the full list to find your pick
Confirm Your Position
Hit Confirm to open your position using a key β this is an on-chain transaction
Track Your Performance
View all your pool positions in the Profile tab and monitor your ROI in real-time
How to Create a Pool
Launch Pool Creation
Go to the Create tab and click Launch to start the pool creation flow
Configure Pool Parameters
Set pool name, duration, prize token + amount, and number of winners with percentage splits
Define Engagement Tasks
Choose activities that earn keys: follow an account, like/recast content, or post a cast
Deploy On-Chain
Review everything and hit Create β you'll confirm two on-chain transactions to launch
Creator Configuration
Creators have full control over pool parameters to design competitions that fit their community: