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 ...
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, ...
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 ...
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 ...
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 ...
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.
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
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 ...
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 ...
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.
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.
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, ...
2
votes
Issue with transfer NFT
createTransferInstruction() can be found in the "@solana/spl-token" package
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 = ...
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:
...
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/...
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: ...
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/...
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 = ...
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 ...
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 ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
cnft × 40metaplex × 17
bubblegum × 15
nft × 11
solana-program × 8
anchor × 7
compression × 7
spl-token × 3
umi × 3
web3.js × 2
burn × 2
mpl-token-metadata × 2
transactions × 1
rust × 1
anchor-client × 1
python × 1
nfts × 1
mint × 1
solana-cli × 1
sugar × 1
anchor-spl × 1
frontend × 1
delegate × 1
freeze × 1
candymachine × 1