Abstract
This standard extends ERC-20 to enable efficient token forking through checkpoint-based balance tracking. A forkable ERC-20 token records balance snapshots at each state change. A forked ERC-20 token inherits all balances from a specific checkpoint in the source token,
allowing instant, gas-free distribution to holders without airdrops or claiming mechanisms.
Motivation
Current methods for distributing new tokens based on existing ERC-20 token balances are inefficient:
- Manual airdrops: Taking snapshots and transferring tokens to each holder individually is expensive and gas-intensive.
- Merkle-based claims: While cheaper for deployers,
this approach requires users to pay gas fees to claim tokens and provides poor UX due to claimer needing to provide proofs.
Both approaches are inefficient as they rely on off-chain data construction outside the protocol’s trust domain, introducing potential inconsistencies and allowing for collusion within the Merkle structure.
This EIP proposes a standard for forkable ERC-20 tokens that:
- Enable zero-gas distribution to token holders
- Eliminate manual claiming processes
- Provide verifiable on-chain balance inheritance
- Maintain full ERC-20 compatibility
By implementing checkpointed balances, tokens can be efficiently forked at any historical point,
with new token balances automatically derived from the source token without any state duplication or expensive operations.
Use Cases
Airdrops
Airdrops are a common use case for forkable tokens. Without forkable ERC-20 tokens, manual snapshotting and merkle root creation are required. Then users must manually claim the new ERC-20 token costing gas borne by the claimer.
With forkable ERC-20 tokens, users do not have to claim the new ERC-20 token. The forked ERC-20 token is automatically transferred (via inheritance) to the users who have positive balance at the fork point.
Tokenized Risk and Yield
ERC-4626 is a popular standard for yield-bearing vaults that manage an underlying ERC-20 asset.
Risk and yield are commonly rebased on the same underlying asset,
and this works very well for single-dimensional yield and risk
(Liquid PoS ETH).
However, for multidimensional yield and risk vaults,
the underlying asset may be used for different yield-generating purposes each with their own risk profile.
Forkable ERC-20 tokens allow for tokenization of risk and yield to its immediate beneficiaries.
While this is not a foreign concept in the space,
its implementation has so far been off-chain—with their own trust domain separate from the chain.
Token Migration
Protocol upgrades, tokenomics changes, or contract improvements often require migrating to a new token.
Without forkable ERC-20 tokens, migration requires complex processes:
- Taking manual snapshots of all holder balances
- Deploying the new token contract
- Either airdropping to all holders (expensive) or requiring users to manually claim their tokens via merkle proofs
(poor UX)
With forkable ERC-20 tokens, migration becomes seamless:
- The new token is forked from the old token at a specific checkpoint
- All holder balances are automatically inherited from the checkpoint
- Users can immediately interact with the new token without claiming
- No gas costs for holders, no manual snapshot management required
Governance Token Derivatives
Create governance tokens or voting power derivatives based on historical token holdings without affecting the original token’s utility or requiring users to lock or migrate their holdings.
Rewards and Loyalty Programs
Distribute loyalty or reward tokens proportional to historical holdings or activity,
tracked via checkpoints, without complex off-chain calculation and distribution logic.
For latest specs: ERC-8054: Forkable ERC-20 Token by kevzzsk · Pull Request #1271 · ethereum/ERCs · GitHub
For implementation Reference: GitHub - ERC-8054/ERC-8054: Forkable ERC-20 Tokens