Improving the base functionalities of smart contract standards with Extensions.
Pause token transfers, minting and burning.
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI
contract
: smart contract address
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
Pause token burning.
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
burnable
: [boolean] set to true
if you want to activate the burn token feature and false
if not.
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
token
: token ID
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
token
: token ID
signedAccount
: the account used to sign the transaction.
metadataUri
: [string] metadata URI of the token.If you want to generate metadata URI using NFT KIT, set the "metadataUri "value as an empty string.
metadata
: NFT KIT will use values inside metadata to generate metadata URI of the token. It confirms the structure defined by ERC721 and ERC1155 standards. For more details about NFT metadata standard.
description
: [string] a description of the token
name
: [string] the name of this specific token
image
: [string] this is the URL to the image of the item. Can be just about any type of image and can be IPFS URLs or paths.
image_data
: [string] Raw SVG image data, if you want to generate images on the fly (not recommended). Only use this if you're not including the image parameter.
external_url
: [string] This is the URL that will appear below the asset's image on OpenSea and will allow users to leave OpenSea and view the item on your site.
attributes
: [string] To give your items a little more pizazz, we also allow you to add custom "attributes" to your metadata that will show up underneath each of your assets.
trait_type
: [string] the name of the trait
value
: [string] the value of the trait
The access control of your contract is an important concept that governs many features provided by your smart contract.
Almost every smart contract must have an access control mechanism. We provide two:
Ownership
Role-Based Access Control
"Ownership" is a simple approach to set up access control within your smart contract. You can easily provide the "accessControl" property with "OWNABLE" during deployment to get started. Thereby, the restricted areas of the contract can only be called by the owner of the contract.
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: RINKEBY, ROPSTEN, MUMBAI, SHIMMEREVM
contract
: smart contract address
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: RINKEBY, ROPSTEN, MUMBAI, SHIMMEREVM
contract
: smart contract address
account
: [string] the new owner address.
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: RINKEBY, ROPSTEN, MUMBAI, SHIMMEREVM
contract
: smart contract address
"Role-Based Access Control" is a more complex approach than "Ownership" to manage access control. With this approach, you can define a hierarchy of roles, each allowed to perform a different set of actions. You can also assign multiple accounts to each role.
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: RINKEBY, ROPSTEN, MUMBAI, SHIMMEREVM
contract
: smart contract address
account
: an account address
role
: role name
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: RINKEBY, ROPSTEN, MUMBAI, SHIMMEREVM
contract
: smart contract address
role
: role name
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: RINKEBY, ROPSTEN, MUMBAI, SHIMMEREVM
contract
: smart contract address
role
: [string] the role you want to grant to the specified account.
account
: [string] an account address.
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
role
: [string] the role you want to revoke from the specified account.
account
: [string] an account address.
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
role
: [string] the role you want to renounce from the specified account.
account
: [string] an account address.
Learn how to create and mange NFTs on Ethereum, Polygon and the Shimmer Network using the NFT-Kit's REST API or our Kotlin/Java library
Setup - How to use the NFT-Kit
NFT | Creation & Management - How to deploy Smart Contracts and mint NFTs
NFT | Ownership Verification - How to verify NFT ownership within a collection and traits
Smart Contract | Extensions - Pause token transfers, minting and burning
Smart Contract | Access Control - Access Control functionalities
Description of the main functions to manage NFTs: smart contract deployment, minting tokens, etc.
The NFT-Kit supports the ERC-721 standard with the option to be deployed as regular contract for NFTs or modified for Soulbound Tokens.
Do you want to modify your contract further? Have a look at our Smart Contract Extension Sections:
Smart Contract Extensions - Pause token minting and burning.
Smart Contract Access Control - Enable role-based access control
Ensure that the GasProvider is configured with the appropriate gasPrice and gasLimit based on current market conditions prior to smart contract deployment, to ensure successful transactions.
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
After you have successflully deployed the contract, you can start minting NFTs to your users.
name
: [string] the human-readable name of the contract.
symbol
: [string] the abbreviated symbol of the contract.
tokenStandard
: [string] NFTs smart contract standard. Supported values: ERC721.
accessControl
: [string] access control approach for the smart contract. Supported values: OWNABLE, ROLE_BASED_ACCESS_CONTROL. For more details about access control approaches.
transferable
: [boolean] activate/deactivate token transfer.
burnable
: [boolean] activate/deactivate token burn.
Ensure that the GasProvider is configured with the appropriate gasPrice and gasLimit based on current market conditions prior to smart contract deployment, to ensure successful transactions. In the contract deployment call we set the transferable option to false, which deploys a soulbound token contract. This contract prevents any token transfers after the initial mint.
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
After you have successflully deployed the contract, you can start minting NFTs to your users.
name
: [string] the human-readable name of the contract.
symbol
: [string] the abbreviated symbol of the contract.
tokenStandard
: [string] NFTs smart contract standard. Supported values: ERC721.
accessControl
: [string] access control approach for the smart contract. Supported values: OWNABLE, ROLE_BASED_ACCESS_CONTROL. For more details about access control approaches.
transferable
: [boolean] in order to make sure a soulbound token contract is created we need to set this option to false otherwise it will create a regular NFT contract as shown in the section above.
burnable
: [boolean] activate/deactivate token burn.
It is a rich API to mint a new NFT token. It manages NFT metadata in multiple ways. You can generate token URI by yourself or let the NFT KIT generate it.
Ensure that the GasProvider is configured with the appropriate gasPrice and gasLimit based on current market conditions prior to minting, to ensure successful transactions.
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
metadataUri
: [string] metadata URI of the new token.If you want to generate metadata URI using NFT KIT, set the "metadataUri "value as an empty string.
metadata
: NFT KIT will use values inside metadata to generate metadata URI of the new token. It confirms the structure defined by ERC721 and ERC1155 standards. For more details about NFT metadata standard.
description
: [string] a description of the token
name
: [string] the name of this specific token
image
: [string] this is the URL to the image of the item. Can be just about any type of image and can be IPFS URLs or paths.
image_data
: [string] Raw SVG image data, if you want to generate images on the fly (not recommended). Only use this if you're not including the image parameter.
external_url
: [string] This is the URL that will appear below the asset's image on OpenSea and will allow users to leave OpenSea and view the item on your site.
attributes
: [string] To give your items a little more pizazz, we also allow you to add custom "attributes" to your metadata that will show up underneath each of your assets.
trait_type
: [string] the name of the trait
value
: [string] the value of the trait
recipientAddress
: [string] the account address who will receive the NFT
metadataStorageType
: [string] when you let the NFT KIT to generate metadata URI, you need to specify how the metadata will be stored. Supported values: ON_CHAIN, OFF_CHAIN. You can use ON_CHAIN if you want to store NFT metadata on the chain. You can use OFF_CHAIN if you want store NFT metadata off chain using IPFS.
Owner of a soul bound NFT smart contract , can revoke a minted Token.
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
token
: token ID
Find out more information about your NFTs with the following actions.
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
token
: token ID
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
token
: token ID
Managing a dynamic NFT required us to update the NFT metadata
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
token
: token ID
key
: [string] the name of the metadata attribute that you want to update.
value
: [string] the new value of the attribute
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
owner
: account address
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
token
: token ID
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
It will return a list of all NFTs which are associated with the provided account address.
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
owner
: account address
In this section, we have a set of APIs that help you verify ownership or traits of an NFT, making ownership-based access management possible.
You can use this API to verify if an account is the real owner of an NFT.
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
account
: [string] the NFT owner address.
tokenId
: [string] the NFT token ID.
The verification process can be based on NFT ownership and metadata traits.
Path parameter:
chain
: chain to work with.
Main chains: ETHEREUM, POLYGON
Testnet chains: SEPOLIA, GOERLI, MUMBAI, SHIMMEREVM
contract
: smart contract address
account
: [string] the NFT owner address.
tokenId
: [string] the NFT token ID.
traitType
: [string] the name of the trait that you want to verify..
traitValue
: [string] the trait value.
Learn how to setup the NFT-Kit on your local system
Do you want to build using our APIs or add the NFT-Kits functionalities as a direct dependency in a Kotlin/Java application
Make sure you have Docker or a JDK 16 build environment including Gradle installed on your machine
Clone the project
2. Change the folder
3. Configure your project
4. Building the docker container
5. Running the container
Clone the project
2. Change the folder
3. Configure your project
4. Build the project
5. Run the executable
In build/distributions/
you have two archives, a .tar, and a .zip.
Extract the one that is built for your system and run it.
NFT | Creation & Management - How to deploy Smart Contracts and mint NFTs
NFT | Ownership Verification - How to verify NFT ownership within a collection and traits
Smart Contract | Extensions - Pause token transfers, minting and burning
Smart Contract | Access Control - Access Control functionalities
Gradle
Maven
Required Maven repos:
NFT | Creation & Management - How to deploy Smart Contracts and mint NFTs
NFT | Ownership Verification - How to verify NFT ownership within a collection and traits
Smart Contract | Extensions - Pause token transfers, minting and burning
Smart Contract | Access Control - Access Control functionalities
API
Get started building with our API endpoints
Java/Kotlin SDK
Add the NFT-Kits functionality as a direct dependency