Fixed Denomination Tokens
ERC-20 tokens that move in fixed batches tied to NFT notes
The ERC-20 Fixed Denomination protocol creates fungible tokens where balances move in fixed batches (denominations) tied to NFT "notes."
Overview
Unlike standard ERC-20 tokens where users can transfer arbitrary amounts, fixed denomination tokens:
Move in fixed batches (the denomination)
Are tied to NFT notes that represent the token amount
Transfer automatically when the note transfers
This creates a unique hybrid between fungible and non-fungible tokens.
How It Differs from Standard ERC-20
Transfer amounts
Arbitrary
Fixed denomination only
Transfer method
transfer() function
Transfer the NFT note
Divisibility
Yes
No (whole notes only)
Balance tracking
Single balance
Balance = sum of owned notes
Deploy a Token
Create an ethscription with JSON content to deploy a new token:
As a Data URI:
Deploy Parameters
tick
Token symbol
Lowercase alphanumeric, max 28 chars
max
Maximum total supply
uint256, must be divisible by lim (max % lim == 0)
lim
Amount per mint note (denomination)
uint256, must divide evenly into max
Constraint: max must be evenly divisible by lim. For example, max=1000 and lim=100 is valid (10 notes), but max=1000 and lim=300 is invalid.
Mint Notes
After deployment, create notes by minting:
As a Data URI:
Mint Parameters
tick
Token symbol (must match deployed token)
Must be a deployed token
id
Unique note identifier within the token
Must be ≥ 1 (IDs start at 1, not 0)
amt
Token amount for this note
Must equal lim from deploy (amt == lim)
Constraints:
idmust be ≥ 1 (note IDs start at 1)amtmust exactly equal the token'slimvalue
Each mint creates:
An ethscription (the mint inscription)
An NFT note representing the token amount
ERC-20 balance credited to the minter
Transfer Mechanics
Transferring tokens works differently than standard ERC-20:
Standard ERC-20 (disabled)
Fixed Denomination (how it works)
Transfer the ethscription (the mint inscription) to move tokens:
When the ethscription transfers:
The inscription moves to the new owner
The NFT note automatically transfers
The ERC-20 balance automatically moves
All three are synchronized atomically.
Example Flow
1. Deploy Token
Alice deploys "mytoken" with max supply 10,000 and denomination 100:
2. Mint Notes
Alice mints note #1:
Alice now has:
1 mint inscription (ethscription)
1 NFT note (tokenId = 1)
100 "mytoken" ERC-20 balance
3. Transfer
Alice transfers the mint inscription to Bob:
Result:
Mint inscription → Bob
NFT note #1 → Bob
100 "mytoken" balance: Alice → Bob
Querying Balances
ERC-20 Balance
Note Ownership
Notes Owned
Each note's amount contributes to the holder's ERC-20 balance. The total balance equals the sum of all owned notes' amounts.
Use Cases
Collectible Tokens
Each note is a unique collectible that also carries fungible value.
Batch Transfers
Transfer multiple notes to move large amounts efficiently.
Marketplace Trading
Notes can be traded on NFT marketplaces while carrying their token value.
Fair Distribution
Fixed denominations ensure equal distribution - everyone gets the same sized "bills."
Technical Details
Contract Architecture
ERC20FixedDenominationManager - Handles deploy/mint operations
ERC20FixedDenomination - Individual token contract (ERC-20 + ERC-721 hybrid)
Storage
Each token stores:
Token metadata (tick, max supply, denomination)
Note registry (id → ethscription mapping)
Balances (derived from note ownership)
Events
Limitations
Cannot transfer partial amounts (only whole notes)
Cannot combine notes
Cannot split notes
Direct ERC-20 transfers are disabled
Security Considerations
Atomic transfers - ERC-20 and NFT always move together
No double-spending - Note ownership enforced on-chain
Immutable denomination - Cannot change after deployment
Supply cap - Cannot exceed max supply
Last updated