NFT Testnet Assets

Get up and running quickly with our NFT API.

NFT - Testnet Assets

When a user creates a new company or a new user signs up with Venly Developer Portal, an NFT contract (Memberships example) is automatically created for them on the Polygon testnet chain. Additionally, three token-types are also created under the NFT contract namely:

  1. Brownze Membership
  2. Silver Membership
  3. Gold Membership

Each token type has predefined properties that resemble membership tiers. Depending on the tier, each membership token type has different properties associated with it: Bronze, Silver, and Gold.

You can immediately use the token-types to mint NFTs to wallet/email addresses.

📘

If you mint an NFT to a user's email and they don't have a wallet, they will receive an onboarding link. Once they complete the onboarding process and create their wallet, the NFT will automatically appear in their wallet.

NFT Testnet Assets

NFT Testnet Assets

Authentication

📘

Learn more on how to authenticate with API's.

How to access your assets

Follow this short API tutorial, which walks you through all the basic API calls required to access your NFT contract and token types. We also explain how to mint NFTs using APIs.

1. Retrieve your NFT contract

Call the following endpoint to retrieve your NFT contract. This endpoint retrieves all of your NFT contracts, but as a new user, you will only have one contract, the testnet NFT contract.

Request Endpoint: reference

GET /api/v3/erc1155/contracts

Response Body:

📘

Save the following params for later use:

  • result.address which is the contract address.
{
    "success": true,
    "result": [
        {
            "chain": "MATIC",
            "address": "0x506c9f3c7cc72672c9f8f6c3675d16cd89192fea",
            "contractUri": "https://metadata-qa.venly.io/metadata/contracts/16707",
            "name": "Memberships example",
            "symbol": "MEEX",
            "image": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Contract.png",
            "onChainStatus": "SUCCEEDED"
        }
    ]
}

2. Retrieve token-types

Now you should have the contract address of your NFT contract. We will retrieve the token-types under the Memberships example NFT contract.

Call the following endpoint to retrieve all token-types for your specific NFT contract:

Request Endpoint: reference

GET /api/v3/erc1155/contracts/{chain}/{contractAddress}/token-types
ParameterParam TypeDescription
chainPathThe blockchain of the NFT contract, in this case it is MATIC
contractAddressPathThe value of the contract address that you copied from the previous API call.

Example API Call:

GET /api/v3/erc1155/contracts/MATIC/0x506c9f3c7cc72672c9f8f6c3675d16cd89192fea/token-types

Response Body:

📘

Save the following params for later use:

  • result.tokenTypeId which is the ID of the token-type and will be used when minting NFTs.
  • Each token-type has a unique tokenTypeId
{
    "success": true,
    "result": [
        {
            "chain": "MATIC",
            "contractAddress": "0x506c9f3c7cc72672c9f8f6c3675d16cd89192fea",
            "tokenTypeId": 1,
            "name": "Bronze Membership",
            "image": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Bronze.png",
            "imagePreview": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Bronze.png",
            "imageThumbnail": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Bronze.png",
            "fungible": false,
            "onChainStatus": "SUCCEEDED",
            "supply": {
                "current": 0,
                "pending": 0,
                "max": 1000000000
            }
        },
        {
            "chain": "MATIC",
            "contractAddress": "0x506c9f3c7cc72672c9f8f6c3675d16cd89192fea",
            "tokenTypeId": 2,
            "name": "Silver Membership",
            "image": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Silver.png",
            "imagePreview": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Silver.png",
            "imageThumbnail": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Silver.png",
            "fungible": false,
            "onChainStatus": "SUCCEEDED",
            "supply": {
                "current": 0,
                "pending": 0,
                "max": 1000000000
            }
        },
        {
            "chain": "MATIC",
            "contractAddress": "0x506c9f3c7cc72672c9f8f6c3675d16cd89192fea",
            "tokenTypeId": 3,
            "name": "Gold Membership",
            "image": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Gold.png",
            "imagePreview": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Gold.png",
            "imageThumbnail": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Gold.png",
            "fungible": false,
            "onChainStatus": "SUCCEEDED",
            "supply": {
                "current": 0,
                "pending": 0,
                "max": 1000000000
            }
        }
    ]
}

3. Mint NFTs

Now you should have your contract address and the tokenTypeId of one of the token-types. Using these values, we can mint NFTs. We will mint the NFT to the testnet Polygon wallet in this example.

📘

Learn how to retrieve your testnet Polygon wallet address.

Call the following endpoint mint NFTs:

Request Endpoint: reference

POST /api/v3/erc1155/tokens/mints

Request Body:

ParameterParam TypeDescriptionData TypeMandatory
contractAddressBodyThe value of the contract address that you copied from the first API call.String
chainBodyThe blockchain of the contract, in this case it is MATICString
tokenTypeIdBodyThe ID of the token-type to mint NFTs. In our API call we got 1 for Bronze, 2 for Silver, and 3 for Gold.Integer
destinationsBodyAn array of objects includes the wallet address or email address where the token will be sent and the number of tokens to send.Array[objects]
destinations.addressBodyWallet address or email address where minted tokens will be sentString
destinations.amountBodyAmount of tokens to be minted and sent to specified addressInteger
{
    "contractAddress": "0x506c9f3c7cc72672c9f8f6c3675d16cd89192fea",
    "chain": "MATIC",
    "tokenTypeId": "3",
    "destinations": [
        {
            "address": "0x24743eC0cB7f56Ee0Acca527D7945e17559B5d6B",
            "amount": "1"
        }
    ]
}

📘

You can define multiple objects within the destinations array to mint multiple NFTs to multiple wallet/email addresses.

Response Body:

📘

Save the following params for later use:

  • result.mints.id which is the mintId and is used to track the status of the mint request.
{
    "success": true,
    "result": {
        "mints": [
            {
                "id": "82b24d61-0e0e-4afb-bbdf-e69c754df75d",
                "createdOn": "2025-03-13T17:09:40.084509687",
                "status": "PENDING",
                "destination": {
                    "address": "0x24743ec0cb7f56ee0acca527d7945e17559b5d6b",
                    "amount": 1
                }
            }
        ],
        "metadata": {
            "name": "Gold Membership",
            "description": "[Dummy] The highest tier, offering exclusive privileges such as VIP access, priority support, special rewards, and enhanced perks. Gold members may receive early access to new features, private events, or exclusive content. Ideal for those seeking the full premium experience.",
            "image": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Gold.png",
            "imagePreview": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Gold.png",
            "imageThumbnail": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Gold.png",
            "externalUrl": "https://www.venly.io",
            "external_url": "https://www.venly.io",
            "animationUrls": [],
            "attributes": [
                {
                    "type": "property",
                    "name": "Access level",
                    "value": "Full",
                    "traitType": "Access level",
                    "trait_type": "Access level"
                },
                {
                    "type": "property",
                    "name": "Support priority",
                    "value": "VIP",
                    "traitType": "Support priority",
                    "trait_type": "Support priority"
                },
                {
                    "type": "system",
                    "name": "tokenTypeId",
                    "value": "3",
                    "traitType": "Token Type ID",
                    "trait_type": "Token Type ID"
                },
                {
                    "type": "property",
                    "name": "maxSupply",
                    "value": "1000000000",
                    "traitType": "Max Supply",
                    "trait_type": "Max Supply"
                }
            ],
            "contract": {
                "address": "0x506c9f3c7cc72672c9f8f6c3675d16cd89192fea",
                "name": "Memberships example",
                "symbol": "MEEX",
                "image": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Contract.png",
                "imageUrl": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Contract.png",
                "image_url": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Contract.png",
                "description": "[Dummy contract] The Memberships NFT Smart Contract is a blockchain-based system that allows users to mint, own, and trade exclusive Gold, Silver, and Bronze membership NFTs. Each membership tier grants unique benefits, creating a decentralized and verifiable way to manage access to exclusive services, communities, or events.",
                "externalLink": "https://www.venly.io",
                "external_link": "https://www.venly.io",
                "externalUrl": "https://www.venly.io",
                "external_url": "https://www.venly.io",
                "media": [],
                "type": "ERC_1155"
            },
            "fungible": false
        }
    }
}

4. Check status of the mint request

Call the endpoint to check the on-chain status of your mint request.

Request Endpoint: reference

GET /api/v3/erc1155/tokens/mints/{mintId}
ParameterParam TypeDescription
mintIdPathThe mintId that you got from the response body of the previous mint call as result.mints.id

Example API Call:

GET /api/v3/erc1155/tokens/mints/82b24d61-0e0e-4afb-bbdf-e69c754df75d

Response Body:

📘

In the response, you can see the result.status is SUCCEEDED, meaning the NFT was successfully minted and sent to the wallet address.

{
    "success": true,
    "result": {
        "id": "82b24d61-0e0e-4afb-bbdf-e69c754df75d",
        "chain": "MATIC",
        "contractAddress": "0x506c9f3c7cc72672c9f8f6c3675d16cd89192fea",
        "tokenTypeId": 3,
        "tokenId": 4,
        "createdOn": "2025-03-13T17:09:40.08451",
        "status": "SUCCEEDED",
        "transactionHash": "0x3ab9325f32448513c1dbc9fed072b70527a83c1cdce5ff2abbed3aa75a479e08",
        "destination": {
            "address": "0x24743ec0cb7f56ee0acca527d7945e17559b5d6b",
            "amount": 1
        },
        "metadata": {
            "name": "Gold Membership",
            "description": "[Dummy] The highest tier, offering exclusive privileges such as VIP access, priority support, special rewards, and enhanced perks. Gold members may receive early access to new features, private events, or exclusive content. Ideal for those seeking the full premium experience.",
            "image": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Gold.png",
            "imagePreview": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Gold.png",
            "imageThumbnail": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Gold.png",
            "externalUrl": "https://www.venly.io",
            "external_url": "https://www.venly.io",
            "animationUrls": [],
            "attributes": [
                {
                    "type": "property",
                    "name": "Access level",
                    "value": "Full",
                    "traitType": "Access level",
                    "trait_type": "Access level"
                },
                {
                    "type": "property",
                    "name": "Support priority",
                    "value": "VIP",
                    "traitType": "Support priority",
                    "trait_type": "Support priority"
                },
                {
                    "type": "system",
                    "name": "tokenTypeId",
                    "value": "3",
                    "traitType": "Token Type ID",
                    "trait_type": "Token Type ID"
                },
                {
                    "type": "property",
                    "name": "maxSupply",
                    "value": "1000000000",
                    "traitType": "Max Supply",
                    "trait_type": "Max Supply"
                },
                {
                    "type": "property",
                    "name": "mintNumber",
                    "value": "1",
                    "traitType": "Mint Number",
                    "trait_type": "Mint Number"
                }
            ],
            "contract": {
                "address": "0x506c9f3c7cc72672c9f8f6c3675d16cd89192fea",
                "name": "Memberships example",
                "symbol": "MEEX",
                "image": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Contract.png",
                "imageUrl": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Contract.png",
                "image_url": "https://storage-staging.venly.io/applications/0f3c2b67-b141-4db5-86db-a51e8f4331a7/Membership_Contract.png",
                "description": "[Dummy contract] The Memberships NFT Smart Contract is a blockchain-based system that allows users to mint, own, and trade exclusive Gold, Silver, and Bronze membership NFTs. Each membership tier grants unique benefits, creating a decentralized and verifiable way to manage access to exclusive services, communities, or events.",
                "externalLink": "https://www.venly.io",
                "external_link": "https://www.venly.io",
                "externalUrl": "https://www.venly.io",
                "external_url": "https://www.venly.io",
                "media": [],
                "type": "ERC_1155"
            },
            "fungible": false
        }
    }
}

Viewing Minted NFT on Portal

In this example, we minted the NFT to the Polygon testnet wallet. From the Portal, when we go to Wallet API, and click on the Polygon wallet and then go to the NFTs tab, we can see our minted NFT!

Next Steps

👍

Following are a few basic guides that you should try next to experiment with the NFT API: