https://github.com/ved08/mpl-bubblegum-elixir-nifs
A library in Elixir for handling compressed NFTs (cNFTs) on Solana.
https://github.com/ved08/mpl-bubblegum-elixir-nifs
cnfts elixir nft rustler solana
Last synced: 3 months ago
JSON representation
A library in Elixir for handling compressed NFTs (cNFTs) on Solana.
- Host: GitHub
- URL: https://github.com/ved08/mpl-bubblegum-elixir-nifs
- Owner: ved08
- License: mit
- Created: 2025-03-03T17:15:17.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-03-08T09:48:38.000Z (3 months ago)
- Last Synced: 2025-03-14T09:48:12.210Z (3 months ago)
- Topics: cnfts, elixir, nft, rustler, solana
- Language: Elixir
- Homepage: https://hex.pm/packages/mpl_bubblegum_nifs
- Size: 4.35 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MplBubblegumNifs
A library in Elixir for handling compressed NFTs (cNFTs) on Solana. Published here
## Installation
Add `mpl_bubblegum_nifs` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:mpl_bubblegum_nifs, "~> 0.1.0"}
]
end
```Then run:
```sh
mix deps.get
```---
## Usage
### 1. Initialize Connection
Before using the library, establish a connection to Solana RPC. **Use a Helius RPC URL, as native Solana RPC does not support DAS API.**```elixir
MplBubblegum.Connection.create_connection(secret_key, rpc_url)
```---
### 2. Create a Merkle Tree
This function initializes a new Merkle tree, which is required for minting compressed NFTs.```elixir
merkle_tree = MplBubblegum.create_tree_config()
IO.puts("Tree created at: #{merkle_tree}")
```---
### 3. Mint a Compressed NFT
To mint a cNFT, provide the Merkle tree address and metadata details.```elixir
tx = MplBubblegum.mint_v1(
"9ppyWc9LjccAJPchEoPYatZQgk5PwJgUhZi3rTd8skcE", # Merkle tree address
"Solana Warrior", # NFT Name
"SW", # Symbol
"https://bafybeih7oz5pds33io34ud5ut4fd5a2jj74zoduiec2fw4oz24yqfo4aey.ipfs.w3s.link/1034.json", # Metadata URI
250, # Seller Fee Basis Points
100 # Creator Share
)IO.puts("Minted cNFT, tx: #{tx}")
```---
### 4. Transfer a cNFT
To transfer ownership of a compressed NFT, provide the asset ID and recipient's address.```elixir
tx = MplBubblegum.transfer(
"6pfiemDtGpzFTWmT2rfNmvMAdPzvYcdzXJXquwjbB97q", # Asset ID
"6hxBtjckJxUf9FM8V9dDq1Wux5azG2a64osiNwP1KwDN" # Recipient Address
)IO.puts("Transferred cNFT, tx: #{tx}")
```---
## Docs
Autogenerated docs can be found here## License
This project is licensed under the MIT License.