Minimalistic solana minter program if you don't want to use Metaplex

Overview

Minimalistic solana minter program

The objective of this repository is to be only a minimalistic template for NFTs projects on Solana, so you can build your own program with your own features using this as a model. Also, it is ideal for someone who wants to study Solana. And it uses Serum Anchor framework to make abstractions and to handle automatic serialization and deserialization.

It is inspired on Metaplex, however, it has a few advantages over Metaplex:

  • Lower mint cost and lower deploy cost ~ 20% cheaper
  • Way easier to study the code and to understand it
  • Does not create a master edition by default on every mint
  • Uses only 1 account for configuration, instead of 2
  • Minimalistic

My architecture with Serum Anchor framework

├─ src
│   ├─ context.rs -> structs used on instructions arguments
│   ├─ error.rs -> error structs
│   ├─ lib.rs -> my entrypoint, processor, and register modules
│   ├─ state.rs -> state structs
│   ├─ utils.rs -> helpers functions

About the candy_machine

Metaplex uses 2 accounts for configuration, "config" and "candy_machine". I'm using only one (candy_machine) to reduce costs, confusion and make things simpler.

The "candy_machine" is just a configuration account with variables that will be common to every mint.

How to use

  • Copy your devnet keypair into the root folder, and name it devnet.json (dont worry, this file is listed on .gitignore)
  • Change the cluster and your wallet location in Anchor.toml
  • Go to tests/minimal_mint.ts and make sure the file will run the initializeCandyMachine() function
  • Run yarn anchor build anchor deploy and anchor test
  • Get your program id and candy_machine pubkey and replace the old values in lib.rs Anchor.toml constants.ts

Useful links for studying

The following links helped me to understand the theory of Solana blockchain. I recommend them all.

Building a Solana decentralised twitter
Solana Cookbook
Understanding Program Derived Addresses
SPL Associate Token Account & Merge
How to Mint An NFT On Solana

You might also like...
The Voting example based on MoonZoon and Solana.
The Voting example based on MoonZoon and Solana.

Voting example The Rust-only Voting example based on MoonZoon and Solana. MoonZoon is a Rust Fullstack Framework. Solana is a decentralized blockchain

NFT Marketplace with Rust on Solana

NFT Marketplace with Rust on Solana Compile and Deploy Contracts make sure you have solana installed make sure you have rust installed install phantom

Solana NFT Rust

HI, There Compile and Deploy Contracts make sure you have solana installed make sure you have rust installed install phantom wallet on the browser or

Rust library for program synthesis of string transformations from input-output examples 🔮

Synox implements program synthesis of string transformations from input-output examples. Perhaps the most well-known use of string program synthesis in end-user programs is the Flash Fill feature in Excel. These string transformations are learned from input-output examples.

kindly is a simple Rust implementation of a set-user-ID-root program, similar to sudo but in a much reduced way.

kindly is a simple Rust implementation of a set-user-ID-root program, similar to sudo but in a much reduced way.

A realtime flight tracking program for our Software Engineering 300 class at ERAU
A realtime flight tracking program for our Software Engineering 300 class at ERAU

Flight Tracking ERAU SE300 Description Software that allows for weather and plane tracking to facilitate the user in looking at plane paths. Many peop

Remedy is a multi-threaded rust-imap-maildir synchronization program

remedy Remedy is a multi-threaded rust-imap-maildir synchronization program. Please note that remedy is under heavy development. Current features: IMA

A rust program to try and detect some types of Hardware Keyloggers.
A rust program to try and detect some types of Hardware Keyloggers.

Hardware Keylogger Detection Warning: Certain Types of Hardware keyloggers can not be detected by this program, Passive Hardware Keyloggers are imposs

Kalker (or
Kalker (or "kalk") is a calculator program/website that supports user-defined variables, functions, derivation, and integration

Kalker (or "kalk") is a calculator program/website that supports user-defined variables, functions, derivation, and integration. It runs on Windows, macOS, Linux, Android, and in web browsers (with WebAssembly).

Owner
Gabriel
Blockchain developer and frontend developer.
Gabriel
A variation of the solana helloworld program example with a client written in Rust instead of Typescript

Simple Solana Smart Contract Example This repository demonstrates how to create and invoke a program on the Solana blockchain. In Solana the word prog

zeke 56 Dec 26, 2022
01 Solana program application interface.

01 abi The abi is a repository for interfacing with the 01 program either through a rust client or through CPIs from another Solana program. Program A

Zero One Global Foundation 19 Oct 16, 2022
osu-link is a program which links osu!stable beatmaps to osu!lazer's new store format, saving you disk space.

osu-link is a program which links osu!stable beatmaps to osu!lazer's new store format, saving you disk space.

LavaDesu 2 Nov 8, 2021
Achieve it! How you ask? Well, it's pretty simple; just use greatness!

Greatness! Achieve it! How you ask? Well, it's pretty simple; just use greatness! Disclaimer I do not believe that greatness is the best. It fits a me

Isacc Barker (Milo Banks) 107 Sep 28, 2022
Powerfull Discord Raid Bot written in Rust, use VPN / Proxy because creating 200 channels in 10s Will ratelimit you.

Harakiri-Rust This the first Discord Raid Bot made in RustLang I recommend you use with a VPN or a Proxy to evade Discord Ratelimit. If bot doesn't st

Marco 6 May 1, 2023
This crate provides a convenient macro that allows you to generate type wrappers that promise to always uphold arbitrary invariants that you specified.

prae This crate provides a convenient macro that allows you to generate type wrappers that promise to always uphold arbitrary invariants that you spec

null 96 Dec 4, 2022
The batteries for core that you never knew you needed.

core+ The batteries for core that you never knew you needed: core+ coreplus documentation Core+ contains types that make it possible to write no_std l

Lachlan Sneff 12 May 11, 2022
Tells you how many years you need to wait until your subatomic xeon crystal synchronizer has doubled in plasma inversion efficiency on the Goldberg-Moleman scale or whatever.

about Tells you how many years you need to wait until your subatomic xeon crystal synchronizer has doubled in plasma inversion efficiency on the Goldb

null 2 Dec 3, 2021
Ever got frustrated when you realize that the for loop you were writing

for_each_repeat Ever got frustrated when you realize that the for loop you were writing... fn foo(mut iter: impl Iterator<Item=i32>) { for i in it

null 1 Jun 18, 2022
A tool that, like, screams at you when you say like

Dislike Do you, like,... dislike constantly saying "like" as much as I do? Then, like,... you've come the right place! This tool is like EXACTLY what

ElKowar 27 Jun 27, 2022