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."
Fixed Denomination Tokens are an AppChain-only feature. They require smart contract execution on the L2.
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
Feature
Standard ERC-20
Fixed Denomination
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:
Strict JSON Format: The JSON must be minified (no whitespace), use exact key order as shown, and contain no extra fields. The legacy protocol name "p":"erc-20" is also accepted for backward compatibility.
Deploy Parameters
Field
Description
Constraints
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
Field
Description
Constraints
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:
id must be ≥ 1 (note IDs start at 1)
amt must exactly equal the token's lim value
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."