Solana.Metaplex
6.8.1
See the version list below for details.
dotnet add package Solana.Metaplex --version 6.8.1
NuGet\Install-Package Solana.Metaplex -Version 6.8.1
<PackageReference Include="Solana.Metaplex" Version="6.8.1" />
paket add Solana.Metaplex --version 6.8.1
#r "nuget: Solana.Metaplex, 6.8.1"
// Install Solana.Metaplex as a Cake Addin #addin nuget:?package=Solana.Metaplex&version=6.8.1 // Install Solana.Metaplex as a Cake Tool #tool nuget:?package=Solana.Metaplex&version=6.8.1
What is Solnet.Metaplex?
Solnet is Solana's .NET integration library, a number of packages that implement features to interact with Solana from .Net applications.
Solnet.Metaplex is a package within the same Solnet.
namespace that implements a Client for Metaplex, this project is in a
separate repository so it is contained, as the goal for Solnet was to be a core SDK.
Features
Requirements
- net 6.0
Backport to .NET standard 2.0 is available on Nuget under version 4.0.0
Dependencies
- Solnet
Examples
Create & Mint a Fungible, Semi-Fungible, Non-Fungible, or Programmable metadata token
var client = ClientFactory.GetClient( Cluster.DevNet);
var exampleWallet = new Wallet.Wallet(pk);
//Get your account either by the wallet or directly from the private key
Account ownerAccount = exampleWallet.Account;
Account mintAccount = exampleWallet.GetAccount(75);
Console.WriteLine("Using account public key : {0}", ownerAccount.PublicKey );
//Create the creator list
List<Creator> creatorList = new List<Creator>
{
new Creator(ownerAccount.PublicKey, 100, true)
};
//If there is more than one then you can add more
//creatorList.Add(new Creator(new PublicKey("")))
Metadata tokenMetadata = new Metadata
{
name = "SolNET NFT",
symbol = "SOLNET",
sellerFeeBasisPoints = 500,
uri = "arweave link",
creators = creatorList,
//If your NFT has a parent collection NFT. You can specify it here
//collection = new Collection(collectionAddress),
uses = new Uses(UseMethod.Single, 5, 5),
//If your NFT is programmable and has a ruleset then specify it here
//programmableConfig = new ProgrammableConfig(rulesetAddress)
};
//Easily create any type of metadata token. Any nullable parameters can be overrided to provide the data needed to create complex metadata tokens or use legacy instructions
MetaplexClient metaplexClient = new MetaplexClient(client);
await metaplexClient.CreateNFT(ownerAccount, mintAccount, TokenStandard.NonFungible, tokenMetadata, false, true);
Get the metadata of a token
string pk = "token address here"
Console.WriteLine("### Get Metadata example ###");
Console.WriteLine("Getting account {0}", pk );
var client = ClientFactory.GetClient( Cluster.MainNet);
var account = await MetadataAccount.GetAccount( client, new PublicKey(pk ));
Console.WriteLine( $"Owner: {account.owner}");
Console.WriteLine( $"Authority key: {account.updateAuthority}");
Console.WriteLine( $"Mint key: {account.mint}");
Console.WriteLine( $"Name: {account.metadata.name}");
Console.WriteLine( $"Symbol: {account.metadata.symbol}");
Console.WriteLine( $"Uri: {account.metadata.uri}");
Console.WriteLine( $"SellerFeeBasisPoints: {account.metadata.sellerFeeBasisPoints}");
Console.WriteLine( $"---Creators---");
foreach( Creator c in account.metadata.creators)
{
Console.WriteLine( $"Creator Key: {c.key}");
Console.WriteLine( $"Creator Share: {c.share}");
Console.WriteLine( $"Creator is verified: {c.verified}");
}
Console.WriteLine( "-------Metadata-------");
Console.WriteLine($"Name: {account.offchainData.name}");
Console.WriteLine($"Description: {account.offchainData.description}");
Console.WriteLine($"Symbol: {account.offchainData.symbol}");
Console.WriteLine($"Collection: {account.offchainData.collection}");
Console.WriteLine($"Default Image: { account.offchainData.default_image }" );
Console.WriteLine($"Animation url: {account.offchainData.animation_url}");
foreach (var attribute in account.offchainData.attributes)
{
if(attribute != null)
Console.WriteLine($"Attribute: { attribute.trait_type } | { attribute.value }");
}
Console.WriteLine ( "------------------");
Contribution
We encourage everyone to contribute, submit issues, PRs, discuss. Every kind of help is welcome.
Contributors
- Mariomatic - Maintainer - mariomatic
- BifrostTitan - Contributer - bifrosttitan
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the LICENSE file for details
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- Microsoft.Extensions.Logging (>= 6.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 6.0.2)
- Microsoft.Extensions.Logging.Console (>= 6.0.0)
- Newtonsoft.Json (>= 13.0.1)
- Solnet.Extensions (>= 6.1.0)
- Solnet.Keystore (>= 6.1.0)
- Solnet.Programs (>= 6.1.0)
- Solnet.Rpc (>= 6.1.0)
- Solnet.Wallet (>= 6.1.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Solana.Metaplex:
Package | Downloads |
---|---|
SolmangoNET
A .NET library that adds some useful composite RPC calls to the Solana chain to simply NFT collections management. |
|
Siamango.SolmangoNET
A .NET library that adds some useful composite RPC calls to the Solana chain to simply NFT collection management. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
8.0.0 | 4,656 | 5/9/2024 |
6.9.0 | 235 | 5/9/2024 |
6.8.2 | 7,294 | 8/2/2023 |
6.8.1 | 709 | 3/20/2023 |
6.8.0 | 666 | 3/2/2023 |
4.8.2 | 552 | 8/2/2023 |
4.8.1 | 638 | 3/20/2023 |
4.8.0 | 627 | 3/2/2023 |
3.0.0 | 1,031 | 11/8/2022 |
2.0.0 | 860 | 10/4/2022 |
1.3.0 | 5,214 | 3/24/2022 |
1.2.0 | 1,596 | 2/8/2022 |
1.2.0-NET5 | 481 | 2/8/2022 |
0.9.0 | 880 | 2/8/2022 |