Skip to main content
4 votes
Accepted

What is the difference between a delegate and owner?

I posed this question on X: https://twitter.com/burger606/status/1700916676437369159 Essentially, having a delegate allows for partial ownership. Which means you can assign another pubkey as the ...
Burger Bob's user avatar
  • 1,506
4 votes

best way to handle instructions that need to be executed on the user side and on the back end side?

what I did here https://github.com/solana-developers/one-milion-nfts/blob/main/next/pages/api/mint.ts is send a request to the backend, partial sign it, base64 encode it, send it back to client, ...
Jonas H.'s user avatar
  • 7,219
3 votes

sending a cNFT with canopy depth of 0: Transaction too large

The way to optimize this and make your tree more composable also with other programs is using a higher canopy depth. Having a proof path of 24 will take 24x32 bytes which is 768 bytes. The max size of ...
Jonas H.'s user avatar
  • 7,219
3 votes

cnft : setAndVerifyCollection : Transaction too large

Try passing asset proofs after the removing the proof already stored with canopy. You can set canopyDepth while creating merkle tree, which basically caches some proofs so that you don't have to pass ...
Athar Mohd's user avatar
3 votes

How get new owner and old owner of compressed nft form transaction

Compression uses the bubblegum program. Bubblegum uses anchor. You’ll need to decode the transaction using the bubblegum IDL, then pick the accounts matching the old leaf owner and new leaf owner. If ...
Noah's user avatar
  • 286
3 votes
Accepted

How to work with cNFTs in Solana programs?

I created this repo to demonstrate this https://github.com/Aiyualive/program-examples/tree/bob/cutils As of posting this, it is currently being reviewed as a PR to the Solana program examples.
Burger Bob's user avatar
  • 1,506
3 votes

Are there examples on how I can use state compression for other than cNFTs

Another example I've seen using compression is Gum. They're an open source social layer, you can check out their docs and code here. https://github.com/gumhq
banana's user avatar
  • 161
2 votes

What is the difference between a delegate and owner?

Delegates are more useful for TokenAccounts, where you can approve another account to give them access to an AMOUNT of tokens, e.g. token::approve(cpi_ctx, amount) can give another account the ability ...
Whiteseal's user avatar
  • 3,607
2 votes

Making NFTs (or tokens) soulbound / non-transferable on Solana

I do not think you can currently freeze or delegate a cNFT to another authority. Bubble gum docs here https://developers.metaplex.com/ For fine grained control over the NFT, I would suggest using a ...
Jimii's user avatar
  • 7,712
2 votes

How do I breed two NFTs on Solana?

There is no native 'breeding' function in metaplex, but you can check out this anchor program for reference.
Madhav Goyal's user avatar
2 votes

How to mint multiple cNFTs?

You shouldn't have to wait to mint additional cNFTs, any rate limiting you're experiencing probably has to do with the RPC server you're using.
banana's user avatar
  • 161
2 votes
Accepted

Best way to batch or parallelize compressed NFTs mints/transfers?

You can mint two or more cNFTs in the same block because the implementation of cNFTs actually uses the account compression program which is specifically based on a concurrent merkle tree. Basically, ...
Serban's user avatar
  • 1,486
2 votes

Issue with transfer NFT

createTransferInstruction() can be found in the "@solana/spl-token" package
Needleski's user avatar
2 votes

Get the Root of a cNFT

You can access the root of your fetched Merkle Tree account using the getCurrentRoot helper function like so: const merkleTreeAccount = await fetchMerkleTree(umi, merkleTree); const root = ...
Loris Leiva's user avatar
2 votes
Accepted

How to use mpl_bubblegum::instructions::VerifyLeafCpiBuilder?

While I can't answer for the other questions, I can at least tell you how to fix your compile error! Try this, cloning the AccountInfo to avoid having a reference with a lifetime that's too short: ...
Jon C's user avatar
  • 19.6k
2 votes
Accepted

how to mint compressed NFT using bubblegum inside solana program (rust)

You can use reference these example programs: https://github.com/solana-developers/program-examples/tree/main/compression/cnft-vault https://github.com/solana-developers/program-examples/tree/main/...
john's user avatar
  • 7,794
1 vote
Accepted

How to add instructions to a builder with a loop

you need to reassign the builder. e.g. (untested) let builder = new TransactionBuilder(); for (let token of selectedTokens) { const burnIx = burn(umi, { ...assetWithProof, leafOwner: ...
Mark Sackerberg's user avatar
1 vote

Decompression is disabled for this tree

From the listing you provided here, I assume that says the compression is disabled. See the code that throws the error here: https://github.com/metaplex-foundation/mpl-bubblegum/blob/main/programs/...
chalda's user avatar
  • 1,657
1 vote

How resolve "cannot find value `collection_mint` in this scope" for struct InitNFT / cNft & Anchor

After some research on the Anchor discord server, I find this solution, it look like a problem with the 0.30.0 version, Try to add this line on your Anchor.toml: [features] resolution = false seeds = ...
Fulum's user avatar
  • 21
1 vote

Cnft collection token documentation

You can check their tests where you can find each one of the steps https://github.com/metaplex-foundation/mpl-bubblegum/tree/main/clients/js/test Those tests should give me most of the workaround to ...
voidpixel's user avatar
1 vote

Frontend Burning cNFT // Transaction size too big

If your cNFTs function fail this may be because you chose a to small canopy depth. Whenever you interact with cNFTs the whole proof path needs to be included into the transaction up to the on chain ...
Jonas H.'s user avatar
  • 7,219

Only top scored, non community-wiki answers of a minimum length are eligible