ERC-5700: Bindable Token Interface
Interface for binding fungible and non-fungible tokens to assets.
Abstract
This standard defines an interface for ERC-721 or ERC-1155 tokens, known as "bindables", to "bind" to ERC-721 NFTs.
When bindable tokens "bind" to an NFT, even though their ownership is transferred to the NFT, the NFT owner may "unbind" the tokens and claim their ownership. This enables bindable tokens to transfer with their bound NFTs without extra cost, offering a more effective way to create and transfer N:1 token-to-NFT bundles. Until an NFT owner decides to unbind them, bound tokens stay locked and resume their base token functionalities after unbinding.
This standard supports various use-cases such as:
- NFT-bundled physical assets like microchipped streetwear, digitized car collections, and digitally twinned real estate.
- NFT-bundled digital assets such as accessorizable virtual wardrobes, composable music tracks, and customizable metaverse land.
Motivation
A standard interface for NFT binding offers a seamless and efficient way to bundle and transfer tokens with NFTs, ensuring compatibility with wallets, marketplaces, and other NFT applications. It eliminates the need for rigid, implementation-specific strategies for token ownership.
In contrast with other standards that deal with token ownership at the account level, this standard aims to address token ownership at the NFT level. Its objective is to build a universal interface for token bundling, compatible with existing ERC-721 and ERC-1155 standards.
Specification
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
ERC-721 Bindable
Smart contracts implementing the ERC-721 bindable standard MUST implement the IERC721Bindable
interface.
Implementers of the IER721Bindable
interface MUST return true
if 0x82a34a7d
is passed as the identifier to the supportsInterface
function.
ERC-1155 Bindable
Smart contracts implementing the ERC-1155 Bindable standard MUST implement the IERC1155Bindable
interface.
Implementers of the IER1155Bindable
interface MUST return true
if 0xd0d55c6
is passed as the identifier to the supportsInterface
function.
Rationale
A standard for token binding unlocks a new layer of composability for allowing wallets, applications, and protocols to interact with, trade, and display bundled NFTs. One example use-case of this is at Dopamine, where streetwear garments may be bundled with digital assets such as music, avatars, or digital-twins of the garments, by representing these assets as bindable tokens and binding them to microchips represented as NFTs.
Binding Mechanism
During binding, a bindable token's technical ownership is conferred to its bound NFT, while allowing the NFT owner to unbind at any time. A caveat of this lightweight design is that applications that have yet to adopt this standard will not show the bundled tokens as owned by the NFT owner.
Backwards Compatibility
The bindable token interface is designed to be compatible with existing ERC-721 and ERC-1155 standards.
Reference Implementation
Security Considerations
During binding, because ownership is conferred to the bound NFT contract, implementations should take caution in ensuring unbinding may only be performed by the designated NFT owner.
Copyright
Copyright and related rights waived via CC0.