Getting Started with Umi SDK

The Umi SDK (@metaplex-foundation/mpl-token-metadata) is built on Metaplex's Umi framework and provides a fluent API for interacting with Token Metadata.

Installation

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

Setup

import { createUmi } from '@metaplex-foundation/umi-bundle-defaults';
import { mplTokenMetadata } from '@metaplex-foundation/mpl-token-metadata';
// Create Umi instance with the Token Metadata plugin
const umi = createUmi('https://api.devnet.solana.com')
.use(mplTokenMetadata());

Connecting a Wallet

Creating an NFT

import { generateSigner, percentAmount } from '@metaplex-foundation/umi';
import { createNft } from '@metaplex-foundation/mpl-token-metadata';
// Generate a new mint keypair
const mint = generateSigner(umi);
// Create an NFT
await createNft(umi, {
mint,
name: 'My NFT',
uri: 'https://example.com/my-nft.json',
sellerFeeBasisPoints: percentAmount(5.5),
}).sendAndConfirm(umi);
console.log('NFT created:', mint.publicKey);

Fetching an NFT

import { fetchDigitalAsset } from '@metaplex-foundation/mpl-token-metadata';
const asset = await fetchDigitalAsset(umi, mintAddress);
console.log('Name:', asset.metadata.name);
console.log('URI:', asset.metadata.uri);
console.log('Seller Fee:', asset.metadata.sellerFeeBasisPoints);