Introduction
To use any of the API endpoints, you first need to acquire an API key. Contact us on enquiries@block.co to get your API key.
Block.co's NFT API provides you with programmatic access to all of the platform's functionality and features, allowing a user to create NFT collections, get info of the created collections and claim an NFT if the user has the privileges
If you are looking for the API documentation for Block.co's Credentialing platform, you can find it here.
To gain access to the API you need to request an API key at enquiries@block.co.
Every request should contain an HTTP header Authorization: Token YOUR_API_KEY
.
All the URLs in this documentation are relative. You should prepend `https://api.block.co` or `https://test-api.block.co` depending on the environment you're working on. Please note that all API endpoint URLs should have a trailing slash `/` at the end.
You can download a Postman collection with the requests in this document here. You need to create a Postman environment with the variables `base_url` (https://test-api.block.co or https://api.block.co depending on which environment your account was created) and `api_key` (your API key).
Workflow
One of the challenges of working with this API is that creating a collection or claiming an NFT are not instant actions. These actions require a blockchain transaction in order to become final, and because of the nature of the blockchain this takes time.
So, when creating a collection you get back a collection ID (this is an internal unique ID in the API's database) and then you need to periodically poll (request) the "Get collection" endpoint until the collection's status is "READY" (30). This may take up to a few minutes. Only then is the collection's smart contract deployed on the blockchain and the collection's NFTs can be minted and claimed.
Create Collection
POST/nftapi/collection/
Creates a collection of one or more NFTs using the ERC721 standard. The collection will first have a "PROCESSING" status (10) until the files are processed and the contract deployment transaction is included in the next block. You can interact (claim, get QR codes etc.) with the collection's NFTs when the collection's status becomes "READY" (30), you can check a collection status using the Get Collection endpoint.
There are 4 types of collections depending on the parameter `sharetype`.
Possible collection 'sharetype' values are:
EMAIL = 10 ADDRESS = 15 QRCODE = 20 SMS = 30
'EMAIL' sharetype means that an email address should be included in each NFT's metadata (as an 'Email' field). After the collection is ready it allows for sending the NFTs' claiming links via email to their recipients
'ADDRESS' sharetype means that a wallet address should be included in each NFT's metadata (as an 'Address' field). After the collection is ready, the NFTs will be automatically minted and transfered to their recipients' wallet addresses. This sharetype also allows to mint every NFT in a collection to your own wallet (just provide the same 'Address' for each NFT) and handle them however you see fit afterwards.
'QRCODE' sharetype is the simplest form of collection. After the collection is ready, you have the option of either downloading the QR-codes for claiming each NFT, or getting the NFT claim links and disseminating them to the intended recipients as appropriate.
'SMS' sharetype means that a mobile phone number should be included in each NFT's metadata (as an 'PhoneNumber' field in international +XXX format). After the collection is ready it allows for sending the NFTs' claiming links via SMS to their recipients
This request's Content-Type
should be multipart/form-data
.
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
chain | number |
FormData |
Required |
The network_id of the blockchain that the NFTs will be minted. Ethereum mainnet: 1, Polygon mainnet: 137, Polygon testnet (Mumbai): 80001 (see Supported Blockchains Info). You need to have minting credits for the blockchain you are going to use (see Credits Info). | Example:
file | file |
FormData |
Required |
A list of the image files that will be minted as NFTs. Append them as 'file' in the FormData. |
name | string |
FormData |
Required |
The Collection name. This is also the 'name' of the Smart Contract so it goes on the blockchain, publicly visible. |
description | string |
FormData |
Required |
The description for the Collection. |
metadata | JSON string |
FormData |
Required |
A JSON string that contains individual information (metadata) for each NFT. The same asset can be used multiple times (to mint
several NFTs with the same asset). Each "Asset" should also be included in the `file` field of the request. "Name" and "Description"
are required. Example: [{"Asset":"test.jpeg","Name":"","Description":"","Email":""}]
|
sharetype | number |
FormData |
Required |
A number indicating what type of collection you're creating. It should have one of the `sharetype` values listed above.
Example: 20
|
transferable | string |
FormData |
Optional |
Indicates if the NFTs may be transferred (or sold) after the initial claiming. Set to false if the NFTs are supposed to be personal
(e.g. Proof of attendance, degree, etc.). Default is 'false'.
Example: 'true'
|
limit | number |
FormData |
Optional |
A number indicating the maximum number of NFTs this collection may have. This limit is also enforced at the smart contract, so it's
public. Default is no limit.
Example: 20
|
royalties | number |
FormData |
Optional |
The value of royalties percentage multiplied by 100, for example if you want the percentage to be 5% the value should be 500.
Example: 500
|
royalties_recipient | string |
FormData |
Optional |
The address of the wallet which will receive the royalties.
Example: 0xe79311408c601e2998F071B3D56194d009eD47bB
|
Response
{ collectionId: 212 }
Add to Collection
POST/collection/{collection_id}/add/
Adds a number of NFTs to an existing collection. If a limit (maximum number of NFTs) has been set when creating the collection, the existing NFTs plus the added NFTs should not surpass that number.
If succesful, these NFTs can be handled as all NFTs in a collection according to its sharetype (e.g. you may get their QR-codes, or claim links and send them to their recipients)
This request's Content-Type
should be multipart/form-data
.
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
file | file |
FormData |
Required |
A list of the image files that will be minted as NFTs. Append them as 'file' in the FormData. |
metadata | JSON string |
FormData |
Required |
A JSON string that contains individual information (metadata) for each NFT. The same
asset can be used multiple times (to mint several NFTs with the same asset). Each
"Asset" should also be included in the `file` field of the request. "Name" and
"Description" are required. Example:
[{"Asset":"test.jpeg","Name":"","Description":"","Email":""}]
|
Response
{ collectionId: 212 }
Get Collections
GET/nftapi/collection/
Returns a list of your collections (paginated) with some generic details about each one.
Possible collection statuses are:
INITIATED = 10 PROCESSING = 15 PENDING_CONFIRMATION = 20 DEPLOYED = 25 READY = 30 FAILED = 100
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
page | int |
Query parameter |
Optional |
The resulting list of collections is paginated in pages of 10 objects. If the parameter is omitted, the first page will
be returned by default. A page query parameter is required to get the appropriate page. Example:
?page=2
|
Response
{ "total": 2, "results": [ { "id": 1, "name": "First", "description": "First desc", "status": 30, "created": "2022-05-03T11:51:05.203143Z", "user": 1, "client": 1, "chain": 2, "nfts": { "total": 3, "claimed": 1 }, "thumbnail": "client_1/collection_1/assets/1.png" }, { "id": 2, "name": "Second", "description": "Second desc", "status": 30, "created": "2022-05-03T11:51:05.203143Z", "user": 1, "client": 1, "chain": 2, "nfts": { "total": 3, "claimed": 1 }, "thumbnail": "client_1/collection_2/assets/2.png" } ] }
Get Collection details
GET/nftapi/collection/{collection_id}/
Returns collection status and details.
Possible collection statuses are:
INITIATED = 10 PROCESSING = 15 PENDING_CONFIRMATION = 20 DEPLOYED = 25 READY = 30 FAILED = 100
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
collection_id | int |
URL |
Required |
The details of the collection with this id will be returned. |
Response
{ "id": 1, "name": "test", "description": "test", "status": 15, "created": "2021-09-03T14:20:03.409572Z", "user": "admin", "client": 1, "nfts": { "total": 1, "claimed": 0 } }
Get Collection NFT details
GET/nftapi/collection/{collection_id}/nft-details/
Returns a list of all NFT details in a collection.
Possible NFT statuses are:
INITIATED = 10 CLAIMED = 15 PROCESSING = 20 PENDING_CONFIRMATION = 25 FAILED = 100
Of these statuses, `INITIATED` means that the NFT exists in a collection but hasn't been claimed yet, and 'CLAIMED' that it has been minted and transferred to a wallet address. All the rest are transitioning status on various stages of processing or waiting to be confirmed on the blockchain.
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
collection_id | int |
URL |
Required |
The collection_id for which you want the NFT details |
page | int |
Query parameter |
Optional |
NFT details results are paginated in pages of 50 objects. If the parameter is ommitted, the first page will be returned by
default. A page query parameter is required to get the appropriate page. Example: ?page=2
|
Response
{ "total": 1, "page": 1, "results": [ { "url": "client_1/collection_1/assets/7728a38a-faff-48a5-807a-9423fbc0b899.jpeg", # This is the path of the image on Block.co's servers (for easier viewing) "thumbnail": "client_1/collection_1/thumbnails/7728a38a-faff-48a5-807a-9423fbc0b899.jpeg", # This is the path of the image on Block.co's servers (for easier viewing) "metadata": { "Asset": "test.jpeg", "Email": "", "Name": "", "Description": "" }, "status": 10, "created": "2021-09-03T14:20:08.628374Z", "link_id": "671f1ef6-1b4f-4b98-b2ff-6cb2b2138158", # This is the unique ID for the NFT's claiming page (the full URL would be https://api.block.co/nft/671f1ef6-1b4f-4b98-b2ff-6cb2b2138158/ or https://test-api.block.co/nft/671f1ef6-1b4f-4b98-b2ff-6cb2b2138158/ depending on the environment you're working on) "claim_link": "https://test-api.block.co/nft/671f1ef6-1b4f-4b98-b2ff-6cb2b2138158/", # This is the full URL for the webpage to claim the NFT. Send this to the intended NFT recipient "json_cid": "QmYTXd6xFumDwE8Hc8W4Jy6ywEiJbUPP7mrg3EHDQotS8r", # This is the IPFS cid for the NFT's metadata "img_cid": "QmRUTK9Bzqaww8kEjB7RKToojABS6Va3rUDt9iHHaA4CFu", # This is the IPFS cid for the NFT's asset "claimed": true } ] }
Get Collection QR-codes
GET/nftapi/collection/{collection_id}/qrcodes/
Returns a ZIP file containing QR-codes for claiming each NFT in a collection. The collection sharetype should be either EMAIL or QRCODE for this to work.
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
collection_id | int |
URL |
Required |
The collection_id for which you want the claiming QR-codes |
Response
ZIP file containing the QR-code image files for claiming the NFTs.
Send Emails for Collection
POST/nftapi/collection/{collection_id}/email/
Send emails (wherever available) to each NFT owner with a claim link so he/she can use it to claim the NFT (the collection shoud have sharetype EMAIL)
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
collection_id | int |
URL |
Required |
The collection_id for which you want to send the emails |
Response
status_code: 200 OK
Send SMSes for Collection
POST/nftapi/collection/{collection_id}/sms/
Send SMSes (wherever available) to each NFT owner with a claim link so he/she can use it to claim the NFT (the collection should have sharetype SMS)
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
collection_id | int |
URL |
Required |
The collection_id for which you want to send the SMSes |
Response
status_code: 200 OK
Supported Blockchains Info
GET/nftapi/nft/{link_id}/
Returns a specific NFT's details. You use the link_id (the unique ID for the NFT's claiming page) of the NFT to perform the query.
Possible NFT statuses are:
INITIATED = 10 CLAIMED = 15 PROCESSING = 20 PENDING_CONFIRMATION = 25 FAILED = 100
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
link_id | str |
URL |
Required |
The link_id for which you want the NFT details |
Response
{ "url": "client_1/collection_1/assets/7728a38a-faff-48a5-807a-9423fbc0b899.jpeg", "thumbnail": "client_1/collection_1/thumbnails/7728a38a-faff-48a5-807a-9423fbc0b899.jpeg", "metadata": { "Asset": "test.jpeg", "Email": "", "Name": "", "Description": "" }, "status": 10, "created": "2021-09-03T14:20:08.628374Z", "link_id": "671f1ef6-1b4f-4b98-b2ff-6cb2b2138158", "claim_link": "https://test-api.block.co/nft/671f1ef6-1b4f-4b98-b2ff-6cb2b2138158/", # This is the full URL for the webpage to claim the NFT. Send this to the intended NFT recipient "json_cid": "QmYTXd6xFumDwE8Hc8W4Jy6ywEiJbUPP7mrg3EHDQotS8r", # This is the IPFS cid for the NFT's metadata "img_cid": "QmRUTK9Bzqaww8kEjB7RKToojABS6Va3rUDt9iHHaA4CFu", # This is the IPFS cid for the NFT's asset "claimed": true }
Send Email for NFT
POST/nftapi/nft/{nft_id}/email/
Send email to NFT owner with a claim link so he/she can use it to claim the NFT (the collection should have sharetype EMAIL)
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
nft_id | int |
URL |
Required |
The nft_id for which you want to send the email |
Response
status_code: 200 OK
Send SMS for NFT
POST/nftapi/nft/{nft_id}/sms/
Send SMS to NFT owner with a claim link so he/she can use it to claim the NFT (the collection should have sharetype SMS)
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
nft_id | int |
URL |
Required |
The nft_id for which you want to send the SMS |
Response
status_code: 200 OK
Claim NFT
POST/nftapi/nft/{link_id}/claim/{recipient_address}
Claim the NFT with the link ID given. This mints and transfers the NFT to a wallet address (recipient address)
This is not instant, since the claim transaction needs to be included in a block before being final. You can check the NFT details for status 'CLAIMED' for this.
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
link_id | int |
URL |
Required |
The link ID of the NFT that will be claimed. |
recipient_address | str |
URL |
Required |
The recipient address which the NFT will be transfered to. |
Response
status_code: 201 CREATED
Credits Info
GET/auth/nft-credits/
Returns user remaining credits for each supported blockchain (the key is the network_id for the supported blockchain)
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
Response
{ "137": { "coll_creds_remaining": 2, "nft_creds_remaining": 1000 }, "80001": { "coll_creds_remaining": 10, "nft_creds_remaining": 2000 } }
Supported Blockchains Info
GET/auth/nft-chains/
Returns user's NFT blockchain networks available for minting NFTs.
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
Response
[ { "id": 1, "network_id": 137, "name": "Polygon", "explorer_url": "https://polygonscan.com/" }, { "id": 2, "network_id": 80001, "name": "Mumbai Test Network", "explorer_url": "https://mumbai.polygonscan.com/" } ]
Get user info
GET/auth/nft-user-data/
Returns general information about your account and the platform. Includes information about the supported blockchains
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
Response
{ "username": "tsiolkas.v@block.co", "email": "tsiolkas.v@block.co", "verified_email": true, "client": { # This contains general information about your organisation "id": 1, "name": "Block.co", "logo": "client_1/logo/logo.png", "domain": "https://test-api.block.co", "domain_identity_proof": false, "contract_type": "Contract", "has_pending_order": false, "client_links_domain": null, "options": { "only_see_document_credits": false, "only_see_tx_credits": false }, "has_pk_ownership": false }, "chains": [ { "id": 2, "network_id": 137, "name": "Polygon", "explorer_url": "https://polygonscan.com/" }, { "id": 3, "network_id": 80001, "name": "Polygon Mumbai Testnet", "explorer_url": "https://mumbai.polygonscan.com/" }, ] }
Contract Owners count
GET /analytics/{chainID}/owners-count-by-contract/{contractAddress}/{duration}/{groupByPeriod}/
Get owners count by contract address.
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
chainID | string |
Path Parameter |
Required |
The chainID of the blockchain you want to query. 1 for Ethereum, 137 for Polygon. |
contractAddress | string |
Path Parameter |
Required |
The Contract address which will be queried. |
duration | string |
Path Parameter |
Required |
Possible values DURATION_UNSPECIFIED: Unspecified value. DURATION_1_DAY: 1 day. DURATION_7_DAYS: 7 days. DURATION_30_DAYS: 30 days. DURATION_365_DAYS: 365 days |
groupByPeriod | string |
Path Parameter |
Required |
Aggregation period for the analysis. Depending on the requested duration following minimal values are allowed: duration = 1 day, minimum allowed value is 15 minutes; duration = 7 days, minimum allowed value is 1 hour; duration = 30 days, minimum allowed value is 1 day; duration = 365 days, minimum allowed value is 1 day. GROUP_BY_PERIOD_UNSPECIFIED: Undefined value. GROUP_BY_PERIOD_15_MINUTES: 15 minutes. GROUP_BY_PERIOD_1_HOUR: 1 hour. GROUP_BY_PERIOD_1_DAY: 1 day. |
Response
{ "dataPoints": [ { "timestamp": "2022-05-03T00:00:00Z", "count": "2" }, { "timestamp": "2022-05-03T00:00:00Z", "count": "5" } ] }
Contract sales count / volume
GET /analytics/{chainID}/sales-volume-by-contract/{contractAddress}/{duration}/{groupByPeriod}/
Get the count and total volume of sales for a contract address.
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
chainID | string |
Path Parameter |
Required |
The chainID of the blockchain you want to query. 1 for Ethereum, 137 for Polygon. |
contractAddress | string |
Path Parameter |
Required |
The Contract address which will be queried. |
duration | string |
Path Parameter |
Required |
Possible values DURATION_UNSPECIFIED: Unspecified value. DURATION_1_DAY: 1 day. DURATION_7_DAYS: 7 days. DURATION_30_DAYS: 30 days. DURATION_365_DAYS: 365 days |
groupByPeriod | string |
Path Parameter |
Required |
Aggregation period for the analysis. Depending on the requested duration following minimal values are allowed: duration = 1 day, minimum allowed value is 15 minutes; duration = 7 days, minimum allowed value is 1 hour; duration = 30 days, minimum allowed value is 1 day; duration = 365 days, minimum allowed value is 1 day. GROUP_BY_PERIOD_UNSPECIFIED: Undefined value. GROUP_BY_PERIOD_15_MINUTES: 15 minutes. GROUP_BY_PERIOD_1_HOUR: 1 hour. GROUP_BY_PERIOD_1_DAY: 1 day. |
Response
{ "dataPoints": [ { "timestamp": "2022-05-03T00:00:00Z", "count": "2", "volume": "562.123" }, { "timestamp": "2022-05-04T00:00:00Z", "count": "12", "volume": "2321.123" } ] }
Contract Prices
GET /analytics/{chainID}/prices-by-contract/{contractAddress}/{duration}/{groupByPeriod}/
Get min/average/max price for a contract address.
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
chainID | string |
Path Parameter |
Required |
The chainID of the blockchain you want to query. 1 for Ethereum, 137 for Polygon. |
contractAddress | string |
Path Parameter |
Required |
The Contract address which will be queried. |
duration | string |
Path Parameter |
Required |
Possible values DURATION_UNSPECIFIED: Unspecified value. DURATION_1_DAY: 1 day. DURATION_7_DAYS: 7 days. DURATION_30_DAYS: 30 days. DURATION_365_DAYS: 365 days |
groupByPeriod | string |
Path Parameter |
Required |
Aggregation period for the analysis. Depending on the requested duration following minimal values are allowed: duration = 1 day, minimum allowed value is 15 minutes; duration = 7 days, minimum allowed value is 1 hour; duration = 30 days, minimum allowed value is 1 day; duration = 365 days, minimum allowed value is 1 day. GROUP_BY_PERIOD_UNSPECIFIED: Undefined value. GROUP_BY_PERIOD_15_MINUTES: 15 minutes. GROUP_BY_PERIOD_1_HOUR: 1 hour. GROUP_BY_PERIOD_1_DAY: 1 day. |
Response
{ "dataPoints": [ { "timestamp": "2022-05-03T00:00:00Z", "min": "25.12", "max": "111.123", "avg": "49.123" }, { "timestamp": "2022-05-04T00:00:00Z", "min": "24.12", "max": "110.123", "avg": "48.123" } ] }
NFTs By Owner
GET /analytics/{chainID}/nfts-by-owner-address/{ownerAddress}/
Get the list of NFTs owned by a given address.
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
chainID | string |
Path Parameter |
Required |
The chainID of the blockchain you want to query. 1 for Ethereum, 137 for Polygon. |
ownerAddress | string |
Path Parameter |
Required |
The Owner Address For Which We Filter/Get It's NTFs. |
Response
{ "tokens": [ { "contractAddress": "0x1ef8f94ad97dc4d7e64dd6b60b67d9944312508b", "tokenId": "1", "type": "TOKEN_TYPE_ERC721", "metadata": { "metadataUri": { "uri": "ipfs://QmSeRtXqthCBnTMKF9sW4jLeYmrWWuZUZESM7z4Qf9wYi3/1.json", "mimeType": "" }, "name": "", "description": "", "image": null }, "quantity": "1" }, { "contractAddress": "0x1ef8f94ad97dc4d7e64dd6b60b67d9944312508b", "tokenId": "2", "type": "TOKEN_TYPE_ERC721", "metadata": { "metadataUri": { "uri": "ipfs://QmSeRtXqthCBnTMKF9sW4jLeYmrWWuZUZESM7z4Qf9wYi3/2.json", "mimeType": "application/json" }, "name": "Niki Tis Samothrakis", "description": "Image From Louvre Museum", "image": { "uri": "https://polygon.cdn-proxy.mnemonichq.com/0x1ef8f94ad97dc4d7e64dd6b60b67d9944312508b/2", "uriOriginal": "ipfs://QmSLiToCEQWCNT5nmFkNtkTmF21zc5fPYv9vWRGGkZac1A/IMG_3178.jpg", "mimeType": "image/jpeg" } }, "quantity": "1" }, { "contractAddress": "0xabd0a793b75a49342d57173ce1c1b75bffb428b4", "tokenId": "2", "type": "TOKEN_TYPE_ERC721", "metadata": { "metadataUri": { "uri": "ipfs://QmeWahpdZfzD13gVJaTDwsoZqCFozub3EhdiKXtvHwRsnw/2.json", "mimeType": "" }, "name": "", "description": "", "image": null }, "quantity": "1" } ] }
NFTs by the Minter
GET /analytics/{chainID}/nfts-by-minter-address/{minterAddress}/
Get the list of NFTs minted by a given address.
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
chainID | string |
Path Parameter |
Required |
The chainID of the blockchain you want to query. 1 for Ethereum, 137 for Polygon. |
minterAddress | string |
Path Parameter |
Required |
The Minter's Address Of Which The NFT's We Get. |
Response
{ "tokens": [ { "contractAddress": "0x1ef8f94ad97dc4d7e64dd6b60b67d9944312508b", "tokenId": "1", "type": "TOKEN_TYPE_ERC721", "metadata": { "metadataUri": { "uri": "ipfs://QmSeRtXqthCBnTMKF9sW4jLeYmrWWuZUZESM7z4Qf9wYi3/1.json", "mimeType": "" }, "name": "", "description": "", "image": null }, "mintEvent": { "txHash": "0xe4b0ab3fdc3cf70725e4e2159424ce9ea9b02902eb9c4a85d0a82d93cab23fd8", "logIndex": "103", "blockTimestamp": "2022-11-30T09:16:03Z" } }, { "contractAddress": "0x1ef8f94ad97dc4d7e64dd6b60b67d9944312508b", "tokenId": "2", "type": "TOKEN_TYPE_ERC721", "metadata": { "metadataUri": { "uri": "ipfs://QmSeRtXqthCBnTMKF9sW4jLeYmrWWuZUZESM7z4Qf9wYi3/2.json", "mimeType": "application/json" }, "name": "Niki Tis Samothrakis", "description": "Image From Louvre Museum", "image": { "uri": "https://polygon.cdn-proxy.mnemonichq.com/0x1ef8f94ad97dc4d7e64dd6b60b67d9944312508b/2", "uriOriginal": "ipfs://QmSLiToCEQWCNT5nmFkNtkTmF21zc5fPYv9vWRGGkZac1A/IMG_3178.jpg", "mimeType": "image/jpeg" } }, "mintEvent": { "txHash": "0xe4b0ab3fdc3cf70725e4e2159424ce9ea9b02902eb9c4a85d0a82d93cab23fd8", "logIndex": "104", "blockTimestamp": "2022-11-30T09:16:03Z" } }, { "contractAddress": "0xabd0a793b75a49342d57173ce1c1b75bffb428b4", "tokenId": "1", "type": "TOKEN_TYPE_ERC721", "metadata": { "metadataUri": { "uri": "ipfs://QmeWahpdZfzD13gVJaTDwsoZqCFozub3EhdiKXtvHwRsnw/1.json", "mimeType": "" }, "name": "", "description": "", "image": null }, "mintEvent": { "txHash": "0xc2e025ad04cf0593a1eb2151657cd427eb824d269621e87dce9ac8d75fc74ca5", "logIndex": "98", "blockTimestamp": "2022-11-30T09:44:05Z" } }, { "contractAddress": "0xabd0a793b75a49342d57173ce1c1b75bffb428b4", "tokenId": "2", "type": "TOKEN_TYPE_ERC721", "metadata": { "metadataUri": { "uri": "ipfs://QmeWahpdZfzD13gVJaTDwsoZqCFozub3EhdiKXtvHwRsnw/2.json", "mimeType": "" }, "name": "", "description": "", "image": null }, "mintEvent": { "txHash": "0xd51b7e1fb0c1b021f86b2e61c75f82fd9159a64ce50f3e131422e5facbd43d72", "logIndex": "359", "blockTimestamp": "2022-11-30T10:04:13Z" } } ] }
NFTs by Wallet
GET /analytics/{chainID}/nfts-by-wallet-address/{walletAddress}/
Get list of the NFTs owned by the specified wallet.
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
chainID | string |
Path Parameter |
Required |
The chainID of the blockchain you want to query. 1 for Ethereum, 137 for Polygon. |
walletAddress | string |
Path Parameter |
Required |
Filter by wallet address (or ENS name). |
Response
{ "tokens": [ { "contractAddress": "0x1ef8f94ad97dc4d7e64dd6b60b67d9944312508b", "tokenId": "1", "metadata": { "metadataUri": { "uri": "ipfs://QmSeRtXqthCBnTMKF9sW4jLeYmrWWuZUZESM7z4Qf9wYi3/1.json", "mimeType": "" }, "name": "", "description": "", "image": null }, "quantity": "1", "spam": false }, { "contractAddress": "0x1ef8f94ad97dc4d7e64dd6b60b67d9944312508b", "tokenId": "2", "metadata": { "metadataUri": { "uri": "ipfs://QmSeRtXqthCBnTMKF9sW4jLeYmrWWuZUZESM7z4Qf9wYi3/2.json", "mimeType": "application/json" }, "name": "Niki Tis Samothrakis", "description": "Image From Louvre Museum", "image": { "uri": "https://polygon.cdn-proxy.mnemonichq.com/0x1ef8f94ad97dc4d7e64dd6b60b67d9944312508b/2", "uriOriginal": "ipfs://QmSLiToCEQWCNT5nmFkNtkTmF21zc5fPYv9vWRGGkZac1A/IMG_3178.jpg", "mimeType": "image/jpeg" } }, "quantity": "1", "spam": false }, { "contractAddress": "0xabd0a793b75a49342d57173ce1c1b75bffb428b4", "tokenId": "2", "metadata": { "metadataUri": { "uri": "ipfs://QmeWahpdZfzD13gVJaTDwsoZqCFozub3EhdiKXtvHwRsnw/2.json", "mimeType": "" }, "name": "", "description": "", "image": null }, "quantity": "1", "spam": false } ] }
NFT Transfers
GET /analytics/{chainID}/nft-tranfers/{contractAddress}/{tokenId}/
Get list of the NFT transfers by various criteria.
Request
Parameter | Type | Position | # | Description |
---|---|---|---|---|
Authorization | string |
Header |
Required |
Should be of the form: 'Token YOUR_API_KEY'. |
chainID | string |
Path Parameter |
Required |
The chainID of the blockchain you want to query. 1 for Ethereum, 137 for Polygon. |
contractAddress | string |
Path Parameter |
Required |
Filter by NFT contract address. |
tokenId | string |
Path Parameter |
Required |
Filter by NFT Token ID. |
Response
{ "nftTransfers": [ { "blockchainEvent": { "txHash": "0xc2e025ad04cf0593a1eb2151657cd427eb824d269621e87dce9ac8d75fc74ca5", "logIndex": "98", "seqIndex": "0", "blockNumber": "36248220", "blockTimestamp": "2022-11-30T09:44:05Z" }, "contractAddress": "0xabd0a793b75a49342d57173ce1c1b75bffb428b4", "tokenId": "1", "tokenType": "TOKEN_TYPE_ERC721", "transferType": "TRANSFER_TYPE_MINT", "quantity": "1", "sender": { "address": "0x0000000000000000000000000000000000000000", "type": "TYPE_OWNER" }, "senderReceived": { "totalMatic": "0", "totalUsd": "0", "maticTransfersTotal": "0", "erc20TransfersTotal": "0", "attributedBy": "ATTRIBUTED_BY_NO_PAYMENTS", "erc20Totals": [] }, "recipient": { "address": "0xc4b4d434d4b610a93cf1a3a228b6c3a25ff250ec", "type": "TYPE_OWNER" }, "recipientPaid": { "totalMatic": "0", "totalUsd": "0", "maticTransfersTotal": "0", "erc20TransfersTotal": "0", "attributedBy": "ATTRIBUTED_BY_RECIPIENT_NO_PAYMENT", "erc20Totals": [] }, "labels": [ "LABEL_MINT" ] }, { "blockchainEvent": { "txHash": "0x4cace21da0041dac05c7dc2d1a11afb7064c9ee9b340c57a5ae0dc5d6dc4cf75", "logIndex": "226", "seqIndex": "0", "blockNumber": "36248660", "blockTimestamp": "2022-11-30T09:59:13Z" }, "contractAddress": "0xabd0a793b75a49342d57173ce1c1b75bffb428b4", "tokenId": "1", "tokenType": "TOKEN_TYPE_ERC721", "transferType": "TRANSFER_TYPE_REGULAR", "quantity": "1", "sender": { "address": "0xc4b4d434d4b610a93cf1a3a228b6c3a25ff250ec", "type": "TYPE_OWNER" }, "senderReceived": { "totalMatic": "0.0875", "totalUsd": "0.0761382449821196525", "maticTransfersTotal": "0.0875", "erc20TransfersTotal": "0", "attributedBy": "ATTRIBUTED_BY_SINGLE_TRANSFER", "erc20Totals": [] }, "recipient": { "address": "0xf0cd764ac9d6648c33a44be69cc23137bdfa6115", "type": "TYPE_OWNER" }, "recipientPaid": { "totalMatic": "0.1", "totalUsd": "0.08701513712242246", "maticTransfersTotal": "0.1", "erc20TransfersTotal": "0", "attributedBy": "ATTRIBUTED_BY_SINGLE_TRANSFER", "erc20Totals": [] }, "labels": [ "LABEL_SALE", "LABEL_MARKETPLACE_OPENSEA" ] } ] }