tqtezos / minter

OpenMinter is dApp framework for enabling the creation and collection of non-fungible tokens (NFTs) on Tezos.
MIT License
192 stars 91 forks source link

OpenMinter header

OpenMinter

OpenMinter is dApp framework for enabling the creation and collection of non-fungible tokens (NFTs) on Tezos. The dApp enables anyone to create an NFT by filling in just a few fields, create new collection contracts, see their NFTs across contracts, and enable marketplace capabilities to trade them.

Notice

This software is in beta. At the moment, the smart contracts that OpenMinter uses have not been formally audited. Please use this software at your own risk.

Quickstart

To start an OpenMinter instance on testnet, make sure you have yarn installed (v1.22.* or above), and run:

yarn install
yarn start

Support

OpenMinter supports the following networks and software components:

🌐 Mainnet and Florencenet

πŸ“¦ Sandboxed development via Flextesa

🎨 Multimedia NFTs powered by TZIP-21

βš™οΈ Smart contracts based on minter-sdk

πŸ‘› Wallets compatible with Beacon

πŸ“– Indexing via tzkt

πŸš€ IPFS via a local node or Pinata

🏭 Batch minting support

The following dependencies are required to run OpenMinter.

Dependency Version Environments
Yarn v1.22.* or above All
Docker v20.10.* or above Sandbox

Usage

Configuration

The Minter can be configured to run on three different networks: sandbox, testnet (currently set to edonet), and mainnet.

Each network has its own configuration file in the config folder under <network>.json. The schema of these files can be defined as this TypeScript type:

type Config = {
  rpc: string,
  network: string,
  bcd: {
    api: string,
    gui: string
  },
  contracts?: {
    nftFaucet?: string
    marketplace?: {
      fixedPrice: {
        tez: string;
      }
    }
  }
}

Installation

To install and build the dependences required for local development, run:

$ yarn install

The installation process will fetch toplevel NPM dependences

Running

To start OpenMinter on testnet, run:

yarn start # or yarn start:testnet

To run OpenMinter configured for mainnet, run:

yarn start:mainnet

Bootstrapping Your Own Contracts

OpenMinter ships with a set of contracts on mainnet and testnet that are intended only as a reference implementation and demo. In most cases, you will want to originate your own contracts to run OpenMinter. OpenMinter includes a configuration wizard CLI tool to make this process quick and easy.

To start the configuration wizard, run:

yarn bootstrap

Once the configuration wizard is complete, you can run OpenMinter with your custom config by running:

yarn start:custom

And to build OpenMinter for a production deployment with your custom config, run:

yarn build:custom

Sandboxed Mode

Sandboxed mode is available for OpenMinter for local testing purposes. Make sure Docker is installed on your system to run the local services.

NOTE: All data in sandboxed mode is ephemeral. Restarts will not persist any blockchain or indexer data.

Setup and Starting

To start local sandbox services and create the required default contracts, run:

yarn bootstrap:sandbox

Finally, to run the OpenMinter UI, run:

yarn start:sandbox

Stopping

Pressing Ctrl-C (or Command-C on MacOS) after starting the OpenMinter UI will quit the React Scripts process. To teardown the Docker compose system, run:

yarn teardown:sandbox