Instantiate Cryptum SDK first:
const sdk = new CryptumSdk({
environment: 'testnet',
apiKey: 'YOUR-API-KEY',
})
Create an NFT in Solana.
opts.protocol
(string)(required) - blockchain protocol must beSOLANA
.opts.wallet
(Wallet)(required) - wallet to sign the transaction with.opts.name
(string)(required) - token name.opts.symbol
(string)(required) - token symbol.opts.maxSupply
(number) - maximum supply for this token (0 for unlimited; 1 for unique; 2 or more for multiple editions). Required to create master edition and copies with limited supply.opts.amount
(string) - token amount to be first minted. Required only if maxSupply is 0 or undefined.opts.uri
(string)(required) - URI containing NFT metadata.opts.creators
(array of SolanaCreators)(optional) - list of creators.opts.royaltiesFee
(number)(optional) - royalties fee.opts.collection
(string)(optional) - collection address.
This function returns the token address.
Examples:
// Creating NFT with master edition and max supply of 10 copies
const { hash } = await sdk.nft.create({
protocol: 'SOLANA',
wallet,
name: 'NFT',
symbol: 'NFT',
uri: 'https://....',
maxSupply: '10',
})
// Creating NFT without master edition and no max supply
const { hash } = await sdk.nft.create({
protocol: 'SOLANA',
wallet,
name: 'NFT',
symbol: 'NFT',
uri: 'https://....',
amount: '100000',
})
Mint an additional amount of an existing token.
opts.protocol
(string)(required) - blockchain protocol must beSOLANA
.opts.wallet
(Wallet)(required) - wallet to sign the transaction with.opts.token
(string)(required) - token address to be minted. If this token is a master edition, this is the address of the master edition token that will be used to create copies (editions).opts.destination
(string)(required) - destination address.opts.amount
(string) - amount to be minted. Required if this token doesn't have a master edition, leave it undefined otherwise.
This function returns the hash of the transaction.
Example:
const { hash } = await sdk.nft.mint({
wallet: wallets.solana,
protocol: 'SOLANA',
token: 'EzqZ...qnCNd',
destination: 'Er8d....Wud3',
amount: '1',
})
opts.protocol
(string)(required) - blockchain protocol must beSOLANA
.opts.wallet
(Wallet)(required) - wallet to sign the transaction with.opts.token
(string)(required) - address of the token that will be burned.opts.amount
(string)(required) - token amount to be burned (no decimals).
This function returns the hash of the transaction.
Example:
const { hash } = await sdk.nft.burn({
protocol: 'SOLANA',
wallet,
token: 'EzqZ...qnCNd',
amount: '100',
})
opts.wallet
(Wallet)(required) - wallet to sign the transaction with.opts.token
(string)(required) - address of the token that will be updated.opts.uri
(string)(required) - uri containing the updated NFT metadata.
const transaction = await sdk.transaction.updateSolanaNFTMetadata({
wallet,
token: '5N6t...3knE9',
uri: 'https://gateway.pinata.cloud/ipfs/zyx...dcba',
})
const { hash } = await txController.sendTransaction(transaction)
// Log transaction hash
console.log(hash)