ERC-3525, also known as the Semi-Fungible Token (SFT) standard, is an Ethereum Request for Comments that defines tokens with both a unique identifier (like an NFT) and a fungible, transferable value slot (like a balance). This dual nature allows a single token contract to represent assets where each instance is distinct but holds a quantifiable, divisible amount. For example, a real-world bond issuance could be a single ERC-3525 token where each unique token ID represents a specific bond series, and its internal value slot holds the principal amount, which can be split or merged.
ERC-3525
What is ERC-3525?
ERC-3525 is an Ethereum token standard that defines a new asset class combining the properties of fungible tokens (like ERC-20) and non-fungible tokens (like ERC-721).
The standard's core innovation is the slot mechanism. Each token has a slot, which groups tokens with identical metadata and rules. Tokens within the same slot are fungible and their value can be transferred between them, but tokens from different slots are non-fungible. This structure enables complex financial logic, such as representing tranches in a structured product or states in a game item, where the underlying value is programmable and can change based on external conditions or internal logic defined by the contract.
Technically, ERC-3525 is backward compatible with key parts of ERC-721, allowing SFTs to be listed on existing NFT marketplaces. Its interface includes functions for transferFrom (moving an entire token), transferFrom for value (splitting value between tokens), and slotOf to query a token's grouping. This makes it exceptionally suited for Real-World Assets (RWA), financial instruments, and advanced gaming economies where assets have both unique properties and a liquid, fractional value component.
A primary use case is in decentralized finance (DeFi) for representing bonds, insurance policies, or vouchers. An insurance policy token (unique ID) could have a value representing the coverage amount, which could be partially claimed or traded. In gaming, a magical sword (NFT) could have a durability or charge level (value) that depletes with use and can be recharged by merging with other charge tokens, all governed by the slot's rules without requiring multiple token contracts.
How Does ERC-3525 Work?
ERC-3525 is an Ethereum token standard that defines a new type of digital asset, the Semi-Fungible Token (SFT), by combining the properties of both fungible ERC-20 tokens and non-fungible ERC-721 tokens.
At its core, ERC-3525 works by structuring a token as a container with two key properties: a slot and a value. The slot is a non-fungible identifier that defines the token's class or type, similar to an ERC-721 token ID. The value is a fungible, transferable quantity held within that slot, akin to an ERC-20 balance. This dual-layer structure allows a single contract to manage complex assets where units of the same type (same slot) are fungible and can be merged or split, while units of different types (different slots) remain distinct and non-fungible.
The standard introduces specialized functions for managing the token's internal value. Unlike ERC-20, where transfers move entire token balances between external accounts, ERC-3525 enables direct value transfers between token instances within the same slot without changing ownership of the token IDs themselves. This allows for operations like splitting a token's value into two new tokens or merging the value from two tokens into one, all executed through the contract's transferFrom and transferValue functions. This internal accounting is more gas-efficient than traditional approval-and-transfer patterns for managing composite assets.
A practical application is in financial instruments. Consider a bond represented as an ERC-3525 token. Its slot encodes the bond's specific terms (issuer, maturity, coupon). Its value represents the number of units or face value held. An investor can transfer a portion of the bond's value to another wallet, creating a new token instance with the same slot (same terms) but a reduced value, without needing to fractionalize a traditional NFT. This native support for partial ownership and complex state makes ERC-3525 suitable for representing real-world assets (RWA), loyalty points, game items with stackable attributes, and sophisticated DeFi positions.
Key Features of ERC-3525
ERC-3525 defines a token standard that combines the properties of ERC-20 (fungibility) and ERC-721 (non-fungibility), enabling complex financial and identity instruments on Ethereum.
Slot and ID Structure
The core innovation is the dual-identifier system: a slot (defining a token's class or type) and a unique ID (defining the specific instance). All tokens with the same slot are fungible with each other, while tokens in different slots are non-fungible. This allows for representing assets like bonds (slot = bond series, ID = specific certificate) or loyalty points tiers.
Native Value Storage
Each ERC-3525 token has an intrinsic value property, stored directly on-chain within the token itself. This value is a positive integer that can be transferred between tokens of the same slot, enabling operations like splitting and merging value without burning and minting new tokens. It's ideal for representing balances, credits, or stakes attached to a specific identity.
Transfer Flexibility
The standard supports three granular transfer modes:
- Value Transfer: Move a portion of value from one token to another within the same slot.
- Token Transfer: Transfer an entire token (its ID and full value) to a new owner.
- Transfer From: Allows approved operators to manage transfers, similar to ERC-721. This enables complex financial logic like partial redemption or collateral rebalancing.
Composability & Metadata
ERC-3525 tokens are designed for composability with other smart contracts and standards. They implement ERC-165 for interface detection and can hold rich, structured metadata via the ERC-3525 Metadata JSON Schema. This allows tokens to represent detailed real-world attributes, making them suitable for DeFi positions, insurance policies, and verified credentials.
Comparison to ERC-1155
While both are "semi-fungible," they serve different purposes:
- ERC-1155: A batch standard for efficient management of multiple token types (fungible and non-fungible) in a single contract, optimized for gaming and marketplaces.
- ERC-3525: An individual token standard where each token ID is a stateful container with transferable value, optimized for financial instruments and identity.
Primary Use Cases
The standard's structure enables novel applications:
- Financial NFTs: Representing bonds, options, or insurance policies with decaying or accruing value.
- Loyalty & Membership: Tiered programs where points (value) are tied to a specific member ID (token).
- DeFi Vault Shares: Representing a user's position in a vault, where the value is their share and the slot defines the strategy.
- Real-World Asset (RWA) Tokenization: For assets like invoices where the slot is the issuer and the value is the outstanding amount.
ERC-3525 vs. ERC-20 vs. ERC-721
A technical comparison of core properties and capabilities across three major Ethereum token standards.
| Feature | ERC-3525 (Semi-Fungible) | ERC-20 (Fungible) | ERC-721 (Non-Fungible) |
|---|---|---|---|
Primary Use Case | Financial instruments, complex assets | Currencies, governance tokens | Collectibles, unique assets |
Token Type | Semi-fungible (ID + Value) | Fungible | Non-fungible |
Unit of Account | Slot (ID) and Integer Value | Integer Balance | Token ID (Unique) |
Metadata Standard | ERC-3525 & ERC-721 Metadata | Optional (ERC-20 Metadata) | ERC-721 Metadata |
Native Transfer Logic | Value transfer between slots | Balance transfer between addresses | Whole token transfer |
Batch Operations | Native value/slot transfers | Requires custom logic | Requires custom logic |
Composability | Natively composable with DeFi | Base layer for DeFi | Requires wrapping (e.g., ERC-20) |
ERC-3525 Use Cases & Examples
ERC-3525 enables tokens that are fungible at the slot level but unique at the ID level, creating a versatile asset class for representing complex financial instruments and digital assets.
Loyalty & Membership Programs
The standard can model tiered loyalty points and dynamic memberships. A retail chain could create a single Loyalty Points slot. Each user's points balance is a unique token ID within that slot, allowing the points to be programmatically split, merged, or upgraded (e.g., from Silver to Gold tier) by adjusting the token's value. This enables complex reward logic without minting new token contracts.
Game Assets & In-Game Economies
ERC-3525 provides a native structure for game items with stackable attributes. For example, a "Health Potion" slot could contain millions of tokens (IDs), each with a value representing potency or quantity. Players can merge two half-full potions or split a stack, with all actions executed through simple value transfers. This is more efficient than managing individual ERC-721 NFTs for each stackable item.
Real-World Asset (RWA) Tokenization
The standard is powerful for fractionalizing and managing real-world assets. A commercial real estate property can be represented as a slot, with each token ID representing a share. The value denotes the share percentage, and the underlying metadata (properties) can store legal documents, rental income schedules, or appraisal reports. Shares can be programmatically split for further fractionalization or merged for consolidation.
Credit & Debit Systems
ERC-3525 can model on-chain credit lines and debit accounts. A "Credit Line" slot is issued by a protocol, and each user receives a token ID where the value represents their remaining credit limit. As the user draws down or repays credit, the token's value is adjusted accordingly. This creates a semi-fungible, transferable record of credit that can be used as collateral or settled in secondary markets.
Core Technical Mechanism: Slots & IDs
The power of ERC-3525 stems from its two-layer structure:
- Slot: Defines a class of assets (e.g., "US Treasury Bond, 5-Year"). Tokens with the same
slotare fungible and interchangeable. - ID: A unique identifier within a slot. Each ID has its own
value(a uint256) and can store custom metadata. This allows for atomic operations like transferring a portion of a token's value or merging two tokens from the same slot, which is impossible with ERC-20 or ERC-721.
Technical Deep Dive: Slot & Value Mechanics
An exploration of the core architectural components that enable ERC-3525 tokens to represent complex, stateful financial instruments on-chain.
The slot and value mechanics are the foundational data model of the ERC-3525 token standard, enabling a single token contract to manage a portfolio of fungible assets. A slot is a unique identifier representing a class or type of asset (e.g., a specific bond series, a loyalty tier, or a subscription plan), while the value is a uint256 integer representing the quantity or amount of that asset held by an individual token ID. This structure allows a single token ID, akin to a wallet or account, to hold balances of multiple different asset types, with each balance tracked within its dedicated slot.
This dual-component system creates powerful flexibility. The slot is typically immutable and defines the metadata and behavioral rules for assets of its class, such as maturity dates, interest rates, or transfer restrictions. The value, however, is dynamic and transferable. Crucially, ERC-3525 allows for the partial transfer of value between tokens that share the same slot, enabling sophisticated financial operations. For example, a token representing a financial portfolio can send a portion of its bond holdings to another token without transferring its entire identity or other asset holdings, a process known as semi-fungible transfer.
The mechanics enable several key use cases impossible with simpler standards like ERC-20 or ERC-721. In decentralized finance (DeFi), a slot could represent a tranche of a structured product, with values representing user holdings. In game development, a slot could define a type of in-game resource (e.g., "Gold"), with a player's token holding the evolving balance. The contract logic can enforce that value can only be transferred between tokens of the same slot, ensuring asset integrity, while allowing the token's overall identity (its ID) to remain constant and potentially hold other slot balances.
Protocols & Ecosystem Adoption
ERC-3525 is a token standard for Semi-Fungible Tokens (SFTs), enabling complex digital assets with both fungible value and unique properties. It is foundational for representing financial instruments, gaming items, and identity on-chain.
Core Concept: Semi-Fungible Token (SFT)
An ERC-3525 token is a Semi-Fungible Token (SFT) that combines properties of both ERC-20 (fungible) and ERC-721 (non-fungible) standards.
- Slot: A classification ID that groups tokens with identical properties and rules.
- ID: A unique identifier for each token instance within a slot.
- Value: A fungible, transferable quantity assigned to each token ID.
This structure allows tokens in the same slot to be merged, split, and transferred in amounts, while retaining unique metadata.
Key Mechanism: Slot & Value Management
The standard's power lies in its built-in arithmetic for managing token value within slots.
- Transfer by Value: Send a portion of a token's value (e.g., 50 units) to another token, either within the same slot or a compatible one.
- Merging & Splitting: Two tokens in the same slot can be merged into one with combined value, or a single token can be split into multiple new tokens.
- Approval by Slot: Grant spending approval for all tokens within a specific slot, streamlining DeFi interactions.
Primary Use Case: Financial Instruments
ERC-3525 is ideal for representing complex financial positions on-chain with native composability.
- Bonds & Notes: The slot defines the bond series (issuer, maturity, coupon), the ID is the specific note, and the value is the principal amount. Value can be transferred to represent partial ownership.
- Loyalty Points & Vouchers: A slot for a reward program can contain millions of user-specific token IDs, where the value represents the point balance that can be split and spent.
- Real-World Asset (RWA) Tokens: Fractionalized ownership of an asset class (slot) with individual investor positions (IDs) and transferable stake amounts (value).
Adoption & Ecosystem Examples
The standard is gaining traction in projects focused on structured finance and digital asset management.
- Solv Protocol: A leading platform using ERC-3525 for its Convertible Bonds and financial vaults, representing vesting schedules and convertible notes.
- D/Bond: Uses the standard for its price-yield bonds, enabling programmable fixed-income instruments.
- ERC-3525 is also foundational for on-chain gaming assets (like items with stackable quantities) and soulbound reputation systems where a score (value) is attached to a non-transferable identity (ID).
Technical Distinction from ERC-1155
While both standards can represent multiple token types, ERC-3525 is designed for stateful, composable value rather than simple batch operations.
- ERC-1155: Manages balances of distinct token IDs in a batch. It is fungible per ID but lacks internal value transfer between tokens.
- ERC-3525: Each token ID has its own mutable value storage. The focus is on the arithmetic relationship and transferability of value between token IDs within the same ecosystem of slots, enabling complex financial logic natively in the token.
Developer Implementation
Implementing ERC-3525 involves extending the core interface to define slot logic and value rules.
- Core Interface: Must implement functions like
slotOf(uint256 tokenId),valueOf(uint256 tokenId), andtransferValue(uint256 fromTokenId, uint256 toTokenId, uint256 value). - Slot Design: The contract logic must define what each slot represents and the rules for transfers between slots (if allowed).
- Metadata: Can adhere to ERC-3525 Metadata JSON Schema to describe the properties of slots and token instances.
The standard enables new patterns for DeFi composability where tokens carry their own transferable state.
Security Considerations & Best Practices
While ERC-3525 enables powerful financial logic, its unique architecture introduces specific security vectors. These cards detail critical considerations for developers implementing or auditing Semi-Fungible Token (SFT) contracts.
Value Transfer Logic
ERC-3525 tokens have a value (fungible unit) attached to an ID (non-fungible container). This requires careful design:
- Transfer Rules: The standard allows partial value transfers (
transferFromandtransferFromwith a specified value). Contracts must enforce that a token's value never goes below zero and that transfers respect authorization. - Allowance System: The dual-layer allowance system (for IDs and values) is complex. Auditors must check that allowances are correctly decremented for both partial and full transfers to prevent overspending.
- Batch Operations: If implementing batch transfers, ensure atomicity—all transfers in the batch must succeed or fail together to avoid inconsistent states.
Composability & Integration Risks
SFTs are designed for DeFi composability, which amplifies integration risks:
- Approval to Non-Compliant Contracts: Approving value or tokens to a smart contract that does not properly implement the ERC-3525 receiver interface can lead to permanent loss. Use
safeTransferFromwhich checks for receiver compatibility. - External Call Ordering: When an SFT's logic triggers external calls (e.g., to a lending protocol), follow the checks-effects-interactions pattern to prevent re-entrancy and state manipulation before effects are written.
- Oracle Dependence: Financial SFTs (e.g., representing bonds) often rely on price oracles. Use decentralized, time-weighted average price (TWAP) oracles to mitigate manipulation.
Upgradability & Proxy Patterns
Many SFT applications will use upgradeable proxies. This introduces specific threats:
- Storage Collisions: In upgradeable contracts, ensure the new logic contract's storage layout is compatible with the proxy's stored data. A mismatch can corrupt token balances and slots.
- Initialization Attacks: Use a transparent or UUPS proxy pattern with a protected
initializefunction that can only be called once to prevent hijacking of the contract's initial state. - Governance Delay: For critical parameter changes (like adding new slot types), implement a timelock on the governance contract to allow users to react to potentially malicious proposals.
Audit & Testing Priorities
Focus testing and audit efforts on the unique aspects of the ERC-3525 standard:
- Property-Based Testing: Use fuzzing tools (like Echidna) to generate random sequences of mints, transfers, and slot changes to uncover edge-case logic errors.
- Invariant Testing: Define and test core invariants, such as: Total supply must equal the sum of all token values and A token's slot cannot be changed without proper authorization.
- Integration Test Suites: Deploy mock versions of expected integrators (wallets, DEXs, lending protocols) to test end-to-end flows before mainnet deployment.
- Formal Verification: For high-value financial logic, consider formal verification of critical state transitions.
Frequently Asked Questions (FAQ)
Answers to common technical questions about the ERC-3525 standard for Semi-Fungible Tokens (SFTs).
ERC-3525 is an Ethereum token standard that defines Semi-Fungible Tokens (SFTs), which combine the properties of both fungible ERC-20 tokens and non-fungible ERC-721 tokens. It works by representing assets as tokens with a unique slot (defining a class or type) and a mutable value (a numeric quantity). All tokens within the same slot are fungible with each other, meaning their values can be merged, split, and transferred partially, while tokens in different slots are distinct and non-fungible. This dual nature is managed through a core interface that includes functions for querying a token's slot and value, and for executing value transfers between tokens in the same slot.
Get In Touch
today.
Our experts will offer a free quote and a 30min call to discuss your project.