Getting Started using JavaScript

Metaplex provides a JavaScript library that can be used to interact with Compressed NFTs. Thanks to the Umi framework, it ships without many opinionated dependencies and, thus, provides a lightweight library that can be used in any JavaScript project.

To get started, you'll need to install the Umi framework and the Bubblegum JavaScript library.

npm install \
  @metaplex-foundation/umi \
  @metaplex-foundation/umi-bundle-defaults \
  @solana/web3.js \
  @metaplex-foundation/mpl-bubblegum

Next, you may create your Umi instance and install the mplBubblegum plugin like so.

import { createUmi } from '@metaplex-foundation/umi-bundle-defaults'
import { mplBubblegum } from '@metaplex-foundation/mpl-bubblegum'

// Use the RPC endpoint of your choice.
const umi = createUmi('http://127.0.0.1:8899').use(mplBubblegum())

Then you want to tell Umi which wallet to use. This can either be a keypair or the solana wallet adapter.

That's it, you can now interact with Compressed NFTs by using the various functions provided by the library and passing your Umi instance to them. Here's an example of fetching a Merkle Tree account and its Bubblegum configurations.

import { publicKey } from '@metaplex-foundation/umi'
import {
  fetchMerkleTree,
  fetchTreeConfigFromSeeds,
} from '@metaplex-foundation/mpl-bubblegum'

const merkleTreeAddress = publicKey('...')
const merkleTree = await fetchMerkleTree(umi, merkleTreeAddress)
const treeConfig = await fetchTreeConfigFromSeeds(umi, {
  merkleTree: merkleTreeAddress,
})

🔗 Helpful Links: