owned this note
owned this note
Published
Linked with GitHub
# EIP-4973 Support Study
[toc]
## Background
With [EIP-4973](https://eips.ethereum.org/EIPS/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](https://rinkeby.etherscan.io/address/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 0x25...a1a when trying to add it via their ["Get Listed" page](https://opensea.io/get-listed).

#### ❌ OpenSea: Accessing NFT through Profile Page
OpenSea doesn't index the token on an account's profile page either. 0x88...02 owns an EIP-4973 token.

#### ❌ OpenSea API: Retrieving An Asset (Testnets)
Via [OpenSea's API to retrieve an asset for testnets](https://docs.opensea.io/reference/retrieving-a-single-asset-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](https://docs.opensea.io/reference/retrieving-a-single-contract-testnets), an EIP-4973 asset can be retrieved with the following response:
```json
{
"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
:information_source: The Metamask Extension (opposed to the Metamask Mobile App) doesn't have NFT support yet [[source]](https://metamask.zendesk.com/hc/en-us/articles/360058238591-NFT-tokens-in-your-MetaMask-wallet).
### ✔️ 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](https://docs.etherscan.io) 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](https://docs.etherscan.io/api-endpoints/accounts#get-a-list-of-erc721-token-transfer-events-by-address), which means for Etherscan an EIP-4973 token doesn't exist.
## Further Resources
- [ethereum.org: List of wallets](https://ethereum.org/en/wallets/find-wallet/?filters=has_explore_dapps)