Skip to main content

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:

idAn unique identifier in the UUID format
typeA 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.
descriptionA brief description of the asset
key-value mapA 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": "",
      "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!

Drag and Drop

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