4

I am trying to use the new Metaplex JavaScript SDK to upload NFT metadata from my frontend. https://github.com/metaplex-foundation/js#uploadMetadata

Wallet context provider setup:

const network = WalletAdapterNetwork.Devnet;
const endpoint = useMemo(() => clusterApiUrl(network), [network]);

The metaplex initialization code in a context provider that looks like this:

const connection = new Connection(clusterApiUrl("devnet")); // TODO: check environment
const mx = Metaplex.make(connection).use(walletAdapterIdentity(wallet)); // wallet = useWallet()
const auctionHouse = await mx.auctions().findAuctionHouseByAddress(new PublicKey(process.env.NEXT_PUBLIC_AUCTIONHOUSE)).run();

And then from my minting component, I pull the metaplex context instance and call it to create the metadata after I upload image to IPFS and have all details:

const { mx } = mxCtx;
const uploadResult = await mx.nfts()
  .uploadMetadata({
    name, 
    description,
    image: file.href
  })
  .run();

I get the phantom wallet prompt that says "Estimated Changes: No changes impacting asset ownership found. Network Fee < 0.00001 SOL Transfer SOL to https://solscan.io/address/DHyDV2ZjN3rB6qNGXS48dP5onfbZd3fAEz6C5HJwSqRD?cluster=devnet"

I click on the Approve button in phantom wallet, and after a few seconds in the Dev Console I see the error response returned:

_app-fb5381fe6bf38b4c.js:2 POST https://node1.bundlr.network/account/balance/solana 500

Uncaught (in promise) Error: HTTP Error: Posting transaction 5peSoWQgvWej6EyqdKhB2TvWUXGLTzvJTsafBPQGP5yLT8MKpef6hshVQBfTxcwuVGe6R8T2ukMtPF61DXGjmpA9 information to the bundler: 500 Internal Server Error

An example of the transaction record pulled from the phantom wallet is here: https://solscan.io/tx/5peSoWQgvWej6EyqdKhB2TvWUXGLTzvJTsafBPQGP5yLT8MKpef6hshVQBfTxcwuVGe6R8T2ukMtPF61DXGjmpA9?cluster=devnet

Has anyone run into this while using the Metaplex SDK? What am I doing wrong? Any advice or suggestion is greatly appreciated! TIA

1

1 Answer 1

1

After adding a call to use bundlrStorage before the uploadMetadata call, was able to make a successful call to upload the metadata.

.use(bundlrStorage({
  address: 'https://devnet.bundlr.network',
  providerUrl: 'https://api.devnet.solana.com',
  timeout: 60000,
}))

txn: https://solscan.io/tx/4jkhkDafri3cruftYP2hCb4sQVJGYgPajk9TgnTmasVZbxwFuzzJyqW5hWgQnwv9ERdH68j4xwysb5gSh2rUMa47?cluster=devnet

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.