• Stars
    star
    579
  • Rank 77,126 (Top 2 %)
  • Language
    Rust
  • License
    Other
  • Created almost 3 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Smart contracts maintained by the Metaplex team

Metaplex Program Library

Metaplex smart contracts and SDK.

Program Tests Integration Tests SDK Tests

Metaplex Contracts

Name Rust Crate npm Package
Auction House Crate NPM
Auctioneer Crate NPM
Bubblegum Crate NPM
Candy Machine Core Crate NPM
Candy Machine Crate NPM
Fixed Price Sale Crate NPM
Gumdrop Crate NPM
Hydra Crate NPM
NFT Packs Crate NPM
Token Entangler Crate NPM
Token Metadata Crate NPM

Development

Setting up Rust Tests

Run the build.sh script with the name of the program to build the shared object and put it in a directory called test-programs in the root of the project.

E.g.:

./build.sh auction-house

Running with all builds all programs.

Versioning and Publishing Packages

Smart contract SDK packages are versioned independently since a contract isn't necessarily coupled to other contracts.

We use the following (pre|post)(version|publish) npm scripts to manage related checks, tagging, committing and pushing the version bump.

  • preversion: ensures that the package builds and its tests pass
  • postversion: adds and commits the version bump and adds a tag indicating package name and new version, i.e. @metaplex-foundation/[email protected]
  • prepublishOnly: ensures that the package builds and its tests pass again (just to be really sure)
  • postpublish: pushes the committed change and new tag to GitHub

In order to version and then publish a package just run the following commands from the folder of the package you want to update:

  • npm version <patch|minor|major>
  • npm publish

As you note if version + publish succeeds the scripts end up pushing those updates to the master branch. Therefore, please ensure to be on and up to date master branch before running them. Please don't ever publish from another branch but only from the main one with only PR approved changes merged.

Rust Crates

Package Link Version
Auction House mpl-auction-house Crate
Auctioneer mpl-auctioneer Crate
Bubblegum mpl-bubblegum Crate
Candy Machine Core mpl-candy-machine-core Crate
Testing Utils mpl-testing-utils Crate
Utils mpl-utils Crate
Fixed Price Sale mpl-fixed-price-sale Crate
Gumdrop mpl-gumdrop Crate
Hydra mpl-hydra Crate
NFT Packs mpl-nft-packs Crate
Token Entangler mpl-token-entangler Crate
Token Metadata mpl-token-metadata Crate

npm Packages

Package Link Version
Auction House mpl-auction-house NPM
Auctioneer mpl-auctioneer NPM
Bubblegum mpl-bubblegum NPM
Candy Machine Core mpl-candy-machine-core NPM
Candy Machine mpl-candy-machine NPM
Fixed Price Sale mpl-fixed-price-sale NPM
Gumdrop mpl-gumdrop NPM
Hydra mpl-hydra NPM
NFT Packs mpl-nft-packs NPM
Token Entangler mpl-token-entangler NPM
Token Metadata mpl-token-metadata NPM

Reporting security issues

To report a security issue, please follow the guidance on the SECURITY page.

License

The Rust/Cargo programs are licensed under the “Apache-style” Metaplex(TM) NFT Open Source License and the JS/TS client libraries are licensed under either the MIT or the Apache licenses.

More Repositories

1

metaplex

A directory of what the Metaplex Foundation works on!
3,307
star
2

js

A JavaScript SDK for interacting with Metaplex's programs
TypeScript
307
star
3

sugar

Candy Machine Rust CLI.
Rust
185
star
4

Solana.Swift

This is a open source library on pure swift for Solana protocol.
Swift
158
star
5

umi

A Solana Framework for JS Clients.
TypeScript
147
star
6

js-deprecated

Deprecated Metaplex JavaScript SDK
TypeScript
127
star
7

python-api

Python
123
star
8

solita

Genrates an SDK API from solana contract IDL.
TypeScript
115
star
9

kinobi

Generate powerful clients for your Solana programs.
TypeScript
103
star
10

candy-machine-ui

Reference minting UI implementation for the Metaplex Candy Machine Program
TypeScript
70
star
11

amman

A modern mandatory toolbelt to help test solana SDK libraries and apps on a locally running validator.
TypeScript
67
star
12

js-examples

Examples and Starter Kits using the new JS SDK
JavaScript
67
star
13

SolanaKT

This is a open source library on kotlin for Solana protocol.
Kotlin
67
star
14

digital-asset-rpc-infrastructure

Reference implementation for Metaplex Digital Asset Standard API
Rust
66
star
15

mpl-bubblegum

Create and manage Metaplex compressed NFTs
Rust
65
star
16

shank

Extracts IDL from Solana Rust contracts
Rust
61
star
17

docs

docs.metaplex.com source code
JavaScript
43
star
18

digital-asset-validator-plugin

The NFT Geyser plugin that powers metaplex APIs
Rust
33
star
19

blockbuster

Canonical Program Parsing from Geyser Plugins
Rust
27
star
20

gumdrop

Gumdrop!
TypeScript
27
star
21

beet

Borsh compatible De/Serializer
TypeScript
26
star
22

mpl-token-auth-rules

A program that provides the ability to create and execute rules to restrict common token operations such as transferring and selling.
HTML
24
star
23

metaplex-ios

Metaplex Mobile IOS SDK
Swift
23
star
24

mpl-candy-guard

Access control logic for Metaplex Candy Machine.
21
star
25

get-collection

Rust and TypeScript example code for finding all members from a collection id.
Rust
21
star
26

metaplex-android

Metaplex Mobile Android SDK
Kotlin
18
star
27

compression-read-api-js-examples

TypeScript
16
star
28

aura

Rust
16
star
29

mip

14
star
30

mpl-candy-machine

Mint your NFT collection on Solana
TypeScript
12
star
31

mpl-toolbox

Essential programs and clients to build on top of.
TypeScript
10
star
32

solana-kmp

Kotlin
9
star
33

lut

A simple CLI for creating and managing Solana Lookup Tables.
Rust
8
star
34

mplex

Metaplex CLI to interact with the Metaplex SDK
TypeScript
7
star
35

arweave-cost

Calculates the cost of uploading files to Arweave
TypeScript
7
star
36

js-react-native

Java
6
star
37

mpl-trifle

The core composability contract for Metaplex Fusion
TypeScript
5
star
38

amman-explorer

Amman Solana Explorer
TypeScript
5
star
39

api-specifications

Public Documentation for our Written Specifications that have multi party implementations
5
star
40

token-entangler-ui

A UI for the token entangler program
TypeScript
5
star
41

mpl-token-metadata

Client library for the Token Metadata program
TypeScript
4
star
42

goose

A CLI for interacting with the mpl-migration-validator program.
Rust
4
star
43

themis

A CLI to allow our automated workflows to make proposals to spl-governance programs.
Rust
4
star
44

deprecated-storefront

The Metaplex Storefront frontend that is no longer maintained by the Metaplex Foundation
TypeScript
3
star
45

solana-project-template

A template for vanilla Solana programs and their clients
TypeScript
3
star
46

cusper

Resolves custom program errors from solana logs or error codes.
TypeScript
3
star
47

solita-swift

Sol ana I DL t o A PI generator.
Swift
3
star
48

digital-asset-protocol

Rust
3
star
49

florida

Where programs go to retire.
Rust
3
star
50

actions

A set of useful GitHub actions for Solana devs
3
star
51

deprecated-clis

A collection of JS CLIs that are no longer maintained by the Metaplex Foundation
TypeScript
3
star
52

fusion-dressing-room

Fusion user-facing UI forked from Solana dApp Scaffold
TypeScript
3
star
53

metaplex-incubating-programs

Programs that have not met the maturity, security and stability requirements live here, free of charge with community stewards
Rust
3
star
54

Metaplex-Deployer

2
star
55

shank-js

Generate IDL files via Anchor or Shank.
TypeScript
2
star
56

mpl-hydra

Client library for the Hydra program
TypeScript
2
star
57

umi-hotline

2
star
58

beet-swift

Swift
2
star
59

larry-discord-bot

The Larry Discord bots we use in our Discord server!
TypeScript
2
star
60

metaplex-swift-program-library

Generated Code for metaplex-ios
Swift
2
star
61

das-api-testing

Rust
2
star
62

listing-rewards-auctioneer

1
star
63

firewall

Solana Account Firewall
Rust
1
star
64

rooster

Three crows, and you're out. But there is always grace.
Rust
1
star
65

auctioneer-template

Template program for users to build their own Auctioneer
Rust
1
star
66

rustbin

Synchronizes a Rust binary version with the related Rust crate
TypeScript
1
star
67

mpl-migration-validator

Asset migration validator program, to be used in conjuction with Token Metadata to enable asset class migrations.
Rust
1
star
68

check-collections

Rust
1
star
69

mpl-core

Rust
1
star
70

fusion-ui

The Proof-of-Concept UI interfaces for Composable NFTs
TypeScript
1
star