Internet Computer URI Scheme

Hey devs,

last week I created a small tutorial on how to create an ERC-721 NFT with metadata on the IC. Thereby I noticed that the current URL-based addressing is problematic for this use case.

The ERC-721 standard defines a tokenURI function that returns a URI which should be resolvable to a JSON document in a specific format that describes the asset. However, if we set a URI like https://canisterId.ic0.app/metadata, then our NFT is at the mercy of the DNS system and the ic0.app domain.

I’d like to discuss if the IC needs a URI scheme independent of the DNS similar to IFPS and Arweave. The standard resolution could be via the ic0.app domain, but the addressing shouldn’t be tied to it.

https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml

I’m also wondering if this topic has come up before. I found this thread which has another use case in mind (icp payments):

3 Likes

The Origyn NFT (GitHub - ORIGYN-SA/origyn_nft: The Public Facing Origyn NFT Reference Implementation) will let you set this in your metadata and host your files(multi-library if you’d like). Just put the standard erc-721 items at the top level and they will be accessible via a /info link(along with any other data you might want to include). Domain is a significant issue which we’re trying to work around with the perpetualOS, but a top-level URI would be exciting and we’d love to support it!

I’m not sure if we’re on the same page here, but I might be missing something. My example was an NFT issued on Ethereum/Polygon linked to metadata on the IC.

:+1:

Yes exactly. I’ll try to put together an example. We refer to it internally as ‘mint now, upgrade later’. You can mint a polygon or eth NFT and point the metadata URL to an Origyn NFT canister where you store all your media. If you want advanced functionality in the future there is a t-ecdsa address controlled by the canister that you can transfer your evm based asset to that is controlled by your principal. Once transferred you get all of the Origyn upgraded functionality like built-in marketplace, etc.

1 Like