NFT | Ownership Verification NFTs verification enables multiple use cases. The NFT Kit provides numerous approaches to verify the ownership of the NFTs and that the NFTs have customized properties.
NFT ownership verification:
You can use this API to verify if an account is the real owner of an NFT.
REST API Kotlin
API Doc
Swagger Doc | ReDoc
Curl call example
Copy curl -X GET "https://0.0.0.0:7000/v2/nftkit/nft/verifier/algorand/chain/{chain}/verifyNftOwnership"
-H "accept: application/json"
Path Params :
chain
: chain to work with. Either ALGORAND_TESTNET
, ALGORAND_BETANET
, ALGORAND_MAINNET
assetId
: The id of the Asset
address
: Address of the NFT holder
Example :
Copy curl -X GET "http://0.0.0.0:7000/v2/nftkit/nft/verifier/algorand/chain/ALGORAND_TESTNET/verifyNftOwnership?assetId=257177857&account=GYFVJLKGSWQDHFBHBLABUXYHHSU544RV3WH4ZCF3S6HONSDP73TK4VGY3Y"
-H "accept: application/json"
Copy import id.walt.nftkit.services.AlgorandNftService
import id.walt.nftkit.services.AlgorandChain
val assetId = "257177850"
val address = "GYFVJLKGSWQDHFBHBLABUXYHHSU544RV3WH4ZCF3S6HONSDP73TK4VGY3Y"
val result = AlgorandNftService. verifyOwnership (address , assetId, AlgorandChain.TESTNET)
println (result)
NFT ownership verification with traits :
You can use this API to verify if an account is the real owner of an NFT existed in Algorand blockchain with NFT property verification.
REST API Kotlin
API Doc
Swagger Doc | ReDoc
Curl call example
Copy curl -X GET "https://0.0.0.0:7000/v2/nftkit/nft/verifier/algorand/chain/{chain}/verifyAlgorandNftOwnershipWithTraits"
-H "accept: application/json"
Path Params :
chain
: chain to work with. Either ALGORAND_TESTNET
, ALGORAND_BETANET
, ALGORAND_MAINNET
assetId
: The id of the Asset
address
: Address of the NFT holder
value
: the value of the trait
Example :
Copy curl -X GET "http://0.0.0.0:7000/v2/nftkit/nft/verifier/algorand/chain/ALGORAND_TESTNET/verifyNftOwnershipWithTraits?assetId=257177850&account=GYFVJLKGSWQDHFBHBLABUXYHHSU544RV3WH4ZCF3S6HONSDP73TK4VGY3Y&trait=size&value=9814"
-H "accept: application/json"
Copy import id.walt.nftkit.services.AlgorandNftService
import id.walt.nftkit.services.AlgorandChain
val assetId = "257177850"
val address = "GYFVJLKGSWQDHFBHBLABUXYHHSU544RV3WH4ZCF3S6HONSDP73TK4VGY3Y"
val traitType = "cap"
val traitValue = "red"
val result = AlgorandNftService.verifyOwnerShipWithTraits(address , assetId, AlgorandChain.TESTNET , traitType, traitValue)
println (result)
NFT ownership verification Based on Creator Address :
This Endpoint will verify if a given account has an NFT minted from a particular account .
REST API
API Doc
Swagger Doc | ReDoc
Curl call example
Copy curl -X GET "https://0.0.0.0:7000/v2/nftkit/nft/verifier/algorand/chain/{chain}/{address}/verifyNftOwnershipBasedOnCreator/{creatorAddress}"
-H "accept: application/json"
Path Params :
chain
: chain to work with. Either ALGORAND_TESTNET
, ALGORAND_BETANET
, ALGORAND_MAINNET
address
: Address of the NFT holder
creatorAddress
: The initial creator address
Example :
Copy curl -X GET "http://0.0.0.0:7000/v2/nftkit/nft/verifier/algorand/chain/ALGORAND_TESTNET/PVY6K7CB4JDRSOSPM7HZPTAOVDMVGHPF7TN6O5CBMD7UEDJWHOCRWI2OU4/verifyNftOwnershipBasedOnCreator/GYFVJLKGSWQDHFBHBLABUXYHHSU544RV3WH4ZCF3S6HONSDP73TK4VGY3Y"
-H "accept: application/json"
NFT Metadata verification Against Dynamic Policy :
REST API REGO
API Doc
Swagger Doc | ReDoc
Curl call example
Copy curl -X GET "https://0.0.0.0:7000/v2/nftkit/nft/verifier/algorand/chain/{chain}/token/{token id}/policy/{policyName}/verification"
-H "accept: application/json"
Path Params :
chain
: chain to work with. Either ALGORAND_TESTNET
, ALGORAND_BETANET
, ALGORAND_MAINNET
policyName
: Name of the policy you want to verify against
Example :
Copy curl -X GET "http://0.0.0.0:7000/v2/nftkit/nft/verifier/algorand/chain/ALGORAND_TESTNET/token/287718643/policy/policy%20algorand/verification"
-H "accept: application/json"
Code of the Rego policy that can be used for creating the dynamic policy :
Copy {
"name": "policy algorand",
"description": "policy 1",
"input": {
"name": "waltid",
"description" : "waltid nft on algorand#2"
},
"policy": "package app.nft
import future.keywords.if
default allow := false
allow if {
valid_nft_name
valid_nft_description
}
valid_nft_name if input.name= data.name
valid_nft_description if input.description= data.description
",
"policyQuery": "data.app.nft.allow",
"policyEngine": "OPA"
}