Home

Awesome

Metaplex Program Library

Metaplex smart contracts and SDK.

Program Tests Integration Tests SDK Tests

Metaplex Contracts

NameRust Cratenpm Package
Auction HouseCrateNPM
AuctioneerCrateNPM
BubblegumCrateNPM
Candy Machine CoreCrateNPM
Candy MachineCrateNPM
Fixed Price SaleCrateNPM
GumdropCrateNPM
HydraCrateNPM
NFT PacksCrateNPM
Token EntanglerCrateNPM
Token MetadataCrateNPM

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.

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

PackageLinkVersion
Auction Housempl-auction-houseCrate
Auctioneermpl-auctioneerCrate
Bubblegummpl-bubblegumCrate
Candy Machine Corempl-candy-machine-coreCrate
Testing Utilsmpl-testing-utilsCrate
Utilsmpl-utilsCrate
Fixed Price Salempl-fixed-price-saleCrate
Gumdropmpl-gumdropCrate
Hydrampl-hydraCrate
NFT Packsmpl-nft-packsCrate
Token Entanglermpl-token-entanglerCrate
Token Metadatampl-token-metadataCrate

npm Packages

PackageLinkVersion
Auction Housempl-auction-houseNPM
Auctioneermpl-auctioneerNPM
Bubblegummpl-bubblegumNPM
Candy Machine Corempl-candy-machine-coreNPM
Candy Machinempl-candy-machineNPM
Fixed Price Salempl-fixed-price-saleNPM
Gumdropmpl-gumdropNPM
Hydrampl-hydraNPM
NFT Packsmpl-nft-packsNPM
Token Entanglermpl-token-entanglerNPM
Token Metadatampl-token-metadataNPM

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.

<!-- ===================================== --> <!-- Links for badges and such shown above --> <!-- Please add any links you add to the --> <!-- readme here instead of inlining them --> <!-- ===================================== --> <!-- Workflow Status Badges --> <!-- Crates --> <!-- NPM Packages --> <!-- Licenses -->