1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[525],{7624:function(e,s,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/tutorials/store-and-mint-nfts-using-erc-1155-metadata-standards",function(){return n(5701)}])},5701:function(e,s,n){"use strict";n.r(s),n.d(s,{__toc:function(){return r}});var l=n(5250),a=n(7147),t=n(7298);let r=[{depth:2,value:"Introduction",id:"introduction"},{depth:2,value:"Uploading Images, Assets, and Metadata",id:"uploading-images-assets-and-metadata"},{depth:3,value:"JavaScript Client Example",id:"javascript-client-example"},{depth:2,value:"Minting your NFT",id:"minting-your-nft"},{depth:3,value:"See Also",id:"see-also"}];function c(e){let s=Object.assign({h1:"h1",h2:"h2",p:"p",h3:"h3",code:"code",pre:"pre",span:"span",ul:"ul",li:"li",a:"a"},(0,t.a)(),e.components);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(s.h1,{children:"Store and mint NFTs using ERC-1155 metadata standards"}),"\n",(0,l.jsx)(s.h2,{id:"introduction",children:"Introduction"}),"\n",(0,l.jsx)(s.p,{children:"This document will guide you through the process of using our service to store and mint NFTs using the ERC-1155 metadata standards. With our service, you can easily upload and store your NFT assets, generate ERC-1155 compliant metadata, and store the metadata on IPFS. You will also learn how to mint your own ERC-1155 tokens by providing the IPFS URL of the metadata in the minting transaction."}),"\n",(0,l.jsx)(s.h2,{id:"uploading-images-assets-and-metadata",children:"Uploading Images, Assets, and Metadata"}),"\n",(0,l.jsx)(s.p,{children:'Before creating the blockchain record for your NFT, you need to store all the off-chain resources that make up the NFT "package." Our service allows you to store the NFT\'s images and assets, generate ERC-1155 compliant metadata, and link the metadata to the assets using IPFS URIs.'}),"\n",(0,l.jsx)(s.p,{children:"To store your NFT assets and metadata, you can use either the JavaScript client or the HTTP API. Both methods support storing metadata and asset files in a single request and automatically update the metadata to link to the asset files using IPFS URIs."}),"\n",(0,l.jsx)(s.p,{children:"For the purpose of this documentation, we will provide examples using JavaScript and the HTTP API."}),"\n",(0,l.jsx)(s.h3,{id:"javascript-client-example",children:"JavaScript Client Example"}),"\n",(0,l.jsxs)(s.p,{children:["The JavaScript client's ",(0,l.jsx)(s.code,{children:"pinNft"})," method is used to store NFT assets and metadata. It takes the asset as a readable stream (",(0,l.jsx)(s.code,{children:"fileStream"}),") and the metadata for your NFT as a JavaScript object (",(0,l.jsx)(s.code,{children:"metadata"}),")."]}),"\n",(0,l.jsx)(s.p,{children:"Here's an example using the JavaScript client:"}),"\n",(0,l.jsx)(s.pre,{"data-language":"javascript","data-theme":"default",hasCopyCode:!0,children:(0,l.jsxs)(s.code,{"data-language":"javascript","data-theme":"default",children:[(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"import"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" AIOZPinClient "}),(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"from"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#1AC69C"},children:"'@aioznetwork/aioz-pin-sdk'"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:";"})]}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"import"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" fs "}),(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"from"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#1AC69C"},children:"'fs'"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:";"})]}),"\n",(0,l.jsx)(s.span,{className:"line",children:" "}),"\n",(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#7F848E",fontStyle:"italic"},children:"// Initialize the client with your API key"})}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"let"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" client "}),(0,l.jsx)(s.span,{style:{color:"#56B6C2"},children:"="}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"new"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#3FA4FF"}
1,children:"AIOZPinClient"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:"("}),(0,l.jsx)(s.span,{style:{color:"#1AC69C"},children:'"key"'}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:", "}),(0,l.jsx)(s.span,{style:{color:"#1AC69C"},children:'"secret-key"'}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:")"})]}),"\n",(0,l.jsx)(s.span,{className:"line",children:" "}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"const"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FFAC60"},children:"readableStreamForFile"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#56B6C2"},children:"="}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FFAC60"},children:"fs"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:"."}),(0,l.jsx)(s.span,{style:{color:"#3FA4FF"},children:"createReadStream"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:"("}),(0,l.jsx)(s.span,{style:{color:"#1AC69C"},children:"'./test.png'"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:");"})]}),"\n",(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#7F848E",fontStyle:"italic"},children:"// Example metadata object"})}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"const"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FFAC60"},children:"metadata"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#56B6C2"},children:"="}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" {"})]}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" name: "}),(0,l.jsx)(s.span,{style:{color:"#1AC69C"},children:'"My Awesome NFT"'}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:","})]}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" description: "}),(0,l.jsx)(s.span,{style:{color:"#1AC69C"},children:'"This is an NFT that represents my creativity as a digital artist!"'}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:","})]}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" image: "}),(0,l.jsx)(s.span,{style:{color:"#D19A66"},children:"null"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:","})]}),"\n",(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" properties: {"})}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" type: "}),(0,l.jsx)(s.span,{style:{color:"#1AC69C"},children:'"image"'}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:","})]}),"\n",(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" origins: {"})}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" http: "}),(0,l.jsx)(s.span,{style:{color:"#1AC69C"},children:'"https://.../"'}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:","})]}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" ipfs: "}),(0,l.jsx)(s.span,{style:{color:"#1AC69C"},children:'"ipfs://Qm..."'})]}),"\n",(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" },"})}),"\n",(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" authors: ["})}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" { name: "}),(0,l.jsx)(s.span,{style:{color:"#1AC69C"},children:'"Author"'}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" }"})]}),"\n",(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" ],"})}),"\n",(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" content: {"})}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#1AC69C"},children:'"text/markdown"'}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:": "}),(0,l.jsx)(s.span,{style:{color:"#1AC69C"}
1,children:'"Lorem ipsum dolor sit amet, consectetur adipiscing elit..."'})]}),"\n",(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" }"})}),"\n",(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" }"})}),"\n",(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:"}"})}),"\n",(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#7F848E",fontStyle:"italic"},children:"// Store the NFT assets and metadata"})}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"async"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"function"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#3FA4FF"},children:"storeNFT"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:"() {"})]}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"const"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FFAC60"},children:"result"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#56B6C2"},children:"="}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"await"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FFAC60"},children:"client"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:"."}),(0,l.jsx)(s.span,{style:{color:"#3FA4FF"},children:"pinNft"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:"({ fileStream: readableStreamForFile, metadata })"})]}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FFAC60"},children:"console"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:"."}),(0,l.jsx)(s.span,{style:{color:"#3FA4FF"},children:"log"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:"("}),(0,l.jsx)(s.span,{style:{color:"#1AC69C"},children:"'Result: '"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:", result)"})]}),"\n",(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:"}"})}),"\n",(0,l.jsx)(s.span,{className:"line",children:" "}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#3FA4FF"},children:"storeNFT"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:"()"})]}),"\n",(0,l.jsx)(s.span,{className:"line",children:" "})]})}),"\n",(0,l.jsxs)(s.p,{children:["In this example, we initialize the client with your API key, create a metadata object that conforms to the ERC-1155 standard, and call the ",(0,l.jsx)(s.code,{children:"pinNft"})," method to store the NFT assets and metadata. The response includes the ",(0,l.jsx)(s.code,{children:"asset_cid"})," and ",(0,l.jsx)(s.code,{children:"metadata_cid"}),", and you can use the metadata CID to build the ",(0,l.jsx)(s.code,{children:"ipfs://"})," URI for the minting process."]}),"\n",(0,l.jsx)(s.h2,{id:"minting-your-nft",children:"Minting your NFT"}),"\n",(0,l.jsx)(s.p,{children:"Once you have the IPFS URI for your metadata, you can proceed to mint your NFT. The exact process for minting an NFT depends on the blockchain you're using and your specific requirements."}),"\n",(0,l.jsx)(s.p,{children:"To mint an NFT, you typically need to interact with a smart contract that handles the minting process. You'll need to call a function in the smart contract that assigns a new token ID and sets the metadata URI for the token."}),"\n",(0,l.jsx)(s.p,{children:"Here's an example of a simple smart contract function for minting ERC-1155 tokens:"}),"\n",(0,l.jsx)(s.pre,{"data-language":"solidity","data-theme":"default",hasCopyCode:!0,children:(0,l.jsxs)(s.code,{"data-language":"solidity","data-theme":"default",children:[(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#7F848E",fontStyle:"italic"},children:"// SPDX-License-Identifier: MIT"})}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"pragma"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" solidity "}),(0,l.jsx)(s.span,{style:{color:"#D19A66"},children:"^0.8.0"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:";"})]}),"\n",(0,l.jsx)(s.span,{className:"line",children:" "}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"import"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#1AC69C"},children:'"ERC1155.sol"'}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:";"})]}),"\n",(0,l.jsx)(s.span,{className:"line",children:" "}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"contract"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FFAC60"},children:"MyNFT"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"is"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FFAC60"},children:"ERC1155"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" {"})]}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FFAC60"},children:"uint256"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"public"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" tokenCounter;"})]}),"\n",(0,l.jsx)(s.span,{className:"line",children:" "}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"constructor"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"}
1,children:"() "}),(0,l.jsx)(s.span,{style:{color:"#3FA4FF"},children:"ERC1155"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:'("") {'})]}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" tokenCounter "}),(0,l.jsx)(s.span,{style:{color:"#56B6C2"},children:"="}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#D19A66"},children:"0"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:";"})]}),"\n",(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" }"})}),"\n",(0,l.jsx)(s.span,{className:"line",children:" "}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"function"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#3FA4FF"},children:"mintNFT"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:"("}),(0,l.jsx)(s.span,{style:{color:"#FFAC60"},children:"string"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"memory"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#C478FF",fontStyle:"italic"},children:"_metadataURI"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:") "}),(0,l.jsx)(s.span,{style:{color:"#FF32C6"},children:"public"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" {"})]}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" tokenCounter"}),(0,l.jsx)(s.span,{style:{color:"#56B6C2"},children:"++"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:";"})]}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#3FA4FF"},children:"_mint"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:"("}),(0,l.jsx)(s.span,{style:{color:"#FFAC60"},children:"msg.sender"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:", tokenCounter, "}),(0,l.jsx)(s.span,{style:{color:"#D19A66"},children:"1"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:", "}),(0,l.jsx)(s.span,{style:{color:"#1AC69C"},children:'""'}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:");"})]}),"\n",(0,l.jsxs)(s.span,{className:"line",children:[(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" "}),(0,l.jsx)(s.span,{style:{color:"#3FA4FF"},children:"_setURI"}),(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:"(tokenCounter, _metadataURI);"})]}),"\n",(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:" }"})}),"\n",(0,l.jsx)(s.span,{className:"line",children:(0,l.jsx)(s.span,{style:{color:"#C478FF"},children:"}"})})]})}),"\n",(0,l.jsxs)(s.p,{children:["In this example, the ",(0,l.jsx)(s.code,{children:"mintNFT"})," function is called to mint a new token. It increments the ",(0,l.jsx)(s.code,{children:"tokenCounter"}),", mints a token with the new ID, and sets the metadata URI using the ",(0,l.jsx)(s.code,{children:"_setURI"})," function."]}),"\n",(0,l.jsxs)(s.p,{children:["When minting your NFT, make sure to provide the properly formatted IPFS URI (e.g., ",(0,l.jsx)(s.code,{children:"ipfs://Qm..."}),") as the ",(0,l.jsx)(s.code,{children:"_metadataURI"})," parameter in the minting transaction."]}),"\n",(0,l.jsx)(s.p,{children:"By following the steps outlined in this documentation, you can easily upload your NFT assets, generate compliant metadata, store the metadata on IPFS, and mint your ERC-1155 tokens."}),"\n",(0,l.jsx)(s.h3,{id:"see-also",children:"See Also"}),"\n",(0,l.jsxs)(s.ul,{children:["\n",(0,l.jsxs)(s.li,{children:[(0,l.jsx)(s.a,{href:"../nfts",children:"NFTs"})," - why NFT assets belong on IPFS."]}),"\n",(0,l.jsxs)(s.li,{children:[(0,l.jsx)(s.a,{href:"./store-and-mint-nfts-using-custom-metadata",children:"Store and mint NFTs using custom metadata"})," - custom metadata instead of a standard."]}),"\n",(0,l.jsxs)(s.li,{children:[(0,l.jsx)(s.a,{href:"../aioz-pin-api/nft",children:"Nft API"})," - create an NFT through the API."]}),"\n",(0,l.jsxs)(s.li,{children:[(0,l.jsx)(s.a,{href:"../sdk",children:"SDKs"})," - the Node.js SDK."]}),"\n"]})]})}s.default=(0,a.j)({MDXContent:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{wrapper:s}=Object.assign({},(0,t.a)(),e.components);return s?(0,l.jsx)(s,{...e,children:(0,l.jsx)(c,{...e})}):c(e)},pageOpts:{filePath:"pages/tutorials/store-and-mint-nfts-using-erc-1155-metadata-standards.md",route:"/tutorials/store-and-mint-nfts-using-erc-1155-metadata-standards",title:"Store and mint NFTs using ERC-1155 metadata standards",headings:r},pageNextRoute:"/tutorials/store-and-mint-nfts-using-erc-1155-metadata-standards"})},7147:function(e,s,n){"use strict";n.d(s,{j:function(){return C}});var l,a=n(4619),t=n.n(a),r=n(4594);n(529);var c=n(79);n(7298);var o=n(5250),i=(0,c.createContext)(!1),d=n(7225);function h({__nextra_pageMap:e,__nextra_dynamic_opts:s,...n}){let{context:l,Layout:a}=function(){let e=globalThis[r.eZ],{route:s}=(0,d.useRouter)();(0,c.useState)({})[1];let n=e.context[s];if(!n)throw Error("No content found for the current route. This is a Nextra bug.");return{context:n,Layout:e.Layout}}(),{Content:t,...h}=l;if(e&&(h.pageOpts={...h.pageOpts,pageMap:e}),s){let{headings:e,title:n,frontMatter:l}=JSON.parse(s);h.pageOpts={...h.pageOpts,headings:e,title:n,frontMatter:l}}return(0,o.jsx)(a,{...h,pageProps:n,children:(0,o.jsx)(i.Provider,{value:n,children:(0,o.jsx)(t,{...n})})})}var p=n(1363),F=n(9199),x=n(439);function j(e){return x(e.replaceAll(/[-_]/g," "))}function y(e){return!!e&&"object"==typeof e&&"folder"===e.type}function m(e){return Object.fromEntries(Object.entries(e).map(([e,s])=>{if(y(s)){let n=e.replace("/","");return[n,s.title||j(n)]}return[e,s||j(e)]}))}function C({pageNextRoute:e,pageOpts:s,nextraLayout:n,themeConfig:a,MDXContent:c,hot:o,pageOptsChecksum:i,dynamicMetaModules:d=[]}){var x;"undefined"==typeof window&&(globalThis.__nextra_resolvePageMap=async()=>
1{if(l)return l;let e=JSON.parse(JSON.stringify(j.pageMap));return await Promise.all(d.map(async([s,{metaObjectKeyPath:n,metaParentKeyPath:l}])=>{let a=await s,r=await a.default(),c=t()(e,n);c.data=r;let o=t()(e,l);!function e(s,n,l=!0){if(l){e(s,{kind:"Meta",data:n.data,locale:n.locale},!1),n.data=m(n.data);return}for(let[l,t]of Object.entries(n.data)){if(!y(t)){var a;if("*"===l)continue;s.children.push({kind:"MdxPage",...n.locale&&{locale:n.locale},name:l,route:(a=s.route,F(p.join(a,l.replace(/^index$/,""))))});continue}let r=l.replace("/",""),c={kind:"Folder",name:r,route:`${s.route}/${r}`,children:[{kind:"Meta",...n.locale&&{locale:n.locale},data:m(t.items)}]};s.children.push(c),e(c,{kind:"Meta",data:t.items,locale:n.locale},!1)}}(o,c)})),l=e});let j=globalThis[x=r.eZ]||(globalThis[x]=Object.create(null));return s.pageMap?(j.pageMap=s.pageMap,j.Layout=n):(s={...s,pageMap:j.pageMap,flexsearch:j.flexsearch},a=j.themeConfig),s={frontMatter:{},...s},j.route=s.route,j.context||(j.context=Object.create(null)),j.context[e]={Content:c,pageOpts:s,themeConfig:a},h}}},function(e){e.O(0,[842,774,888,179],function(){return e(e.s=7624)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.