NFTs on Provenance
What is an NFT?
NFT stands for “Non-Fungible Token” and is used in blockchain ecosystems to represent a unique (non-fungible) digital asset (token) whose ownership is registered and tracked on a blockchain.
Provenance NFTs are typically financial assets, such as loans or funds. However, the type of asset on Provenance is not restricted, allowing for innovation in the financial services industry.
Putting an NFT on the Provenance Blockchain
When an asset is “minted” (registered) on the Provenance Blockchain, a data structure called a scope is created to contain the NFT metadata. The data for the asset, which frequently contains sensitive information, is stored off-chain in an Encrypted Object Store. The on-chain scope metadata contains the ownership information of the NFT and can be pooled or tokenized using the marker module.
Figure Tech NFT Onboarding API
Figure Tech provides an easy way to onboard NFTs to Provenance using a simple API connected to your Provenance Wallet, which provides both your blockchain proof-of-identity (through Public-Key Cryptography) and funds to pay the Hash-based gas fee for the NFT minting transaction.
Anatomy of an NFT
On the Provenance Blockchain, data structures are encoded as Google Protocol Buffers. The onboarding API consumes a generic Asset
protobuf, which can contain any type of NFT or digital asset. The components parts of the Asset
are:
id | An unique identifier in the UUID format |
type | A broadly-generic “type” of the asset, such as “LOAN”, “FUND”, or “TITLE”. This field is typically used to identify the type of asset to Provenance-based applications. |
description | A brief description of the asset |
key-value map | A dictionary of string-value pairs, mapping a field name to its data value. The data value is encoded as a protobuf Any, allowing for any type of data structure. |
Asset proto definition:
syntax = "proto3";
package tech.figure.asset;
import "google/protobuf/any.proto";
message Asset {
string id = 1; // Required UUID identifier for this asset
string type = 2; // Optional user-defined type (e.g. LOAN, ART, FUND, SHARE CLASS)
string description = 3; // Optional user-defined description, title, name, etc. for display
map<string, google.protobuf.Any> kv = 4; // Key-value store of asset data
}
The NFT Onboarding API consumes protobufs serialized to JSON format. Note in particular that the Any
protobuf JSON representation consists of a typeUrl
followed by the normal JSON representation of the data proto Message
.
Example of a Loan Asset (truncated):
{
"id": "c6978d46-3c3e-4175-a0d2-8f8ce47e8bb6",
"type": "LOAN",
"description": "PERSONAL_LOAN LOAN-1234",
"kv": {
"loan": {
"typeUrl": "type.googleapis.com/tech.figure.asset.loan.Loan",
"id": "c6978d46-3c3e-4175-a0d2-8f8ce47e8bb6",
"meta": {
"loanNumber": "LOAN-1234",
"loanType": "PERSONAL_LOAN",
"loanPurpose": "DEBT CONSOLIDATION",
"originatorName": "VDUB LOAN CO"
}
}
}
}
How to “Onboard” an NFT
The Figure Tech Asset Onboarding API performs a two-step process to onboard (mint) an NFT on Provenance. First, the API uses the public key from your Provenance Wallet to encrypt the Asset
proto and load it into an Encrypted Object Store (EOS). This process also calculates the unique hash (checksum) of the object, which becomes the definitive proof of data integrity on the blockchain. Second, the API constructs a scope record for the Asset, and returns this metadata object to the Provenance Wallet for signing and submission to the blockchain.
Try It Out
You can try out minting your own NFT on Provenance by dropping a file containing your NFT onto our upload page. (Your own original generative art, perhaps?)
First, you’ll need to connect your Provenance Wallet and make sure it has sufficient Hash to cover the minting gas fee. (Instructions) We’ll construct an Asset
for you,
store it in the Figure Tech EOS, and prepare the scope record with you as the owner of this unique asset ready for minting on the blockchain. When the scope is ready,
the Provenance Wallet window will pop-up asking you to digitally sign the transaction. When the transaction has successfully been included in a block on-chain,
you’ll be the proud owner of a new Provenance NFT.
Try it out Here!

What Next?
- Once your new NFT is recorded on the Provenance Blockchain, follow the link to view details about the minting transaction in the Provenance Explorer.
- Sell, pool, or tokenize your NFT in the Figure Tech Asset Manager.
- Continue on to Developer Documentation for the Asset Onboarding API, or jump directly to the Swagger UI.
- Learn more about Provenance Blockchain at https://docs.provenance.io/