Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

🎨 MintThisMF - A production-ready CLI tool for minting NFTs on Flow blockchain with IPFS storage, encrypted key management, and zero friction

License

Notifications You must be signed in to change notification settings

copyleftdev/mtmf

Repository files navigation

MintThisMF (mtmf)

MintThisMF

A CLI tool for minting NFTs on the Flow blockchain with zero friction.

Features

  • πŸš€ Simple CLI - One command to mint NFTs
  • πŸ” Self-custodial - Your keys, your control
  • πŸ“¦ IPFS Storage - Decentralized storage via Pinata/Lighthouse
  • ⚑ Fast - Optimized Rust implementation
  • πŸ”§ Flexible - Multiple profiles and networks

Quick Start

Installation

# Build from source
cargo build --release
# Binary will be at target/release/mtmf

Initialize

mtmf init

Mint an NFT

mtmf mint image.png --name "My NFT" --description "My first NFT"

Commands

Configuration

# Initialize configuration
mtmf init
# Run diagnostics
mtmf doctor

Key Management

# Generate a new key pair
mtmf key generate --alias my-key
# List keys
mtmf key list
# Import existing key
mtmf key import --alias my-key --file key.pem
# Export key
mtmf key export --alias my-key

Minting

# Mint an NFT
mtmf mint image.png \
 --name "My NFT" \
 --description "Description" \
 --to 0x123...
# Dry run (don't submit)
mtmf mint image.png --dry-run
# JSON output
mtmf mint image.png --json

Storage

# Upload file to IPFS
mtmf upload image.png

Profiles

# List profiles
mtmf profile list
# Create profile
mtmf profile create mainnet
# Switch profile
mtmf profile use mainnet
# Delete profile
mtmf profile delete old-profile

Configuration

Configuration is stored at ~/.config/mtmf/config.toml

Example configuration:

version = "1.0"
active_profile = "default"
[[profiles]]
name = "default"
mode = "selfcustodial"
network = "testnet"
[profiles.storage]
provider = "pinata"
api_key = "your-api-key"
[profiles.flow]
address = "0x..."
key_alias = "my-key"
access_node = "access.devnet.nodes.onflow.org:9000"

Requirements

  • Rust 1.70+
  • Flow testnet/mainnet account
  • Pinata or Lighthouse API key

Development

# Build
cargo build
# Run tests
cargo test
# Run with logging
RUST_LOG=debug cargo run -- mint image.png

Architecture

  • Cadence 1.0 compatible
  • ECDSA P-256 signing
  • gRPC for Flow Access API
  • IPFS via Pinata/Lighthouse
  • AES-GCM encrypted key storage

License

MIT

Contributing

Contributions welcome! Please open an issue or PR.

About

🎨 MintThisMF - A production-ready CLI tool for minting NFTs on Flow blockchain with IPFS storage, encrypted key management, and zero friction

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /