metaplex-program-library

Metaplex Program Library

Metaplex smart contracts and SDK.

Metaplex Contracts

Name Program SDK Integration Test
Candy Machine Program Candy Machine SDK Candy Machine  
Token Entangler Program Token Entangler SDK Token Entangler  
Token Metadata Program Token Metadata SDK Token Metadata  
Auction House Program Auction House SDK Auction House  
NFT-Packs Program NFT-Packs    
Gumdrop Program Gumdrop SDK Gumdrop  
Fixed price sale Program Fixed Price Sale SDK Fixed Price Sale Integration Fixed Price Sale

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, commiting and pushing the version bump.

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

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
Candy Machine mpl-candy-machine Crate
Token Metadata mpl-token-metadata Crate
Auction House mpl-auction-house Crate
Testing Utils mpl-testing-utils Crate

Npm Packages

Package Link Version
Candy Machine mpl-candy-machine NPM
Token Metadata mpl-token-metadata NPM
Core mpl-core NPM
Auction House mpl-auction-house 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 AGPLv3 license and the JS/TS client libraries are licensed under either the MIT or the Apache licenses.