Skip to content

onflow/freshmint

Repository files navigation

freshmint — TypeScript NFT Minting Toolkit for Flow

License Latest Release Discord Built on Flow npm

Freshmint is a TypeScript toolkit for minting NFTs on the Flow network. It bundles batch minting workflows, metadata management, IPFS pinning integration, and ready-to-deploy Cadence contracts so builders can ship NFT projects on Flow without reinventing the pipeline.

TL;DR

  • What: A TypeScript toolkit and CLI for creating, minting, and managing NFT collections on Flow.
  • Who it's for: NFT project teams, Cadence developers, and JavaScript/TypeScript builders shipping NFT drops on Flow.
  • Why use it: Combines Cadence NFT contracts, metadata handling, and IPFS workflows into one TypeScript package so you can go from assets to on-chain mint with less glue code.
  • Status: See Releases for the latest version. This project was published as an alpha — review the releases page before production use.
  • License: Apache-2.0
  • Related repos: onflow/flow-nft · onflow/nft-catalog · onflow/flow-cli. Open-sourced since 2021.

Quick Start

Follow the getting started guide to scaffold your first Freshmint project. A typical flow:

  1. Install the CLI from the freshmint package.
  2. Initialize a new project directory with a Cadence contract, metadata schema, and asset folder.
  3. Configure your Flow account, network (emulator, testnet, or mainnet), and IPFS/pinning provider.
  4. Mint NFTs in batches from a CSV or JSON metadata source.

See the per-package READMEs under packages/ for installation and API details.

Features

  • Batch minting: Mint NFTs in batches driven by CSV or JSON metadata inputs.
  • Metadata management: Define and validate NFT metadata schemas compatible with Flow NFT metadata views.
  • IPFS pinning: Pin NFT media and metadata to IPFS through supported pinning providers.
  • Cadence contracts: Ready-to-deploy Cadence contracts for NFT collections, maintained in the cadence directory.
  • Monorepo packages: Core library, CLI, React integrations, and a Cadence loader live in packages/.
  • TypeScript first: Full TypeScript types for metadata, mint flows, and contract interactions.

Example

Freshmint is organized as a monorepo. The primary entry points are:

Refer to docs/getting-started.md for end-to-end examples, and docs/metadata.md for the metadata schema format.

How It Works

Freshmint combines three layers:

  1. Cadence contracts (in cadence/) implement the on-chain NFT collection, following the NonFungibleToken standard and metadata views.
  2. TypeScript packages (in packages/) wrap contract deployment, transaction building, metadata validation, and IPFS pinning into a single JavaScript/TypeScript API and CLI.
  3. Developer workflow: you provide metadata (CSV/JSON) and assets; Freshmint pins media to IPFS, writes metadata into Cadence transactions, and submits batched mint transactions to the configured Flow network.

The result is a repeatable pipeline from a local asset folder to an on-chain NFT collection on Flow.

FAQ

What is Freshmint? A TypeScript toolkit and CLI for creating and minting NFT collections on the Flow network, including Cadence contracts, metadata tooling, and IPFS workflows.

What networks does it target? Freshmint targets Flow — the emulator, testnet, and mainnet. See docs/testnet.md for testnet-specific guidance.

Which smart contract language does Freshmint use? Freshmint's on-chain components are written in Cadence, the resource-oriented smart contract language for Flow. The Cadence sources live in cadence/.

Do I need Node.js to use Freshmint? Yes. Freshmint is published as TypeScript packages and a Node.js CLI. See docs/nodejs.md for Node.js usage.

How does Freshmint handle NFT metadata? Metadata schemas are defined per project and validated before minting. Freshmint can pin metadata and media to IPFS and record the resulting CIDs in Cadence mint transactions. See docs/metadata.md.

Is Freshmint production-ready? Check the Releases page for current version and release notes before using it in production.

Where do I report bugs or request features? Open an issue in this repo, or join the Flow Discord.

About Flow

This repo is part of the Flow network, a Layer 1 blockchain built for consumer applications, AI Agents, and DeFi at scale.

About

Freshmint. TypeScript toolkit for minting NFTs on the Flow network. Batch minting, metadata management, and IPFS pinning workflows

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

 
 
 

Contributors