Introduction

NFTPort is Stripe for NFTs: a One-Stop, Simple, and Developer-Friendly NFT Infrastructure & APIs to help developers bring their NFT applications to market in hours instead of months. We take care of the NFT infrastructure so you can focus on your application. Built by developers for developers.

Demo to preview the plugin:

How to Setup

Image without caption
  • After you create an account you will be sent to the dashboard page, copy key
Image without caption
  • Set the obtained key in the plugin fields.
Image without caption

The Plugin's Actions

Retrieve all NFTs

Returns all ERC721 and ERC1155 NFTs that have been minted on a given chain. Can be set toĀ includeĀ the NFTĀ metadata,Ā file_information,Ā contract_infomationĀ andĀ allĀ which include full details like inĀ Retrieve NFT details. Ethereum and Polygon are supported.
  • continuation- Continuation. Pass this value from the previous response to fetch the next page.
  • include - Include optional data in the response.Ā metadataĀ includes NFT metadata,Ā file_informationĀ includes extra information of the NFTā€™s file,Ā contract_infomationĀ includes information of the NFTā€™s contract andĀ allĀ include full details like inĀ Retrieve NFT details. Fields can be combined to get the desired result. Allowed values: default, metadata file_information, contract_informationall.
  • page_size - The number of results returned per page. Limit can range between 1 and 50, and the default is 50.
  • chain - Blockchain from which to query NFTs.Allowed values: ethereum polygon rinkeby.
Image without caption
Responses: A JSON object with anĀ nftsĀ property that contains an array of up toĀ page_sizeĀ NFTs. Each entry in the array is a separate NFT. If no more NFTs are available, the resulting array will be empty. chainstringrequired.

Retrieve NFTs owned by an account

Returns NFTs owned by a given account (i.e. wallet) address. Can also return each NFT metadata withĀ includeĀ parameter. Ethereum and Tezos are supported (Polygon upcoming).
For Ethereum use the continuation string from response for pagination, for Tezos use page number.
  • For checking if a user owns a specific NFT and then unlocking specific activity.
  • Adding NFT portfolio section to your apps.
  • account_address
  • continuation - Continuation. Pass this value from the previous response to fetch the next page.
  • include -Include optional data in the response.Ā defaultĀ is the default response and metadata includes NFT metadata, like in Retrieve NFT details.
  • page_number - The page number of the results to return. The first page is 1.
  • page_size - The number of results returned per page. Limit can range between 1 and 50, and the default is 50.
  • chain - Blockchain from which to query NFTs.
Image without caption
Image without caption

Retrieve contract NFTs

Returns all NFTs for a given contract address. Can be set toĀ includeĀ the NFTĀ metadataĀ orĀ allĀ which returns extra information. Ethereum and Polygon are supported.
  • Importing all NFTs from a given contract to your application.
  • contract_address
  • include - Include optional data in the response. default is the default response, metadata includes NFT metadata and cached_file_url, and all includes extra information like file_information and mint_date in Retrieve NFT details.
  • page_numberinteger - The page number of the results to return. The first page is 1.
  • page_size - The number of results returned per page. Limit can range between 1 and 50, and the default is 50.
  • refresh_metadata - Queues and refreshes all the NFTs metadata inside the contract (i.e. all tokens) if they have changed since theĀ updated_date. Useful for example, when NFT collections are revealed.
  • chain - Blockchain from which to query NFTs.
Image without caption
Responses: A JSON object with anĀ nftsĀ property that contains an array of up toĀ page_sizeĀ NFTs. Each entry in the array is a separate NFT. If no more NFTs are available, the resulting array will be empty
Image without caption

Retrieve transactions by an account

Returns all on-chain transactions for the specified account (i.e. wallet) address. Can be set to include transactions such as mint, burn, transfer_from, transfer_to, buy, sell, or all which includes all transactions. Ethereum mainnet is supported.
  • Tracking all transactions made by an account.
  • Building analytics and monitoring solutions.
  • account_address
  • continuation - Continuation. Pass this value from the previous response to fetch the next page.
  • page_size -The number of results returned per page. Limit can range between 1 and 50, and the default is 50.
  • chain - Blockchain from which to query NFT transactions.
  • type - Transaction type. You can specify the event types as an array.Ā allĀ returns all transaction types. Allowed values: transfer_from, transfer_to, mint, burn, buy, sell, all
Image without caption

Retrieve transactions by contract

Returns all on-chain transactions for the specified contract. Can be set toĀ includeĀ transactions such asĀ transfer,Ā burn,Ā mint, andĀ sale, orĀ allĀ which includes all transactions. Ethereum mainnet is supported. Useful for:
  • Tracking all transactions of all NFT tokens in a contract.
  • Building analytics and monitoring solutions.
  • contract_address
  • continuation - Continuation. Pass this value from the previous response to fetch the next page.
  • page_size - The number of results returned per page. Limit can range between 1 and 50, and the default is 50.
  • chain - Blockchain from which to query NFT transactions. Allowed value: ethereum
  • type - Transaction type. You can specify the event types as an array.Ā allĀ returns all transaction types. Allowed values:transfer, mint, burn,sale all
Image without caption
A JSON object withĀ transactionsĀ property that contains an array of up toĀ page_sizeĀ transactions. Each entry in the array is a separate transaction. If no more transactions are available, the resulting array will be empty.
Image without caption
Retrieve NFTs created by an account
Returns NFTs created (i.e. minted) by a given account (i.e. wallet) address. Can also return each NFT metadata withĀ includedĀ parameter. Ethereum mainnet is supported.
  • For displaying NFTs created by an account.
  • Doing analytics on the creator's portfolio.
  • account_address
  • continuation - Pass this value from the previous response to fetch the next page.
  • page_size - The number of results returned per page. The limit can range between 1 and 50, and the default is 50.
  • chain - Blockchain from which to query NFT transactions. Allowed values: ethereum
Image without caption
Image without caption

Retrieve contract sales statistics

Retrieve in-depth sales statistics about a contract from OpenSea. Includes statistics such as floor price, total volume, sales, etc. Updated with 1-hour interval.
  • Analysis and ranking of NFT collections.
  • Tracking NFT collections by sales, etc.
chain - Blockchain from which to query NFT transactions. Allowed values: ethereum, polygon
Image without caption
Image without caption

Easy minting w/URL

With Easy mint, you can turn anything into an NFT in less than 5 minutes using one simple API call. If you are new to minting, see Easy minting quickstart.
After minting, the NFT will appear in the mint_to_address wallet. If you minted to your own wallet, you can also see the minted NFT on OpenSea in your profile after a few minutes.
You can mint up to 100 NFTs for free per chain. Maximum supported file size is 20MB. For higher limits, see pricing.
  • If you wish to customize the minting process e.g. use your own contract, seeĀ Customizable minting.
  • chain - Blockchain from which to query NFT transactions. Allowed values: polygon, rinkeby
  • name - Name of the NFT.
  • description - Text description of the NFT which will be seen on NFT marketplaces, etc
  • file_url - URL that points to the image/video or any other file format as long as it returns a Content-Length and Content-Type header or contains the file extension. HTML files are not supported.
  • mint_to_address - Account address where the NFT will be sent. For example, your Metamask wallet address if you wish to send it to yourself.
Image without caption
Returns contract address and the transaction hash which can be used inĀ Return minted NFTĀ to receive the token ID and confirm that the minting was successful (minting can take up to a few minutes depending on how congested the network is).
Image without caption

Easy minting w/file upload

With Easy mint, you can turn anything into an NFT in less than 5 minutes using one simple API call. If you are new to minting, see Easy minting quickstart.
After minting, the NFT will appear in the mint_to_address wallet. If you minted to your own wallet, you can also see the minted NFT on OpenSea in your profile after a few minutes.
You can mint up to 100 NFTs for free per chain. Maximum supported file size is 20MB. For higher limits, see pricing.
  • If you wish to customize the minting process e.g. use your own contract, seeĀ Customizable minting.
  • chain - Blockchain from which to query NFT transactions. Allowed value: polygon, rinkeby
  • description - Text description of the NFT which will be seen on NFT marketplaces, etc.
  • mint_to_address - Account address where the NFT will be sent. For example, your Metamask wallet address if you wish to send it to yourself.
  • name - Name of the NFT.
  • file - The file you want to mint. All file types are supported. Maximum file size is 20MB.
Image without caption
Returns contract address and the transaction hash which can be used inĀ Return minted NFTĀ to receive the token ID and confirm that the minting was successful (minting can take up to a few minutes depending on how congested the network is).
Image without caption

List all your deployed collection contracts

Returns a list of all the collection contracts youā€™ve previously deployed. It can also return merkle proofs of all the whitelisted addresses withĀ includeĀ set toĀ merkle_proofs. These proofs can be used during presale/whitelisted minting. A Merkle proof is a series of hashes which can be combined with the Merkle tree root and the node (address) it was generated for, to verify that the node is contained in the Merkle tree without having access to the entire tree.
  • Retrieving collection-specific contract details.
  • Retrieving your collection contract creation history.
  • Getting merkle proofs of whitelisted addresses.
  • chain - Blockchain where the contracts have been deployed to. Allowed values: polygon, rinkeby, ethereum
Image without caption
List of all collection contracts you have deployed.
Image without caption

List all your deployed contracts

Returns a list of all the contracts youā€™ve previously deployed withĀ Deploy a contract for NFT products.
  • Retrieving your contract creation history.
Image without caption

List all your IPFS uploads

Returns a list of all data uploaded to IPFS by you. This includes files, metadata and directories uploaded to IPFS.
Note: Only lists IPFS uploads created after 2022-03-21T12:10:00 UTC.
  • Retrieving your uploaded data to IPFS.
  • end_date - Data uploaded to IPFS till this date (ISO) will be in the response. Eg: 2022-03-19T19:45:48.
  • page_number - The page number of the results to return. The first page is 1.
  • page_size - The number of results returned per page. The limit can range between 1 and 50, and the default is 50.
  • type - Transaction type. You can specify the event types as an array.Ā allĀ returns all transaction types.
Image without caption
List of all the data uploaded to IPFS by you.
Image without caption

Multi-chain NFT search

Searches NFTs across multiple chains using a text query, specifically theĀ nameĀ andĀ descriptionĀ fields from the metadata. You can think of it like performing a search on Google. It's designed to help you find the one or the most closest NFT results you're looking for.
Ethereum and Polygon are supported, including multi-chain search.
  • Finding NFTs by their name and/or description.
  • Quickly integrating NFT search to your application.
  • chain - Blockchain from which to query NFT transactions. Allowed value: polygon, ethereum, all
  • text - Search query.
Image without caption
A JSON object with anĀ nftsĀ property that contains an array of up toĀ page_sizeĀ NFTs. Each entry in the array is a separate NFT. If no more NFTs are available, the resulting array will be empty.
Image without caption

User settings

Retrieve your NFTPort settings to check your usage and limits.
  • Checking your minting and contract deployment usage and limits.
  • Checking your NFT Data rate limits
Your API usage and limits.
Image without caption

Upload metadata to IPFS

Uploads NFT metadata to IPFS as a JSON file which is the standard format for NFT metadata. You can use the returned metadata_ipfs_uri in Customizable minting to mint your NFT.
If you prefer hosting metadata in your own servers, you can skip this step. Otherwise, we recommend using IPFS because itā€™s an industry standard for decentralized storage and guarantees the immutability of your metadata. For the file_url, we also recommend using IPFS with Upload a file to IPFS. We use nft.storage to pin the files with Filecoin, which ensures that your important data is retained in IPFS.
  • Storing your NFT metadata easily and according to industry standards.
  • name - Name of the NFT.
  • description - Description of the NFT.
  • file_url - URL of the file that you wish to link with the metadata and turn into an NFT.
Image without caption
Responses: The details of the NFT metadata and the uploaded metadata URI which you can use inĀ Customizable minting
Image without caption

Upload a file to IPFS

Uploads a file toĀ IPFSĀ which makes your NFT storage easy. You can use the returnedĀ ipfs_urlĀ withĀ Upload metadata to IPFSĀ to mint your NFT.
If you prefer hosting files in your own servers, you can skip this step. Otherwise, we recommend using IPFS because it's an industry standard for decentralized storage and guarantees the immutability of your files. We useĀ nft.storageĀ toĀ pinĀ the files with Filecoin, which ensures that your important data is retained in IPFS.
Supports all file types and the maximum file size is 20MB. For higher limits, seeĀ pricing.
  • Storing your NFT files easily and according to industry standards.
  • file - The file to upload to IPFS. All file types are supported. Maximum file size is 20MB.
The details of the uploaded file and the IPFS URL.
Image without caption
Deploy a contract for NFT products
Deploys an ERC-721 or ERC-1155 smart contract where your can mint your NFTs on-demand. The supply of NFTs is not fixed; more can be minted into this contract at any point in the future. This is a required step if you wish to use Customizable minting as your NFTs will be minted into this contract.
As blockchains can take a few seconds up to a few minutes to sync, then after contract deployment, you can use the returned transaction_hash in Retrieve a deployed contract to get the contract_address.
ā—
You can deploy up to 5 contracts for free per chain. For higher limits, see pricing.
  • Deploying your own contracts so you easily can build custom products.
  • To understand the difference between NFT product contracts and NFT collection contracts, seeĀ Contract comparison.
Read howĀ royaltiesĀ workĀ here.
  • chain - Blockchain from which to query NFT transactions. Allowed value: polygon, rinkeby
  • name - Name of the NFT contract.Ā Cannot be changed later.
  • symbol - Symbol of the NFT contract.Ā Cannot be changed later.
  • owner_address - The contract owner address. If you wish to own the contract, then set it as your wallet address.
  • type - Type of deployed contract (erc721/erc1155). Default type is erc721.
  • metadata_updatable - Default isĀ false. IfĀ true, the metadata of the NFTs minted in the specified contract can be updated after minting (token URIs are not frozen on the contract level). This is useful for creating dynamic NFTs or revealing the NFTs after the drop. IfĀ false, all the NFTs minted in this contract are frozen by default which means token URIs are non-updatable. Metadata may also be frozen after deploying the contract on a contract and token level (seeĀ Update a deployed contract for NFT productsĀ &Ā Update a minted NFT).
Image without caption
Details of the deployed contract and its transaction hash.
Image without caption
Deploy an NFT collection contract
Deploys aĀ fixed-supply ERC-721 smart contract, commonly used for launching NFT collections.
As blockchains can take a few seconds up to a few minutes to sync, then after contract deployment, you can use the returnedĀ transaction_hashĀ inĀ Retrieve a deployed contractĀ to get theĀ contract_address
You can deploy up to 5 contracts for free on each of Polygon and Rinkeby, andĀ max_supplyĀ is limited to less than or equal to 5,000 NFTs for collection contracts deployed on the Free plan. Ethereum contract deployments are available only on the Growth tier and you will be charged immediately on request and if the transaction fails for any reason the amount will be refunded. For details and limits, seeĀ pricing.
  • Launching an NFT collection (e.g. a 10,000 profile pictures collection) with a minting website.Ā See ourĀ tutorialĀ to learn how to create an NFT contract collection and make a website allowing users to mint.
Read howĀ royaltiesĀ workĀ here.
Parameters: chain - Blockchain from which to query NFT transactions. Allowed value: ethereum, polygon, rinkeby
Image without caption
Responses: Details of the deployed contract and its transaction hash.
Image without caption

Retrieve a deployed contract

Returns the details of a contract that has previously been deployed with Deploy a contract for NFT products or Deploy an NFT collection contract. Supply the transaction_hash to check if the contract is on chain and to get the contract_address. For NFT product contracts, you can use the returned contract_address in Customizable Minting.
As blockchains can take a few seconds up to a few minutes to sync, this endpoint can be polled until the contract_address is returned. Useful for:
  • Deploying your own contracts so you can build custom products or collections easily.
  • If you want to get data about NFT contracts that you haven't deployed using NFTPort, seeĀ Retrieve contract NFTs.
  • chain - Blockchain from which to query NFT transactions. Allowed value: polygon, rinkeby, ethereum
Responses: Chain and contract address of the deployed contract.
Image without caption
Batch customizable minting (ERC1155)
Batch mints NFTs to your previously deployed ERC1155 NFT product contract. This minting consists of multiple steps and enables you to customize the whole minting flow for your exact needs. Batch minting allows you to create multiple NFTs with one API call and create more than one of the same token.
  1. First, you needĀ contract_addressĀ usingĀ Deploy a contract for NFT products.
  1. Get contract_address with the action Retrieve a deployed contract.
  1. You needĀ metadata_uriĀ usingĀ Upload metadata to IPFS.
After minting, the NFTs will appear in the mint_to_address wallet. If you minted to your own wallet, you can also see the minted NFTs on OpenSea in your profile after a few minutes.
You can mint up to 100 NFTs for free per chain. Maximum supported filesize is 20MB. For higher limits, see pricing.
  • Minting to your own NFT product contracts effortlessly.
  • Creating customizable minting flows which enable to build NFT-based products.
chain - Blockchain from which to query NFT transactions. Allowed value: polygon, rinkeby
contract_address - The NFT will be minted inside this contract. It must be your own contract. If you donā€™t have one, seeĀ Deploy a contract for NFT products.
  • mint_to_address - Account address where the NFTs will be sent. For example, your Metamask wallet address if you wish to send them to yourself.
  • token_id - Customizable token ID for the NFTs. If not set, will be chosen randomly. Maximum length is 76 digit number (2^256 - 1).
  • metadata_uri - Metadata URI which will be linked with your NFTs. If you don't have one, seeĀ Upload metadata to IPFS.
  • quantity - The quantity of the NFTs. Maximum quantity is 76 digit integer (2^256 - 1).
Image without caption
Responses: Returns contract address and the transaction hash which can be used inĀ Return minted NFTĀ to receive the token ID and confirm that the minting was successful (minting can take up to a few minutes depending on how congested the network is).
Image without caption

Retrieve batch minted NFTs

Returns the details of a batch minted NFTs for ERC1155 contracts. You need to provideĀ transaction_hashĀ which is returned fromĀ Batch customizable minting. Minting is not instantaneous because blockchains take time to verify transactions. Thus, you can poll this endpoint every 5 seconds until you get a response.
  • Confirming that NFT minting was successful and the NFTs are on chain.
  • chain - Blockchain from which to query NFT transactions. Allowed value: polygon, rinkeby
Image without caption
Details of a successfully minted NFT which is on chain.
Image without caption

Delete Batch burn minted NFTs (ERC1155 only)

Burns a batch of NFTs which have been previously minted withĀ Batch customizable minting. Burning an NFT means destroying it by sending it to a null (un-spendable) address. Transactions leading up to the burn will remain on the blockchain.
Note: Burning is possible only if the token is owned by the contract owner and the token has not been transferred/sold yet.
  • chain - Blockchain from which to query NFT transactions. Allowed value: polygon, rinkeby
  • contract_address - Contract where the token is minted. It must be your own contract.
  • tokens - List of tokens to be burned. Each record contains the token ID of the NFT and quantity.
Image without caption
Returns transaction hash which can be used to confirm that the transaction was successful (blockchain transactions can take up to a few minutes depending on how congested the network is).
Image without caption

Customizable minting

Mints an NFT to your previous contract for NFT products. This minting consists of multiple steps and enables you to customize the whole minting flow for your exact needs.
  1. First, you need contract_address using Deploy a contract for NFT products.
  1. Secondly, you need metadata_uri using Upload metadata to IPFS.
After minting, the NFT will appear in the mint_to_address wallet. If you minted to your own wallet, you can also see the minted NFT on OpenSea in your profile after a few minutes.
You can mint up to 100 NFTs for free per chain. Maximum supported filesize is 20MB. For higher limits, see** pricing**.
  • Minting to your own product contracts effortlessly.
  • Creating customizable minting flows which enable building NFT-based products.
  • chain - Blockchain from which to query NFT transactions. Allowed value: polygon, rinkeby
  • metadata_uri - Metadata URI which will be linked with your NFT. If you don't have one, seeĀ Upload metadata to IPFS.
  • mint_to_address - Account address where the NFT will be sent. For example, your Metamask wallet address if you wish to send it to yourself.
  • token_id - Customizable token ID for the NFT. If not set, will be chosen randomly. Maximum length is 76 digit number (2^256 - 1).
Image without caption
Responses: Returns contract address and the transaction hash which can be used inĀ Return minted NFTĀ to receive the token ID and confirm that the minting was successful (minting can take up to a few minutes depending on how congested the network is).
Image without caption

Retrieve a minted NFT

Returns the details of a minted NFT. You need to provideĀ transaction_hashĀ which is returned fromĀ Easy minting w/URL,Ā Easy minting w/file uploadĀ orĀ Customizable minting. Minting is not instantaneous because blockchains take time to verify transactions. Thus, you can poll this endpoint every 5 seconds until you get a response.
  • Confirming that NFT minting was successful and the NFT is on chain.
Parameters: transaction_hash
chain - Blockchain from which to query NFT transactions. Allowed value: polygon, rinkeby
Image without caption
Responses: Details of a successfully minted NFT which is on chain.
Image without caption

Changelogs

Update 12.09.23 - Version 1.11.0

  • Minor update

Update 26.02.24 - Version 1.15.0

  • Updated all API calls