changed 3 years ago
Linked with GitHub

EIP-4973 Support Study

Background

With EIP-4973, we're suggesting to introduced an EIP-721 token without transfer capabilities. It's our idea to mint EIP-4973 tokens to other addresses, and because they still implement EIP-721's ERC721Metadata EIP-165 interface, most wallets should display the token without much of a necessity for technical adjustments.

Purpose Of This Document

With this document, we want to enumerate wallet implementations that support EIP-721 or EIP-1155 and their native support for EIP-4973.

Methodology

We're deploying an EIP-4973 token to an Ethereum test network like Rinkeby. An example is rinkeby:0x25fca0de76fd5a99b00e03e442e309f985737a1a.

Implementers Case Study

❌ OpenSea

Assessment: It's unclear whether OpenSea will play a vital role in ABT infrastructure. After all, OpenSea is an NFT auction house making money through transaction fees. As ABTs are non-sellable, we can speculate that there won't be much significant action related to ABTs on OpenSea.

❌ OpenSea: Adding A Collection

Opensea rejects 0x25a1a when trying to add it via their "Get Listed" page.

❌ OpenSea: Accessing NFT through Profile Page

OpenSea doesn't index the token on an account's profile page either. 0x8802 owns an EIP-4973 token.

❌ OpenSea API: Retrieving An Asset (Testnets)

Via OpenSea's API to retrieve an asset for testnets, an EIP-4973 asset cannot be retrieved successfully.

😐 OpenSea API: Retrieving A Contract (Testnets)

Via OpenSea's API to retrieve metadata for a contract for testnets, an EIP-4973 asset can be retrieved with the following response:

{
  "collection": null,
  "address": "0x25fca0de76fd5a99b00e03e442e309f985737a1a",
  "asset_contract_type": "non-fungible",
  "created_date": "2022-05-09T14:12:59.077466",
  "name": "Name",
  "nft_version": "3.0",
  "opensea_version": null,
  "owner": null,
  "schema_name": "ERC721",
  "symbol": "Symbol",
  "total_supply": null,
  "description": null,
  "external_link": null,
  "image_url": null,
  "default_to_fiat": false,
  "dev_buyer_fee_basis_points": 0,
  "dev_seller_fee_basis_points": 0,
  "only_proxied_transfers": false,
  "opensea_buyer_fee_basis_points": 0,
  "opensea_seller_fee_basis_points": 0,
  "buyer_fee_basis_points": 0,
  "seller_fee_basis_points": 0,
  "payout_address": null
}

😐 Metamask Desktop

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
The Metamask Extension (opposed to the Metamask Mobile App) doesn't have NFT support yet [source].

✔️ Metamask Mobile

The Metamask Mobile UI does allow "Import[ing] NFTs". If we add an EIP-4973 token's address and tokenId, Metamask Mobile renders the token as expected.

However, when we try to transfer the token, the UI errors with the message: "Intrinsic gas too low".

TBD Etherscan EIP721 Tracking Interface

[TDB] also check if it works by using event Transfer.

❌ Etherscan NFT Tracking API

The Etherscan API has no specific endpoint to list e.g. all of an account's tokens. Rather, for EIP-721 tokens all transfers of an account can be queried, which means for Etherscan an EIP-4973 token doesn't exist.

Further Resources

Select a repo