Once you log in to the console, the next step is to create an .Click the "Integrate" tab and click on the "API Keys" option on top.Within the “Server-side keys” section, click the “Create new key” button in the top right.
Then, check the scopes nfts.create and nfts.read under the “Minting API”
category and create your key. Save this key for the next step.
We’re almost there! With our key created, we’re now going to write a small
function that creates an NFT and delivers it to a user.Create a file (e.g. mintNFT.js) and enter this code into it:
This code creates an NFT, uploads it to the blockchain, and delivers it to a , attached to the email address provided. Before running it, be sure to fill in values for:
YOUR_API_KEY with the key obtained in the prior step.
TEST_EMAIL_ADDRESS with an email address you control, for testing.
Now, run the mintNFT.js script.
node mintNFT.js
After a few seconds, it should return a response indicating the mint has
started processing. Check the full response and save its , as you’ll use it later.
Example response
Here is an example response returned from the API call above:
The mint has started processing. However, blockchains can take a few seconds (or,
at times of extreme network congestion, even minutes) to confirm the operation.Before showing the user a success screen, the next step is checking the
status of the mint.To do this, grab the actionId received at the end of step 3 and use it
alongside your API key in one of the snippets below.
Pay attention to the “status” field. Once it says “success”:
Congratulations. You have minted your first NFT 🥷 🎉
For scalable production applications, consider using webhooks to
determine when your NFT has been minted, instead of periodically polling for its status via the API.
Once you log in to the console, the next step is to create an .Click the "Integrate" tab and click on the "API Keys" option on top.Within the “Server-side keys” section, click the “Create new key” button in the top right.
Then, check the scopes nfts.create and nfts.read under the “Minting API”
category and create your key. Save this key for the next step.
We’re almost there! With our key created, we’re now going to write a small
function that creates an NFT and delivers it to a user.Create a file (e.g. mintNFT.js) and enter this code into it:
This code creates an NFT, uploads it to the Solana blockchain, and delivers it to a , attached to the email address provided. Before running it, be sure to fill in values for:
YOUR_API_KEY with the key obtained in the prior step.
TEST_EMAIL_ADDRESS with an email address you control, for testing.
Now, run the mintNFT.js script.
node mintNFT.js
After a few seconds, it should return a response indicating the mint has
started processing. Check the full response and save its , as you’ll use it later.
Example response
Here is an example response returned from the API call above:
The mint has started processing. However, blockchains can take a few seconds (or,
at times of extreme network congestion, even minutes) to confirm the operation.Before showing the user a success screen, the next step is checking the
status of the mint.To do this, grab the actionId received at the end of step 3 and use it
alongside your API key in one of the snippets below.
Pay attention to the “status” field. Once it says “success”:
Congratulations. You have minted your first NFT 🥷 🎉
For scalable production applications, consider using webhooks to
determine when your NFT has been minted, instead of periodically polling for its status via the API.
Once you log in to the console, the next step is to create an .Click the "Integrate" tab and click on the "API Keys" option on top.Within the “Server-side keys” section, click the “Create new key” button in the top right.
Then, check the scopes nfts.create and nfts.read under the “Minting API”
category and create your key. Save this key for the next step.
We’re almost there! With our key created, we’re now going to write a small
function that creates a compressed NFT and delivers it to a user.
Compressed NFTs are a new standard on the Solana blockchain, for minting NFTs with the lowest cost amongst L1 and L2 blockchains, and the highest throughput (thousands of NFTs per second).
Create a file (e.g. mintCompressedNFT.js) and enter this code into it:
This code creates a compressed NFT, uploads it to the Solana blockchain, and delivers it to a , attached to the email address provided. Before running it, be sure to fill in values for:
YOUR_API_KEY with the key obtained in the prior step.
TEST_EMAIL_ADDRESS with an email address you control, for testing.
Now, run the mintCompressedNFT.js script.
node mintCompressedNFT.js
Current Protocol Limitations:
There’s a 10-30 second delay between when a compressed NFT is minted and it shows in wallets.
After a few seconds, it should return a response indicating the mint has
started processing. Check the full response and save its , as you’ll use it later.
Example response
Here is an example response returned from the API call above:
The mint has started processing. However, blockchains can take a few seconds (or,
at times of extreme network congestion, even minutes) to confirm the operation.Before showing the user a success screen, the next step is checking the
status of the mint.To do this, grab the actionId received at the end of step 3 and use it
alongside your API key in one of the snippets below.
# Replace "staging" with "www" for production, and fill in your api key and mint action idENV="staging"API_KEY="<YOUR_API_KEY>"MINT_ACTION_ID="<MINT_ACTION_ID>"curl --header "x-api-key: $API_KEY" \ -X GET \ https://${ENV}.crossmint.com/api/2022-06-09/actions/${MINT_ACTION_ID}
Example response
Here is an example response from calling the status API:
Pay attention to the “status” field. Once it says “success”:
Congratulations. You have minted your first compressed NFT 🥷 🎉
To explore compressed NFTs on the blockchain, you must use X-Ray
Other explorers, like Solscan, still have not added support.
For scalable production applications, consider using webhooks to
determine when your NFT has been minted, instead of periodically polling for its status via the API.
If the NFTs were delivered to a wallet address, the user will be able to see them there directly, connecting to testnet if needed, or on the testnet blockchain explorer.
And voilá, there’s your NFT! Now think of all the cool things you can build
with this, at scale :)
Then, create a production key on the API Keys page with the
same API scopes.
Modify all code snippets with const env = "www", so they use the production APIs. You may also need to change the
chain variable to match your production blockchain.