NFT
Make magic happen with your NFT superpowers
Create
Create a master edition NFT.
POST /sol/v1/nft/create_detach
Creating an NFT is just 1 simple API call, which internally does all the heavy lifting for you.
Uploads the image or anything you want to your choice of storage (IPFS or S3).
Creates an appropriate Metadata json file.
Uploads the metadata json file again to your choice of storage (IPFS or S3).
Finally mints your favorite NFT.
Body Params
network: Solana blockchain environment (testnet/devnet/mainnet-beta)
wallet: Your wallet address who will be signing and paying the transaction fee
name: NFT Name
symbol: NFT Symbol
description: (optional) NFT description
attributes: (optional) attributes associated to this NFT. (You can create the attributes as an array of objects and then stringify it using
JSON.stringify
)external_url: (optional) any url to associate with the NFT
max_supply: (optional) Maximum number of clones/edition mints possible for this NFT. Default 0 for one-of-a-kind NFT.
royalty: (optional) represents how much percentage of secondary sales the original creator gets. Ranges from (0-100), 0 being the original creator gets nothing and 100 being the original creator gets the entire amount from the secondary sales
file: NFT Image
data: (Optional) Any digital data (.mp3/.wav/.mp4/.pdf/.json etc) that you want to put in the NFT
receiver: (optional) Account address which will receive the newly created NFT.
service_charge : (optional) - Transaction fee to be paid by the NFT creator for creating an NFT. This fee can be charged in SOL or any SPL-20 token. Below is the structure of the
service_charge
key.receiver: string - An address that will receive the service charge amount.
amount: number - The amount of currency to be charged.
token (optional): string - The address of the SPL token, the service charge currency. By default SOL is charged.
Charging Service charge in USDC:
Charging Service charge in SOL:
Response
You will get an encoded transaction in response which you can sign in your front end or back end using the same wallet used in the API.
Create V2
This API is an improved version of the original Create NFT API. This API request allows an external wallet to pay the gas fee for creating NFT on behalf of the NFT creator.
NOTE: If your product is creating an end-user-facing platform for creating NFTs, then this API will be your best friend for onboarding users initially where, you can pay the gas fees for the NFTs that your users will create.
POST /sol/v2/nft/create
Creating an NFT, and is just 1 simple API call, which internally does all the heavy lifting for you.
Uploads the image or anything you want to your choice of storage (IPFS or S3).
Creates an appropriate Metadata json file.
Uploads the metadata json file again to your choice of storage (IPFS or S3).
If mentioned also pays the gas fee for the transaction from the mentioned account.
Finally mints your favorite NFT.
Body Params
network: Solana blockchain environment (testnet/devnet/mainnet-beta)
creator_wallet: Your NFT creator's wallet address. By default, this address pays the transaction gas fee.
name: NFT Name
symbol: NFT Symbol
description: (optional) NFT description
collection_address: (optional) on-chain address of the collection represented by an NFT, with max_supply of 0.
attributes: (optional) attributes associated to this NFT. (You can create the attributes as an array of objects and then stringify it using
JSON.stringify
)external_url: (optional) any url to associate with the NFT
max_supply: (optional) Maximum number of clones/edition mints possible for this NFT. Default 0 for one-of-a-kind NFT.
royalty: (optional) represents how much percentage of secondary sales the original creator gets. Ranges from (0-100), 0 being the original creator gets nothing and 100 being the original creator gets the entire amount from the secondary sales
image: NFT Image
data: (Optional) Any digital data (.mp3/.wav/.mp4/.pdf/.json etc) that you want to put in the NFT
receiver: (optional) Account address which will receive the newly created NFT.
fee_payer: (optonal) If mentioned this is the account that will be used for paying the transaction gas fee.
service_charge
: (optional)
- Transaction fee to be paid by the NFT creator for creating an NFT. This fee can be charged in SOL or any SPL-20 token. Below is the structure of theservice_charge
key.receiver: string
- An address that will receive the service charge amount.amount: number
- The amount of currency to be charged.token(optional): string
- The address of the SPL token, the service charge currency. By default SOL is charged.
Charging Service charge in USDC:
Charging Service charge in SOL:
Response
You will get an encoded transaction in response which you can sign in your front end or back end. 2 wallet address are needed to sign this txn:
creator_wallet
fee_payer
, only if specified in the API request.collection_address's collection_authority address, which is the update Authority of the collection NFT. Needed when, the txn was created with collection_address.
Create NFT from Metadata
This API allows you to create an NFT from an already uploaded metadata URI. The metadata_uri should open a JSON document complying with Metaplex Non-Fungible Token Standard. If the JSON doesn't follow the Metaplex standard then the API returns an error. The on-chain metadata of the NFT is fetched from the off-chain metadata present at the given URI.
POST /sol/v1/nft/create_from_metadata
Body Params
network: Solana blockchain environment (testnet/devnet/mainnet-beta)
max_supply: (optional) Maximum number of clones/edition mints possible for this NFT. Default 0 for one-of-a-kind NFT.
collection_address: (optional) on-chain address of the collection represented by an NFT, with max_supply of 0.
receiver: (optional) Account address which will receive the newly created NFT.
fee_payer: (optional) If mentioned this is the account that will be used for paying the transaction gas fee.
service_charge
: (optional)
- Transaction fee to be paid by the NFT creator for creating an NFT. This fee can be charged in SOL or any SPL-20 token. Below is the structure of theservice_charge
key.receiver: string
- An address that will receive the service charge amount.amount: number
- The amount of currency to be charged.token(optional): string
- The address of the SPL token, the service charge currency. By default, SOL is charged.
Read All
Returns on chain and off chain data of all NFTs in the wallet.
First call might be slightly slow, we cache automatically so that subsequent calls are lightning-fast.
Query Params
network: Solana blockchain environment (testnet/devnet/mainnet-beta)
address: Your wallet address
update_authority: (optional) Public key of update authority. Filters only those nfts in your wallet which have this update_authority.
refresh:(optional) Include this if the cached NFTs for this wallet need to be refreshed.
GET /sol/v1/nft/read_all
Read Wallet Nfts
Paginated version of Read All
API, returns the list of NFTs in a wallet. A maximum of 50 NFTs are returned in a single API request.
Query Params
network: Solana blockchain environment (testnet/devnet/mainnet-beta)
address: Your wallet address
update_authority: (optional) Public key of update authority. Filters only those NFTs in your wallet that have this update_authority.
refresh:(optional) Include this if the cached NFTs for this wallet need to be refreshed.
page:(optional) Default value is 1.
size:(optional) Default value is 50.
GET /sol/v2/nft/read_all
Read
Returns on-chain and off-chain NFT data. We also cache NFT images in our CDN for super fast reads and an amazing UX, which web3 sorely needs.
First call might be slightly slow, we cache automatically so that subsequent calls are lightning-fast.
Query Params
network: Solana blockchain environment (testnet/devnet/mainnet-beta)
token_address: address of the NFT that you want to read
token_record: (optional) Set it
true
if need to get additionaltoken_record
info along with requested NFTs.
GET /sol/v1/nft/read
Read Selected NFTs
Returns on-chain and off-chain data of selected NFTs.
First call might be slightly slow, we cache automatically so that subsequent calls are lightning-fast.
Body Params
network: Solana blockchain environment (testnet/devnet/mainnet-beta)
token_addresses: (array of strings) Selected token addresses (minimum 1 and maximum 10 NFTs could be fetched)
refresh:(optional) Include this if the cached NFTs need to be refreshed.
token_record: (optional) Set it
true
if need to get additionaltoken_record
info along with requested NFTs.
POST /sol/v1/nft/read_selected
Get NFT Owners
Returns NFT Owners for the provided NFT mint address list.
Body Params
network: Solana blockchain environment (testnet/devnet/mainnet-beta)
nft_addresses: NFT mint addresses (array of strings, maximum 10, minimum 1)
POST /sol/v1/nft/get_owners
Burn
Burn a particular NFT.
You will get an encoded transaction in response which you can sign in your front end or back end using the same wallet as used in the API.
Body Params
network: Solana blockchain environment (testnet/devnet/mainnet-beta)
token_address: NFT mint address
wallet: Owner of the NFT
parent_token_address: (optional) Parent NFT mint address (Master Edition)
DEL /sol/v1/nft/burn_detach
Burn Multiple Nfts
Burn as many NFTs from a wallet as you want. This API endpoint returns one or multiple encoded transaction strings, which have to be signed by the NFT owner's wallet and submitted to the blockchain for successful burns.
DEL /sol/v1/nft/burn_many
Burn Multiple NFTs V2
Burn as many NFTs from a wallet as you want. This API endpoint returns one or multiple encoded transaction strings, which have to be signed by the NFT owner's wallet and submitted to the blockchain for successful burns.
Body Params
network: Solana blockchain environment (testnet/devnet/mainnet-beta)
wallet: Owner of the NFTs
nfts: (minimum 1 and maximum 50 NFTs burn in a single call) Addresses of the NFTs to transfer and
parent_token_address
(optional) if the selected NFT is a Print Edition NFT. E.g.,Array<{ address: string; parent_token_address?: string }>
DEL /sol/v2/nft/burn_many
Update
Once an NFT is minted, you can update only a few parts of it, which are
Name
Symbol
Description
Royalty
Attributes
Update Authority
Image/File
Update call works like a patch call. You can selectively specify any of the above fields to update.
You will get an encoded transaction in response which you can sign in your front end or back end using the same wallet as used in the API.
POST /sol/v1/nft/update_detach
Update NFT Metadata URI
This API call allows updating NFT's on-chain metadata_uri
field.
POST /sol/v1/nft/update_metadata_uri
Body Params
network: Solana blockchain environment (testnet/devnet/mainnet-beta)
token_address: Address of the NFT token that needs to be updated.
update_authority_address: Address of update authority of NFT. This address pays the transaction gas fee.
fee_payer: (optional) If mentioned this is the account that will be used for paying the update transaction gas fee. If not mentioned, update authority address pays the gas fee.
service_charge
: (optional)
- Transaction fee to be paid by the fee_payer. This fee can be charged in SOL or any SPL-20 token. Below is the structure of theservice_charge
key.receiver: string
- An address that will receive the service charge amount.amount: number
- The amount of currency to be charged.token(optionl): string
- The address of the SPL token, the service charge currency, by default SOL is charged.
Response
You will get an encoded transaction in response which you can sign in your front end or back end, with update_authority_address
wallet.
Update V2
This API call allows an external wallet to pay the gas fee for updating NFT on behalf of the NFT update authority.
POST /sol/v2/nft/update
Body Params
network: Solana blockchain environment (testnet/devnet/mainnet-beta)
token_address: Address of the NFT token that needs to be updated.
update_authority_address: Address of update authority of NFT. By default, this address pays the transaction gas fee.
name: (optional) NFT Name, if names has to be updated.
symbol: (optional) NFT Symbol
description: (optional) NFT description
attributes: (optional) attributes associated to this NFT. (stringify it)
royalty: (optional) represents how much percentage of secondary sales the original creator gets. Ranges from (0-100), 0 being the original creator gets nothing and 100 being the original creator gets the entire amount from the secondary sales
image: (optional) NFT Image
data: (Optional) Any digital data (.mp3/.wav/.mp4/.pdf/.json etc) that you want to put in the NFT
fee_payer: (optional) If mentioned this is the account that will be used for paying the update transaction gas fee. If not mentioned, update authority address pays the gas fee.
service_charge
: (optional)
- Transaction fee to be paid by the fee_payer. This fee can be charged in SOL or any SPL-20 token. Below is the structure of theservice_charge
key.receiver: string
- An address that will receive the service charge amount.amount: number
- The amount of currency to be charged.token(optionl): string
- The address of the SPL token, the service charge currency, by default SOL is charged.
Charging Service charge in USDC:
Charging Service charge in SOL:
Response
You will get an encoded transaction in response which you can sign in your front end or back end. 2 wallet address are needed to sign this txn:
fee_payer
, only if specified in the API request.update_authority_address
Search
Apply filtering on your NFTs based on network and their wallet address, creators, royalty, attribute values. We index all your NFTs in your databases therefore these queries are super fast.
Let's say while creating your NFT you supplied the below attribute values:
Then you can apply filters using GET query parameters like:
GET /sol/v1/nft/search
Query Params:
network: (optional) Solana blockchain environment (testnet/devnet/mainnet-beta)
wallet: (required) Your wallet address
creators: (optional) Public key of creators. Filters only those nfts in your wallet which have these creators.
royalty: (optional) Royalty of NFTs. Filter only those nfts in your wallet which have the royalty (e.g.,
royalty=5
). More filters are there such as greater than (gt
), less than (lt
) and equal (gte
,lte
) method. You can pass query like thisroyalty={"gte":5}
.attributes: (optional) Attributes associated to this NFT. Filter only those nfts in your wallet which have these attributes (e.g.,
attributes{"energy":"crazy"}
). Similarly, royalty attributes have those methods as well. You can search multiple attributes in one query parameter such asattributes={"edification":{"gt":"10"},"energy":"very high"}
.collection: (optional) NFT collection address. Filters only those nfts in your wallet which have include this collection address.
page: (optional) Search API is a paginated API. So you need to mention page number from you want to search. By default the page no. is 1.
size: (optional) You can metion maximum no. of item you need on a perticular search result. By default it is 10.
You can search this way.
Transfer
Transfer an already minted NFT from one wallet to another.
Body (raw)
from_address: Public key of the wallet to transfer from,
token_address: Address of the token to transfer
to_address: Wallet address of the receiver,
transfer_authority: true //(optional, true by default)
fee_payer: (optional) The account that pays the transaction gas fee.
You will get an encoded transaction in response which you can sign in your front end or back end using the same wallet as used in the API.
POST /sol/v1/nft/transfer_detach
Transfer Multiple NFTs
Transfer multiple NFTs from one wallet to another.
Body (raw)
from_address: Source wallet address, holding the NFTs.
token_addresses: (array of strings) Addresses of the token to transfer (minimum 1 and maximum 50 NFTs transfer transactions created)
to_address: Wallet address of the receiver
You will get encoded transactions in response which you can sign in your front end or back end using the same wallet as used in the API.
POST /sol/v1/nft/transfer_many
Mint
Creates a clone of a master NFT and mints it into the specified wallet. Each time you mint, the current supply of master NFT increases. In order for the mint to succeed, the current supply should be less than the max supply specified for the master NFT.
You can also specify whether to give update_authority to the new receiver for the minted NFT.
Body (raw)
network: Solana blockchain environment (testnet/devnet/mainnet-beta)
wallet: Wallet address that has the mint authority of the NFT
master_nft_address: Address of the master NFT to mint
receiver: Wallet address of the receiver,
transfer_authority: true //(optional, false by default)
message: (optional) Add memo on transaction
fee_payer: (optional) If mentioned this is the account that will be used for paying the transaction gas fee.
You will get an encoded transaction in response which you can sign in your front end or back end using the same wallet as used in the API.
POST /sol/v1/nft/mint_detach
Last updated
Was this helpful?