MDL-6551: Token Bound Accounts

The MLD-6551 mirrors the ERC-6551 standard in creating NFTs that hold their own account.

NFTs cannot act as agents or associate with other on-chain assets. This limitation makes it difficult to represent many real-world non-fungible assets as NFTs. For example:

  • A character in a role-playing game that accumulates assets and abilities over time based on actions they have taken

  • An automobile composed of many fungible and non-fungible components

  • An investment portfolio composed of multiple fungible assets

  • A punch pass membership card granting access to an establishment and recording a history of past interactions

This proposal aims to give every NFT the same rights as a MELD user. This includes the ability to self-custody assets, execute arbitrary operations, control multiple independent accounts, and use accounts across multiple chains. By doing so, this proposal allows complex real-world assets to be represented as NFTs using a common pattern that mirrors MELD's existing ownership model.

This is accomplished by defining a singleton registry which assigns unique, deterministic smart contract account addresses to all existing and future NFTs. Each account is permanently bound to a single NFT, with control of the account granted to the holder of that NFT.

The pattern defined in this proposal does not require any changes to existing NFT smart contracts. It is also compatible out of the box with nearly all existing infrastructure that supports Ethereum accounts, from on-chain protocols to off-chain indexers. Token bound accounts are compatible with every existing on-chain asset standard, and can be extended to support new asset standards created in the future.

By giving every NFT the full capabilities of a MELD account, this proposal enables many novel use cases for existing and future NFTs.

The MLD-6551 consists of 3 parts:

  • MLD-721 token to which the account is bound

  • permissionless registry that deploys token-bound accounts

  • token-bound accounts with an MLD-165 interface

To turn an MLD-721 token into MLD-6551 the user just has to deploy a token-bound account via the registry.

Last updated