From 3df60071ba169050d505f4d3c5e051a67c7dcd6e Mon Sep 17 00:00:00 2001 From: Damian Parrino Date: Sat, 14 Dec 2024 11:46:54 -0300 Subject: [PATCH 1/7] update --- docs/3.tutorials/nfts/minecraft-nfts.md | 319 ------------------------ website/sidebars.js | 1 - 2 files changed, 320 deletions(-) delete mode 100644 docs/3.tutorials/nfts/minecraft-nfts.md diff --git a/docs/3.tutorials/nfts/minecraft-nfts.md b/docs/3.tutorials/nfts/minecraft-nfts.md deleted file mode 100644 index 0ba2f7c2bd6..00000000000 --- a/docs/3.tutorials/nfts/minecraft-nfts.md +++ /dev/null @@ -1,319 +0,0 @@ ---- -id: minecraft-nfts -title: Create NFTs in Minecraft -sidebar_label: Minecraft NFTs ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -> In this tutorial you'll learn how to take your custom Minecraft creations and mint the schematics into NFTs on the NEAR blockchain! - -## Overview - -This tutorial will run you through minting Minecraft structures of any size onto the NEAR blockchain. It will allow you to copy and paste the designs into your own worlds. For this, we will be using WorldEdit to download and read the schematics and we'll put them on-chain using [IPFS](https://ipfs.io/). - -## Prerequisites - -:::info -It is recommended that you first complete the introductory **[minting NFTs tutorial](/tutorials/nfts/minting-nfts)** -::: - -To complete this tutorial successfully, you'll need: - -- [A Minecraft account](https://www.minecraft.net/) -- [WorldEdit installed](https://worldedit.enginehub.org/en/latest/install/) -- [A NEAR account](#wallet) -- [NEAR command-line interface](/tools/near-cli#installation) (`near-cli`) - -## Creating a Schematic - -In this section, we'll be creating the Minecraft schematic to put on chain. - -### Setup - -- Once you have [WorldEdit](https://worldedit.enginehub.org/en/latest/install/) installed and Minecraft loaded up, let's check if WorldEdit is working properly by running: - -```bash -//pos1 -``` - -If WorldEdit is properly installed, it should output `First position set to (X, Y, Z).` where X, Y, and Z are coordinates. - -For this tutorial, we will be minting a small village house. To follow along, choose any structure that you'd like to mint as shown below: - -![Village House Minecraft](/docs/assets/nfts/village-house-minecraft.png) - -You'll then want to choose the boundaries of the structure that you'd like to copy. We will turn these into schematics which will be placed on chain for you or others to download and paste in your own worlds. - -- To do this, we'll need to outline the boundaries of the build using WorldEdit. Stand in the bottom left corner of your build and run: - -```bash -//pos1 -``` - -- You can then move to the top right corner and run: - -```bash -//pos2 -``` - -Setting these two positions has now created a cube around your build. - -- We can now copy the contents of that build by running: - -```bash -//copy -``` - -The output should look something like this: - -![Copy Chat Message](/docs/assets/nfts/copy-chat-message-minecraft.png) - -:::info TIP -Remember to note the position of your player when copying. If you copy the build and lets say you're standing on the roof, when you paste the build it will paste the build in a way that will result in you standing on the roof. -::: - -### Sanity Check - -We can check and see if our build is fine by pasting what we just copied elsewhere in our world. - -- Go to a location that you would like to paste the build and run: - -```bash -//paste -``` - -In the example below, we pasted the village house floating above a coral reef biome. You should also see a response notifying you that the clipboard has been pasted. (See example below) - -![Pasted Minecraft House](/docs/assets/nfts/pasted-minecraft-house.png) - -### Creating the Schematics File - -When you're happy with the build you've just copied and pasted, it's time to create the schematic file that we'll mint into an NFT. To do this we'll run a WorldEdit command that will save the schematic file on our local machine. - -- To do this, run the command `schematic save FILE_NAME` replacing `FILE_NAME` with a name of your choosing. - -This will save the file to your Minecraft folder with under `minecraft/config/worldedit/schematics` witha `.schem` extension. - -- Now test your file by loading the schematic we just saved using `schematic load FILE_NAME`. - -This will load the schematic to our clipboard and we're free to paste it in our world. - -## Minting the Schematic - -In this section, we'll mint the schematics file, we've just created and put it on the blockchain using IPFS and web3.storage. In order to proceed, you need to locate the `FILE_NAME.schem` we created in the last section. This file can be found in your Minecraft folder under `minecraft/config/worldedit/schematics`. The location of your minecraft folder differs depending on your OS. - -### Uploading the schematic - -To upload the schematic, we are going to use the free [web3.storage](https://web3.storage/) service built for storing off-chain data. -Web3.storage offers free decentralized storage and bandwidth on [IPFS](https://ipfs.io/) and [Filecoin](https://filecoin.io/). - -#### Steps - -1. Register an account and log in to [web3.storage](https://web3.storage/) either via email or your GitHub. - -2. Go to the [Files](https://web3.storage/) section, and click on the [Upload more Files](https://web3.storage/) button. - - ![web3.storage](/docs/assets/nfts/web3-storage-upload.png) - -3. Once you have uploaded your file, you'll get a unique `CID` for your content, and a URL similar to: - ``` - https://bafybeidadhfilezx23dcdaueo3bjuafqeehokw33vyepkjtppigorrhbpy.ipfs.dweb.link/ - ``` - -:::info -See the [web3.storage docs](https://docs.web3.storage/) for information on uploading multiple files and available API endpoints. -::: - -### Interacting With the Contract - -NEAR has already deployed a contract to the account `nft.examples.testnet` which allows users to freely mint tokens. This is the account we'll be interacting with to mint our NFTs. Alternatively, if you've deployed a contract when following the original tutorial, you can use that as well. - -:::info -We'll be using the IPFS link we got in step three of the uploading process above as the media value when calling `nft_mint`. -::: - -- Run the following command and replace the `receiver_id` field and the `--accountId` flag with the account ID you're [logged into](../../4.tools/cli.md#import) with NEAR CLI: - - - - - ```bash - near call nft.examples.testnet nft_mint '{"token_id": "my-token-unique-id", "receiver_id": "YOUR_ACCOUNT", "metadata": { "title": "YOUR NFT TITLE", "description": "YOUR NFT DESCRIPTION", "media": "https://bafybeidadhfilezx23dcdaueo3bjuafqeehokw33vyepkjtppigorrhbpy.ipfs.dweb.link/", "copies": 1}}' --accountId YOUR_ACCOUNT --deposit 0.1 - ``` - - - - - ```bash - near contract call-function as-transaction nft.examples.testnet nft_mint json-args '{"token_id": "my-token-unique-id", "receiver_id": "YOUR_ACCOUNT", "metadata": { "title": "YOUR NFT TITLE", "description": "YOUR NFT DESCRIPTION", "media": "https://bafybeidadhfilezx23dcdaueo3bjuafqeehokw33vyepkjtppigorrhbpy.ipfs.dweb.link/", "copies": 1}}' prepaid-gas '100.0 Tgas' attached-deposit '0.1 NEAR' sign-as YOUR_ACCOUNT network-config testnet sign-with-keychain send - ``` - - - -- Be sure to replace the title, description and media URL with your own. - -
-Example response: -

- -```json -{ - "token_id": "0", - "owner_id": "YOUR_ACCOUNT", - "metadata": { - "title": "My awesome Minecraft NFT", - "description": "Custom log cabin", - "media": "https://bafybeidadhfilezx23dcdaueo3bjuafqeehokw33vyepkjtppigorrhbpy.ipfs.dweb.link/", - "media_hash": null, - "copies": 1, - "issued_at": null, - "expires_at": null, - "starts_at": null, - "updated_at": null, - "extra": null, - "reference": null, - "reference_hash": null - }, - "approved_account_ids": {} -} -``` - -

-
- -- To view tokens owned by an account on the `example-nft` contract, you can call the contract with the following `near-cli` command: - - - - - ```bash - near view nft.examples.testnet nft_tokens_for_owner '{"account_id": "YOUR_ACCOUNT"}' - ``` - - - - - ```bash - near contract call-function as-read-only nft.examples.testnet nft_tokens_for_owner json-args '{"account_id": "YOUR_ACCOUNT"}' network-config testnet now - ``` - - - -
-Example response: -

- -```json -[ - { - "token_id": "0", - "owner_id": "YOUR_ACCOUNT", - "metadata": { - "title": "Some Art", - "description": "My NFT media", - "media": "https://bafybeidadhfilezx23dcdaueo3bjuafqeehokw33vyepkjtppigorrhbpy.ipfs.dweb.link/", - "media_hash": null, - "copies": 1, - "issued_at": null, - "expires_at": null, - "starts_at": null, - "updated_at": null, - "extra": null, - "reference": null, - "reference_hash": null - }, - "approved_account_ids": {} - } -] -``` - -

-
- -## Using the Village Schematic - -Now that you've uploaded your schematic to the blockchain, all someone would need to do to paste it in their own world would be to download the `*.schem` file associated with the IPFS link we minted the NFT with and place it in their schematics folder. - -As a test, we've minted an NFT that contains the village schematic we've been working with so that you can download it and paste it in your world. - -### Getting the Schematics File - -The first thing you'll need to do is view the metadata for the token we've minted that contains the IPFS link to the village schematic. We've minted a token with the ID `village-schematic` under the account `village-schematic.testnet`. - -- To get the media link, run the following command: - - - - - ```bash - near view nft.examples.testnet nft_tokens_for_owner '{"account_id": "village-schematic.testnet"}' - ``` - - - - - ```bash - near contract call-function as-read-only nft.examples.testnet nft_tokens_for_owner json-args '{"account_id": "village-schematic.testnet"}' network-config testnet now - ``` - - - -
-Expected response: -

- -```bash -[ - { - token_id: 'village-schematic', - owner_id: 'village-schematic.testnet', - metadata: { - title: 'Village Schematic', - description: 'Blockcraft Village Schematic Tutorial NFT', - media: 'https://bafybeidadhfilezx23dcdaueo3bjuafqeehokw33vyepkjtppigorrhbpy.ipfs.dweb.link/', - media_hash: null, - copies: 1, - issued_at: null, - expires_at: null, - starts_at: null, - updated_at: null, - extra: null, - reference: null, - reference_hash: null - }, - approved_account_ids: {} - } -] -``` - -

-
- -- You can then take the media link and paste it into your browser. It should send you to a page that looks similar to this: - -![IPFS Village Schem](/docs/assets/nfts/IPFS-village-schem.png) - -- If you click on the file called `village-house.schem`, it will download the file. -- You can then copy the schematics file and paste it into your `minecraft/config/worldedit/schematics` folder. - -### Loading the Schematics File in Minecraft - -- After you've pasted the schematics file into the `minecraft/config/worldedit/schematics` folder, you can then load the schematic into your clipboard by running the following command in your minecraft world: - -```bash -//schematics load village-house -``` - -- You can now paste the file anywhere in your world by simply using the `//paste` command and voila! You should see something similar to this: - -![Final Village Pasting](/docs/assets/nfts/final-village-pasting.png) - -Congratulations! You've just learned how to mint a Mincraft schematic NFT and load it into your world! - -## Versioning for this article - -At the time of this writing, this example works with the following versions: - -- near-cli: `2.1.1` diff --git a/website/sidebars.js b/website/sidebars.js index 4c3538e9011..978675fbc1e 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -401,7 +401,6 @@ const sidebar = { "Non-Fungible Tokens (NFT)": [ "tutorials/nfts/minting-nfts", "tutorials/nfts/minting-nft-frontend", - "tutorials/nfts/minecraft-nfts", { "type": "link", "label": "Building a Frontend", From 04a77ae4e1fa7ad0abaccac3c5ca60bc38df725d Mon Sep 17 00:00:00 2001 From: Damian Parrino Date: Sat, 14 Dec 2024 12:31:48 -0300 Subject: [PATCH 2/7] update --- docs/3.tutorials/nfts/minting-nfts.md | 16 ++--- .../nfts/simple-nft-minting-example.md | 69 ------------------- website/sidebars.js | 6 -- 3 files changed, 8 insertions(+), 83 deletions(-) delete mode 100644 docs/3.tutorials/nfts/simple-nft-minting-example.md diff --git a/docs/3.tutorials/nfts/minting-nfts.md b/docs/3.tutorials/nfts/minting-nfts.md index 4129d7ef657..640f313e833 100644 --- a/docs/3.tutorials/nfts/minting-nfts.md +++ b/docs/3.tutorials/nfts/minting-nfts.md @@ -138,19 +138,21 @@ self.owner_by_id.insert(&token_id, &owner_id); To build your contract run the following command in your terminal which builds your contract using Rust's `cargo`. ```bash -./scripts/build.sh +cargo near build ``` This will generate WASM binaries into your `res/` directory. This WASM file is the smart contract we'll be deploying onto the NEAR blockchain. -> **Tip:** If you run into errors make sure you have [Rust installed](/build/smart-contracts/quickstart#prerequisites) and are in the root directory of the NFT example. +:::tip +If you run into errors make sure you have [Rust installed](/build/smart-contracts/quickstart#prerequisites) and are in the root directory of the NFT example. +::: ### Testing the contract {#testing-the-contract} Written in the smart contract there are pre-written tests that you can run. Run the following command in your terminal to perform these simple tests to verify that your contract code is working. ```bash -cargo test -- --nocapture +cargo test ``` > **Note:** the more complex simulation tests aren't performed with this command but you can find them in `tests/sim`. @@ -399,14 +401,12 @@ Finally, if you are new to Rust and want to dive into smart contract development **_Happy minting!_** 🪙 -## Blockcraft - a Practical Extension - -If you'd like to learn how to use Minecraft to mint NFTs and copy/paste builds across different worlds while storing all your data on-chain, be sure to check out our [Minecraft tutorial](/tutorials/nfts/minecraft-nfts) - -## Versioning for this article {#versioning-for-this-article} +:::note Versioning for this article At the time of this writing, this example works with the following versions: - cargo: `cargo 1.54.0 (5ae8d74b3 2021-06-22)` - rustc: `rustc 1.54.0 (a178d0322 2021-07-26)` - near-cli: `2.1.1` + +::: diff --git a/docs/3.tutorials/nfts/simple-nft-minting-example.md b/docs/3.tutorials/nfts/simple-nft-minting-example.md deleted file mode 100644 index fd68d09eea2..00000000000 --- a/docs/3.tutorials/nfts/simple-nft-minting-example.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -id: minting-nft-frontend -title: Minting NFT Front-end -sidebar_label: Minting Front-end ---- -import {Github} from "@site/src/components/codetabs" - -# NFT Minting Front-end - -> In this tutorial you'll learn how to create a simple NFT front-end and mint a "Go Team" NFT on the NEAR blockchain straight from your web browser. - -## App Overview - -The app is fairly simple: the user signs in and hits the Mint NFT button. Once the user hits the mint button, a "Go Team" NFT is minted and sent to their NEAR Wallet. - -![Front-end](/docs/assets/nfts/nft-mint-frontend.png) - -## Smart Contract code - -The code for the NFT smart contract can be found in the [Zero to Hero NFT tutorial](/tutorials/nfts/introduction)'s [GitHub repository](https://github.com/near-examples/nft-tutorial/tree/main/nft-contract/src), under the `main` branch. - -The contract methods used in this application are as follows: - -- `nft_mint`: Function used to mint tokens. -- `check_token`: Custom function created to check for the existence of a token. This helps to ensure one token per user. - -## Front-end - -The front-end of the contract was implemented using `create-near-app`. [React Bootstrap](https://react-bootstrap.github.io/) was used for the styling of the application. - -To bootstrap your React front-end, run the following command on your terminal: - -```sh -npx create-near-app --frontend react --contract rust -``` - -Then, simply import the contract files from the `main` branch, and you'll have the needed structure to run the application. - -### Start - -Upon mounting the application's components, the app checks for the existence of a non-fungible token. - - - -If no prior NFT has been minted, the mint button will be available for use. - -### Mint button - -Here is the function behind the mint button. The meta data has been filled out for the user already: - -- `token_id` is set by the user's account id, -- and the `media` link is hard-coded to a `goteam-gif.gif` hosted on IPFS. - - - -After hitting the Mint NFT button the user will be able to check out the newly minted NFT at [wallet.testnet.near.org](https://testnet.mynearwallet.com//?tab=collectibles), under the Wallet's `Collectibles` tab. - -## Final remarks - -You can find the complete application repository [on GitHub](https://github.com/near-examples/nft-tutorial-frontend) to clone and run. -In the configuration folder you can see that this smart contract has been deployed to `nft-frontend-simple-mint.blockhead.testnet`: - - - -You can also check out the [explorer link here](https://testnet.nearblocks.io/address/nft-frontend-simple-mint.blockhead.testnet) to see how many individuals have been minting their own _Go Team_ NFTs. _**Happy Minting!**_ - -:::tip -Clone and run this example from https://github.com/near-examples/nft-tutorial-frontend -::: diff --git a/website/sidebars.js b/website/sidebars.js index dbe450b5505..5813ff7333d 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -400,12 +400,6 @@ const sidebar = { { "Non-Fungible Tokens (NFT)": [ "tutorials/nfts/minting-nfts", - "tutorials/nfts/minting-nft-frontend", - { - "type": "link", - "label": "Building a Frontend", - "href": "https://github.com/near-examples/nft-tutorial-frontend" - }, { "type": "html", "value": "
" From 0b90ff3db7cab2324d77da3015e14eff656ff3a6 Mon Sep 17 00:00:00 2001 From: Damian Parrino Date: Mon, 16 Dec 2024 12:06:03 -0300 Subject: [PATCH 3/7] Update nft.md --- docs/2.build/5.primitives/nft.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/2.build/5.primitives/nft.md b/docs/2.build/5.primitives/nft.md index 2323fc13666..493cd34a872 100644 --- a/docs/2.build/5.primitives/nft.md +++ b/docs/2.build/5.primitives/nft.md @@ -56,7 +56,7 @@ The easiest way to create and handle NFTs is by using one of the existing commun --- ## Deploying a NFT Contract -If you want to deploy your own NFT contract, you can create one using our [reference implementation](https://github.com/near-examples/NFT) +If you want to deploy your own NFT contract, you can create one using our [reference implementation](https://github.com/near-examples/NFT) Simply personalize it and deploy it to your account. @@ -159,7 +159,7 @@ In both cases, it is necessary to invoke the `nft_transfer` method, indicating t - + @@ -240,9 +240,9 @@ Basic NFT contracts following [the NEP-171 and NEP-177 standards](https://nomico For this purpose, there are ecosystem apps such as [Paras](https://paras.id/) or [Mintbase](https://www.mintbase.xyz/), that use dedicated marketplace contracts. -In order to put a NFT for a sale on a marketplace you need to do two actions: +In order to put a NFT for a sale on a marketplace you need to do two actions: -1. Cover data storage costs in the marketplace contract. +1. Cover data storage costs in the marketplace contract. 2. Approve the marketplace to sell the NFT in your NFT contract.
@@ -284,10 +284,14 @@ For this purpose, there are ecosystem apps such as [Paras](https://paras.id/) or --- +## Tutorials + +- [NFT Tutorial](/tutorials/nfts/js/introduction) _Zero to Hero_ (JavaScript SDK) - a set of tutorials that cover how to create a NFT contract using JavaScript. +- [NFT Tutorial](/tutorials/nfts/introduction) _Zero to Hero_ (Rust SDK) - a set of tutorials that cover how to create a NFT contract using Rust. + + ## Additional Resources -1. [NFT Tutorial](/tutorials/nfts/js/introduction) (NEAR examples, JavaScript SDK) - a set of tutorials that cover how to create a NFT contract using JavaScript. -2. [NFT Tutorial](/tutorials/nfts/introduction) (NEAR examples, Rust SDK) - a set of tutorials that cover how to create a NFT contract using Rust. 3. [NFT Tutorial by Keypom](https://github.com/keypom/nft-tutorial-series) (a fork of the NEAR example tutorial). 4. [Paras API documentation](https://parashq.github.io/). 5. [Mintbase API documentation](https://docs.mintbase.xyz/dev/mintbase-graph). From cad5c825ff26d0123d78e35b45ef0b98e6ffff16 Mon Sep 17 00:00:00 2001 From: Damian Parrino Date: Fri, 20 Dec 2024 11:21:21 -0300 Subject: [PATCH 4/7] update --- docs/2.build/5.primitives/nft.md | 2 +- website/sidebars.js | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/docs/2.build/5.primitives/nft.md b/docs/2.build/5.primitives/nft.md index 493cd34a872..7fb4af482ec 100644 --- a/docs/2.build/5.primitives/nft.md +++ b/docs/2.build/5.primitives/nft.md @@ -295,4 +295,4 @@ For this purpose, there are ecosystem apps such as [Paras](https://paras.id/) or 3. [NFT Tutorial by Keypom](https://github.com/keypom/nft-tutorial-series) (a fork of the NEAR example tutorial). 4. [Paras API documentation](https://parashq.github.io/). 5. [Mintbase API documentation](https://docs.mintbase.xyz/dev/mintbase-graph). -6. [Mintbase JS SDK](https://docs.mintbase.xyz/dev/mintbase-sdk-ref) - a set of methods to get data from blockchain, interact with Mintbase contracts, etc. \ No newline at end of file +6. [Mintbase JS SDK](https://docs.mintbase.xyz/dev/mintbase-sdk-ref) - a set of methods to get data from blockchain, interact with Mintbase contracts, etc. diff --git a/website/sidebars.js b/website/sidebars.js index 5813ff7333d..5c680ce9fee 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -250,6 +250,27 @@ const sidebar = { "Primitives & Standards": [ "build/primitives/ft", "build/primitives/nft", + { + type: 'category', + label: 'NFT Tutorials', + items: [ + { + "type": "link", + "label": "Minting NFTs", + "href": "/tutorials/nfts/minting-nfts" + }, + { + "type": "link", + "label": "NFT Zero to Hero (JS)", + "href": "/tutorials/nfts/js/introduction" + }, + { + "type": "link", + "label": "NFT Zero to Hero (Rust)", + "href": "/tutorials/nfts/introduction" + }, + ] + }, "build/primitives/linkdrop", "build/primitives/oracles", "build/primitives/dao", From 770303a47c875fe45efd9da9b3402b946251d2a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dami=C3=A1n=20Parrino?= Date: Fri, 20 Dec 2024 11:23:22 -0300 Subject: [PATCH 5/7] Update docs/3.tutorials/nfts/minting-nfts.md --- docs/3.tutorials/nfts/minting-nfts.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/3.tutorials/nfts/minting-nfts.md b/docs/3.tutorials/nfts/minting-nfts.md index 640f313e833..aa732e9c981 100644 --- a/docs/3.tutorials/nfts/minting-nfts.md +++ b/docs/3.tutorials/nfts/minting-nfts.md @@ -405,8 +405,8 @@ Finally, if you are new to Rust and want to dive into smart contract development At the time of this writing, this example works with the following versions: -- cargo: `cargo 1.54.0 (5ae8d74b3 2021-06-22)` -- rustc: `rustc 1.54.0 (a178d0322 2021-07-26)` -- near-cli: `2.1.1` +- cargo: `cargo 1.83.0 (5ffbef321 2024-10-29)` +- rustc: `rustc 1.83.0 (90b35a623 2024-11-26)` +- near-cli-rs: `0.16.1` ::: From 964186115960c6c49173667d12f999e6b056d9ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dami=C3=A1n=20Parrino?= Date: Fri, 20 Dec 2024 11:25:55 -0300 Subject: [PATCH 6/7] Apply suggestions from code review --- website/sidebars.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/sidebars.js b/website/sidebars.js index 5c680ce9fee..111d8fdee0a 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -261,12 +261,12 @@ const sidebar = { }, { "type": "link", - "label": "NFT Zero to Hero (JS)", + "label": "NFT Contract (JS)", "href": "/tutorials/nfts/js/introduction" }, { "type": "link", - "label": "NFT Zero to Hero (Rust)", + "label": "NFT Contract (Rust)", "href": "/tutorials/nfts/introduction" }, ] From 5405c06fc6fc0dc7660789bc7c895109366c24de Mon Sep 17 00:00:00 2001 From: Guillermo Alejandro Gallardo Diez Date: Sat, 4 Jan 2025 23:00:12 +0100 Subject: [PATCH 7/7] chore: merged nav links into group --- website/sidebars.js | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/website/sidebars.js b/website/sidebars.js index 3d15543d9b0..ec61f00fc17 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -248,25 +248,36 @@ const sidebar = { "build/primitives/what-is", { "Primitives & Standards": [ - "build/primitives/ft", - "build/primitives/nft", { type: 'category', - label: 'NFT Tutorials', + label: 'Fungible Tokens (FT)', items: [ + "build/primitives/ft", { "type": "link", - "label": "Minting NFTs", + "label": "Tutorial: Zero to Hero (Rust) ↗", + "href": "/tutorials/fts/introduction" + }, + ] + }, + { + type: 'category', + label: 'Non Fungible Tokens (NFT)', + items: [ + "build/primitives/nft", + { + "type": "link", + "label": "Tutorial: Minting NFTs ↗", "href": "/tutorials/nfts/minting-nfts" }, { "type": "link", - "label": "NFT Contract (JS)", + "label": "Tutorial: Zero to Hero (JS) ↗", "href": "/tutorials/nfts/js/introduction" }, { "type": "link", - "label": "NFT Contract (Rust)", + "label": "Tutorial: Zero to Hero (Rust) ↗", "href": "/tutorials/nfts/introduction" }, ]