Class CreateNftParams
NFT Token Type Creation Parameters.
Inherited Members
Namespace: Hiero
Assembly: Hiero.dll
Syntax
public sealed class CreateNftParams : TransactionParams<CreateTokenReceipt>
Remarks
These parameters are used to create a new NFT token type on the Hedera network. To create instances of an NFT, use the mint functionality.
Examples
Create an NFT collection with the payer as treasury and a capped max-supply.
Separate Administrator and SupplyEndorsement keys are typical
in production; reusing one key is fine for getting started:
var createReceipt = await client.CreateNftAsync(new CreateNftParams
{
Name = "Sample NFTs",
Symbol = "SNFT",
Ceiling = 100,
Treasury = treasury,
Administrator = adminEndorsement,
SupplyEndorsement = adminEndorsement,
Memo = "Hiero SDK sample NFT collection"
});
Console.WriteLine($"NFT collection created: {createReceipt.Token}");
Properties
| Edit this page View SourceAdministrator
Administrator key for signing transactions modifying this NFT Token's metadata properties.
Declaration
public Endorsement? Administrator { get; set; }
Property Value
| Type | Description |
|---|---|
| Endorsement |
CancellationToken
Optional Cancellation token that interrupts the token creation process.
Declaration
public CancellationToken? CancellationToken { get; set; }
Property Value
| Type | Description |
|---|---|
| CancellationToken? |
Ceiling
The maximum number of NFTs allowed to be minted. If set to a value of zero or less, an infinite amount of assets can be minted.
Declaration
public long Ceiling { get; set; }
Property Value
| Type | Description |
|---|---|
| long |
ConfiscateEndorsement
Administrator key for signing transactions that confiscate and destroy (wipe) NFTs from an arbitrary crypto address.
Declaration
public Endorsement? ConfiscateEndorsement { get; set; }
Property Value
| Type | Description |
|---|---|
| Endorsement |
Expiration
Original expiration date for the NFT, fees will be charged as appropriate.
Declaration
public ConsensusTimeStamp Expiration { get; set; }
Property Value
| Type | Description |
|---|---|
| ConsensusTimeStamp |
GrantKycEndorsement
Administrator key for signing transactions updating the grant or revoke KYC status of an account.
Declaration
public Endorsement? GrantKycEndorsement { get; set; }
Property Value
| Type | Description |
|---|---|
| Endorsement |
InitializeSuspended
The default frozen setting for current and newly created accounts. A value
of
true
will default crypto account status of
Frozen
with relationship to this asset. A value of
false
will default to an tradable/unfrozen relationship.
Declaration
public bool InitializeSuspended { get; set; }
Property Value
| Type | Description |
|---|---|
| bool |
Memo
Additional Short description of the asset, not checked for uniqueness.
Declaration
public string Memo { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
MetadataEndorsement
Administrator key for changing metadata associated with this NFT token type.
Declaration
public Endorsement? MetadataEndorsement { get; set; }
Property Value
| Type | Description |
|---|---|
| Endorsement |
Name
Name of the NFT class of tokens.
Declaration
public string Name { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
PauseEndorsement
Administrator key for signing transactions that can pause or continue the exchange of all assets across all accounts on the network.
Declaration
public Endorsement? PauseEndorsement { get; set; }
Property Value
| Type | Description |
|---|---|
| Endorsement |
RenewAccount
Optional address of the account supporting the auto renewal of the asset at expiration time. The NFT token lifetime will be extended by the RenewPeriod at expiration time if this account contains sufficient funds. The private key associated with this account must sign the transaction if RenewAccount is specified.
Declaration
public EntityId? RenewAccount { get; set; }
Property Value
| Type | Description |
|---|---|
| EntityId |
Remarks
If specified, an Administrator Endorsement must also be specified.
RenewPeriod
Interval of the NFT token and auto-renewal period. If the associated renewal account does not have sufficient funds to renew at the expiration time, it will be renewed for a period of time the remaining funds can support. If no funds remain, the NFT token instance will be deleted.
Declaration
public TimeSpan? RenewPeriod { get; set; }
Property Value
| Type | Description |
|---|---|
| TimeSpan? |
Royalties
The list of royalties applied to transactions when transferring this asset. If a royalty endorsement is not supplied upon creation, the royalties are immutable after creation.
Declaration
public IReadOnlyList<IRoyalty>? Royalties { get; set; }
Property Value
| Type | Description |
|---|---|
| IReadOnlyList<IRoyalty> |
RoyaltiesEndorsement
Administrator key for signing transactions updating the royalty (custom transfer fees) associated with this NFT.
Declaration
public Endorsement? RoyaltiesEndorsement { get; set; }
Property Value
| Type | Description |
|---|---|
| Endorsement |
Signatory
Additional private key, keys or signing callback method required to create this asset. Typically matches the Administrator, GrantKycEndorsement, SuspendEndorsement and other listed endorsements associated with this asset.
Declaration
public Signatory? Signatory { get; set; }
Property Value
| Type | Description |
|---|---|
| Signatory |
Remarks
Keys/callbacks added here will be combined with those already identified in the client object's context when signing this transaction to create this NFT token type.
SupplyEndorsement
Administrator key for signing transactions for minting or unminting NFTs in the treasury account.
Declaration
public Endorsement? SupplyEndorsement { get; set; }
Property Value
| Type | Description |
|---|---|
| Endorsement |
SuspendEndorsement
Administrator key for signing transactions for freezing or unfreezing an account's ability to transfer assets.
Declaration
public Endorsement? SuspendEndorsement { get; set; }
Property Value
| Type | Description |
|---|---|
| Endorsement |
Symbol
Symbol of the NFT class of tokens.
Declaration
public string Symbol { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
Treasury
The treasury account receiving NFTs when they are minted.
Declaration
public EntityId Treasury { get; set; }
Property Value
| Type | Description |
|---|---|
| EntityId |