ERC-3475, “Abstract Storage Bonds”, is a token standard designed for debt instruments. One contract can manage many bond classes, each with many issuances (nonces), and each class and nonce can carry its own on-chain metadata — coupon, maturity, collateral, redemption conditions. Instead of deploying a new ERC-20 for every bond series, an issuer can run an entire debt programme from one contract, with redemption progress and terms queryable on-chain.
Key takeaways
- Class = a type of bond (e.g. 5-year senior secured notes); nonce = a specific issuance of that class (e.g. the March 2026 tranche).
- Balances are tracked per
(account, classId, nonceId); transfers can include multiple class/nonce pairs in one transaction. - Metadata is stored abstractly on-chain, so new instrument types can be described without changing the contract.
- Useful for debt programmes with many series; for regulated distribution add identity-gated transfers.
How ERC-3475 works
| Concept | Role |
|---|---|
Transaction{classId, nonceId, amount} |
Unit of a transfer, issuance, redemption or burn |
transferFrom(from, to, Transaction[]) |
Move several bond positions at once |
issue(to, Transaction[]) |
Create bonds for an investor |
redeem(from, Transaction[]) |
Redeem matured bonds |
burn(from, Transaction[]) |
Cancel bonds |
classMetadata / nonceMetadata |
Descriptions of fields (title, type) |
classValues / nonceValues |
The actual term values per class and issuance |
getProgress(classId, nonceId) |
How far a bond is towards redemption |
Use cases
- Corporate debt programmes — many series under one framework, each a nonce.
- Private credit notes — pools or vintages as classes; drawdowns as nonces. See our private credit guide and the education loan case study.
- Amortising instruments — progress tracking for principal repayment.
- Debt-instrument marketplaces — we have built issuance and trading platforms for debt instruments where class/nonce structures simplify listings.
Strengths and trade-offs
Strengths - One contract, many instruments — fewer deployments and audits. - Rich, queryable terms on-chain for investors and venues. - Batch transfers across series.
Trade-offs - Less wallet and exchange support than ERC-20 or ERC-1155. - No built-in compliance, identity or agent controls. - On-chain metadata costs gas and must not include confidential terms.
ERC-3475 vs other debt designs
| Design | Best when |
|---|---|
| ERC-3475 | Many series under one programme with structured on-chain terms |
| ERC-3525 | Positions need partial transfers and merging by value |
| ERC-3643 per series | Regulated distribution with strong identity requirements |
| ERC-1155 IDs per series | You also need non-debt assets in the same contract |
Example class and nonce layout for a debt programme
| Class ID | Class metadata | Nonce ID | Nonce values |
|---|---|---|---|
| 1 | Senior secured notes, 6.5% coupon, EUR | 1 | Issue 2026-03-01, maturity 2029-03-01 |
| 1 | Senior secured notes, 6.5% coupon, EUR | 2 | Issue 2026-09-01, maturity 2029-09-01 |
| 2 | Subordinated notes, 9% coupon, EUR | 1 | Issue 2026-03-01, maturity 2031-03-01 |
| 3 | Trade-finance notes, 90-day, USD | 1…n | One nonce per weekly issuance |
Investors hold balances per (class, nonce). A single transfer can move positions across several classes and nonces — useful for portfolio sales between institutions.
Tracking redemption progress
getProgress(classId, nonceId) returns how far an issuance is towards redemption (for example time elapsed versus maturity). Front-ends use it to show investors maturity timelines; redemption contracts use it to decide when bonds can be redeemed.
Coupons and amortisation
- Bullet bonds: coupons paid per period; principal at maturity.
- Amortising notes: principal repaid in instalments; balances reduce via partial redemptions per nonce.
- Floating-rate notes: coupon rate updated each period from a benchmark oracle; record values per nonce.
Compliance and reporting
Add an eligibility layer that checks every Transaction in a transfer batch, and export registers per class and nonce for transfer agents and auditors. Keep confidential covenants off-chain, anchoring document hashes instead.
Frequently asked questions
It can be, if you add identity checks and agent controls around transfers. Many regulated issuances use ERC-3643 per series instead for ecosystem support.
A class defines a bond type and its shared terms; a nonce is a specific issuance of that class with its own dates and values.
Yes. A distribution contract can read balances per class and nonce and pay coupons pro-rata in a stablecoin or record entitlements for off-chain payment.
Yes, on any EVM-compatible chain.
Yes — any debt claim with defined terms can be modelled as a class with nonces for individual drawdowns or vintages.
It is stored and typed on-chain per class and nonce, rather than as off-chain JSON per token.
This article is for general information only and is not legal, tax or investment advice. Token standards evolve — always confirm the current status of an ERC at eips.ethereum.org and take advice from qualified counsel in each jurisdiction before issuing tokens.


