ERC-5192: Minimal Soulbound NFTs

Minimal interface for soulbinding EIP-721 NFTs


Metadata
Status: FinalStandards Track: ERCCreated: 2022-07-01
Authors
Tim Daubenschütz (@TimDaub), Anders (@0xanders)
Requires

Abstract


This standard is an extension of EIP-721. It proposes a minimal interface to make tokens soulbound using the feature detection functionality of EIP-165. A soulbound token is a non-fungible token bound to a single account.

Motivation


The Ethereum community has expressed a need for non-transferrable, non-fungible, and socially-priced tokens similar to World of Warcraft’s soulbound items. But the lack of a token standard leads many developers to simply throw errors upon a user's invocation of transfer functionalities. Over the long term, this will lead to fragmentation and less composability.

In this document, we outline a minimal addition to EIP-721 that allows wallet implementers to check for a token contract's permanent (non-)transferability using EIP-165.

Specification


The keywords "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.

Contract Interface

A token with a uint256 tokenId may be bound to a receiving account with function locked(...) returning true. In this case, all EIP-721 functions of the contract that transfer the token from one account to another must throw.


To aid recognition that an EIP-721 token implements "soulbinding" via this EIP upon calling EIP-721's function supportsInterface(bytes4 interfaceID) external view returns (bool) with interfaceID=0xb45a3c0e, a contract implementing this EIP must return true.

Rationale


The above model is the simplest possible path towards a canonical interface for Soulbound tokens. It reflects upon the numerous Soulbound token implementations that simply revert upon transfers.

Backwards Compatibility


This proposal is fully backward compatible with EIP-721.

Security Considerations


There are no security considerations related directly to the implementation of this standard.

Copyright


Copyright and related rights waived via CC0.