A specialized blockchain for testing use cases with the FRAME NFTs Pallet.

Overview

Substrate NFTs Node

The Substrate NFTs node is a specialized blockchain for testing use cases with the FRAME NFTs Pallet. 🚀

The purpose of this node is to provide developers with an easy way to experiment with the NFTs pallet in a sand-boxed environment. This node may be useful for anyone making guides, tutorials or workshops that cover use cases for the NFTs Pallet.

Depending on your operating system and Rust version, there might be additional packages required to compile this template. Check the Install instructions for your platform for the most common dependencies. Alternatively, you can use one of the alternative installation options.

Launch the chain

The easiest way to launch a node is to download the node from the releases page. Alternatively, you can build and launch the node locally.

Download the node binary

Launch the chain by downloading the binary in the releases page of this repository (macOS and Linux) and executing it:

substrate-nfts-node 

Build the node locally

Follow the official installation steps to set up all Substrate prerequisites.

Afterwards you can install this node using:

cargo install substrate-nfts-node --git https://github.com/sacha-l/substrate-nfts-node.git

Alternatively, you can clone this repo and build the node using this command:

cargo build --release

To launch the chain in development mode (recommended):

./target/release/substrate-nfts-node --dev

About Development mode:

  • Maintains state in a tmp folder while the node is running.
  • Uses the Alice and Bob accounts as default validator authorities.
  • Uses the Alice account as the default sudo account.
  • Has a preconfigured genesis state (/node/src/chain_spec.rs) that includes several prefunded development accounts.

Embedded Docs

After you build the project, you can use the following command to explore its parameters and subcommands:

./target/release/node-template -h

You can generate and view the Rust Docs for this template with this command:

cargo +nightly doc --open

Connect with Polkadot-JS Apps Front-End

After you start the node template locally, you can interact with it using the hosted version of the Polkadot/Substrate Portal front-end by connecting to the local node endpoint. A hosted version is also available on IPFS (redirect) here or IPNS (direct) here. You can also find the source code and instructions for hosting your own instance on the polkadot-js/apps repository.

Alternatives Installations

Instead of installing dependencies and building this source directly, consider the following alternatives.

Nix

Install nix, and optionally direnv and lorri for a fully plug-and-play experience for setting up the development environment. To get all the correct dependencies, activate direnv direnv allow and lorri lorri shell.

Docker

Please follow the Substrate Docker instructions here to build the Docker container with the Substrate Node Template binary.

How to upgrade to new Polkadot release

  • Check Substrate's node-template for new commits between the new Polkadot release branch and the one this repository is currently synced with. The current branch is mentioned in this readme.
  • Apply each commit that happened in this node-template folder since the last sync.
  • Check commits for pallet-nfts since the last time someone synchronized this repository with Substrate in order to not miss any important changes.
  • Execute diener update -s --branch my_polkadot_release_branch.
  • Increment the minor version number in node/Cargo.toml and runtime/Cargo.toml.
  • Execute cargo run --release. If successful, it should produce blocks and a new, up to date, Cargo.lock will be created.
  • Update this README with the hash of the Substrate master commit with which you synchronized. The hash appears two times in this README.
  • Create a PR with the changes, have it reviewed and merged.
  • Replace XX in this command with your incremented version number and execute it: git checkout main && git pull && git tag v0.XX.0 && git push origin v0.XX.0. This will push a new tag with the version number to this repository.
You might also like...
Local blockchain for Free TON DApp development and testing.

TON OS Startup Edition Local blockchain for Free TON DApp development and testing. Have a question? Get quick help in our channel: TON OS Startup Edit

Testing a smart contract on the Solana blockchain

Environment Setup Install Rust from https://rustup.rs/ Install Solana from https://docs.solana.com/cli/install-solana-cli-tools#use-solanas-install-to

A solana program designed to mint Metaplex compliant NFTs.

Solana Minter My program used to mint Amoebits & Amoebit Minis. I wrote it from scratch using the hello-world program as an example & base. Features C

Eternally liquid. Forward compatible. Nested, conditional, & Multi-resourced NFTs.
Eternally liquid. Forward compatible. Nested, conditional, & Multi-resourced NFTs.

RMRK Substrate Rust Setup First, complete the basic Rust setup instructions. Run Use Rust's native cargo command to build and launch the template node

A reference NFT Staking Program & Client for Solana NFTs

This is a reference NFT Staking Program & Client for Solana NFTs. This program is compatible with both Candy Machine v1 and Candy Machine v2 NFTs.

Galleries of NFTs using Solana and Rust for contracts

About this Package created to simplify the process of parsing NFTs on Solana. It consists of: Package basic things like fetch all NFTs for specific wa

HyperCube is a free and open source blockchain project for everyone to use.

XPZ Public Chain HyperCube is a free and open source blockchain project for everyone to use. 日本語 简体中文 正體中文 HyperCube Wiki Wha is HyperCube HyperCube i

Demonstrating how to use Rust to interact with the Solana blockchain.

Solana Scripts This is a library of Rust scripts for specific purposes: Generate a new wallet Create an SPL token Mint an SPL token Get an associated

An Ethereum 2.0 Emulator for Local Testing of Eth2 Applications
An Ethereum 2.0 Emulator for Local Testing of Eth2 Applications

Mousse is an Ethereum 2.0 emulator for local testing of Eth2 applications (mainly Rollups). HTTP Server The REST API definition can be found in the ht

Owner
Sacha Lansky
Sacha Lansky
A substrate pallet that enables Manta's decentialized anynonymous payment (DAP) protocol.

This is a pallet that enables decentialized anynonymous payment (DAP) protocol. The best way to use this repo is to invoke it with a manta-runtime, available from either manta-node or cumulus.

Manta Network 27 Nov 23, 2022
Minimal Substrate node configured for smart contracts via pallet-contracts.

substrate-contracts-node This repository contains Substrate's node-template configured to include Substrate's pallet-contracts ‒ a smart contract modu

Parity Technologies 73 Dec 30, 2022
InvArch Pallet Library - IP Infrastructure for Substrate

InvArch-Pallet-Library Intro This repository should contains the Pallets used in the InvArch blockchain, and reviews their relationships and functions

InvArch 20 Dec 18, 2022
Substrate Pallet for chaotic experimentations

Chaos Pallet The Chaos module is used to inject chaos into a Substrate Runtime and intentionally break things. Overview The Chaos module provides func

Bernardo A. Rodrigues 2 Apr 7, 2022
The implementation of the chain extension for `pallet-assets`

Pallet assets chain extension ⚠️ Chain extension contains vulnerabilities: Don't use it in the production. Fixing vulnerabilities requires changes on

Supercolony 2 Aug 22, 2022
Faterium Substrate Node, Runtime, and Pallets. Contains "faterium-polls-pallet" with logic of Faterium Polls.

Faterium Substrate Node Faterium - a place where fates are forged. This is the official implementation of Faterium Crowdfunding Polls in Rust as Subst

Faterium 3 Dec 15, 2022
Twinsies is a specialized reference-counting pointer where the item is jointly owned in 2 places

twinsies Twinsies is a special shared pointer, similar to an Arc, where two specific objects (called [Joint]) share joint ownership of the underlying

Nathan West 17 Feb 1, 2023
Retina is a network analysis framework that supports 100+ Gbps traffic analysis on a single server with no specialized hardware.

Retina Retina is a network analysis framework that enables operators and researchers to ask complex questions about high-speed (>100gbE) network links

Stanford Security Research 73 Jun 21, 2023
Implementation of Proof of Existence consensus using Substrate Framework, Frame, Pallets, RUST

Substrate Node Template A fresh FRAME-based Substrate node, ready for hacking ?? Getting Started Follow the steps below to get started with the Node T

Vijayendra Gaur 1 Jun 8, 2022
A fresh FRAME-based Substrate node, ready for hacking

Substrate Node Template A fresh FRAME-based Substrate node, ready for hacking ?? Getting Started Follow the steps below to get started with the Node T

Web 3 | Mobile | Blockchain Full Stack Engineer 6 Jun 23, 2023