DECENTRALIZED METADATA REGISTRY

Decentralized metadata registry techniques are described. In one or more examples, registration data is received from an originating device at a metadata registry system. The registration data identifies a nonfungible token (NFT), metadata describing one or more characteristics associated with entities that receive the nonfungible token, and access rules to control access to the metadata. The nonfungible token, the metadata, and the access rules are registered as part of a metadata registry. An access request is then received from an originating device. The access request identifies the nonfungible token and requests access to metadata associated with the nonfungible token. A determination is made by the metadata registry system that access to the metadata is permitted based on the access rule and access to the metadata by the originating device is permitted.

BACKGROUND

Data sharing between service provider systems is confronted with a variety of technical challenges caused by an amount of data being shared, nature of the data, and how the data is managed by respective service provider systems. A service provider system, for example, may maintain data across a multitude of siloed information systems using proprietary techniques to represent “what” is described by the data and relationships of that data to each other.

Conventional intermediary techniques that have been designed to assist in data sharing, as a result, often introduce errors and uncertainty when confronted with these challenges, especially for instances dependent on system-of-record levels of accuracy. Further, conventional techniques often fail to keep the data current due to these technical challenges, thereby resulting in “stale” data that fails in support of its intended purpose. Consequently, conventional data sharing techniques result in inaccuracies, are computationally inefficient, and result in increased power consumption to implement.

SUMMARY

Decentralized metadata registry techniques are described. These techniques are configurable to leverage a blockchain network and cryptographic tokens (e.g., fungible and nonfungible tokens) to assist data sharing between entities, e.g., client devices, service provider systems, and so forth. In one or more examples, registration data is received from an originating device at a metadata registry system. The registration data identifies a nonfungible token (NFT), metadata describing one or more characteristics associated with entities that receive the nonfungible token, and access rules to control access to the metadata. The nonfungible token, the metadata, and the access rules are registered as part of a metadata registry. An access request is then received from an originating device. The access request identifies the nonfungible token and requests access to metadata associated with the nonfungible token. A determination is made by the metadata registry system that access to the metadata is permitted based on the access rule and access to the metadata by the originating device is permitted.

DETAILED DESCRIPTION

Overview

Data sharing between service provider systems, client devices, and other entities is confronted by a variety of technical challenges. Examples of these challenges include an amount of data to be maintained and shared, how to control access to the data, proprietary techniques often encountered in the real world that are used to manage data storage, and so forth. Often, these challenges result in data inaccuracies and “stale” data that is no longer suitable for its intended purpose.

Accordingly, decentralized metadata registry techniques are described. In one or more examples, these techniques are configured to leverage a blockchain network and cryptographic tokens to assist data sharing between entities, e.g., client devices, service provider systems, and so forth. By doing so, the techniques described herein address and overcome technical challenges confronted by conventional data sharing systems through use of decentralization to permit increased efficiency (e.g., in real time) in data sharing with increased accuracy.

A service provider system, for instance, causes a nonfungible token (NFT), as an example of a cryptographic token, to be minted to a blockchain network. The nonfungible token is a type of digital asset that represents ownership and/or proof of authenticity using blockchain technology. Each nonfungible token is configurable to store data imparting unique properties that are not interchangeable with other cryptographic tokens, and thus is nonfungible. However, it is noted that a plurality of nonfungible tokens may be minted to implement a common functionality, and as such are fungible with respect to each other. Use of fungible tokens is also contemplated (e.g., Bitcoin®, Ethereum®, etc.) and as such although the following discussion includes examples of cryptographic tokens as NFTs use of other types of fungible tokens are also contemplated.

The nonfungible token is configurable to represent a variety of types of data, such as entitlements granted by the service provider system to a holder of the token, to control access to digital content made available via one or more digital services, memorialize occurrence of an event (e.g., an entity holding the token participated at the event), membership in a group, purchase made by an entity, and so forth. NFTs, for instance, are usable to represent entitlements, ownership, and so forth such as tokens granting access to health care, insurance, or other policy holder benefits, entitlements to warranty and customer support acquired with a product purchase, tokens that serve as verifiable credentials (a university degree, license to drive), and so forth. The service provider system, for example, is configurable to generate data to initiate execution of a smart contract by a distributed state machine implemented by the blockchain network. Execution of the smart contract is then usable to cause the nonfungible token to be minted by the blockchain network.

The data generated above, for instance, is “signed” by a private key associated with a blockchain account of the service provider system to confirm authenticity of the data as part of minting the nonfungible token. Other operations may also be involved as part of minting the nonfungible token, e.g., to approve “gas.” Accordingly, the service provider system generates data representative of “what” is being represented by the nonfungible token. The data, as minted by nodes of a blockchain network, is incorporated within a block of the blockchain. As a result, the nonfungible token is recorded in an irreversible and tamper-proof manner as part of the blockchain ledger and includes the data specified by the service provider system.

Although blockchains, and more particularly blockchain ledgers, are often open for access by the public, minimal data is typically recorded as part of the blockchain to reduce cost and increase efficiency. As a result, a nonfungible token minted as part of the blockchain may be limited by an amount of data stored as part of the token, e.g., due to a cost incurred by an entity to mint the nonfungible token on the blockchain, limitations of the blockchain itself, and so forth.

Accordingly, the techniques described herein are configured to implement a decentralized metadata registry that assists data sharing between entities using the nonfungible tokens. Consider an example in which minting of a nonfungible token is initiated by a service provider system, such as to permit access to digital services of the service provider system via a network. The access, for instance, is provided as part of entitlements given by the service provider system and acquired under a smart contract, such as product rights obtained in a retail transaction, loyalty member benefits, access to digital services, representation of an active membership, used for access to a live event, confirm attendance at an event, and so forth.

The service provider system, after the minting of the nonfungible token in this example, generates registration data to register the nonfungible token in a metadata registry maintained by a metadata registry system, e.g., by a same or different service provider system. The metadata registry is configured to maintain metadata associated with an identification of the nonfungible token. The metadata is configured to include information that further describes an underlying purpose of the nonfungible token, characteristics of entities that are to receive the nonfungible token, and so forth. The metadata, for example, is configurable to describe entitlements granted to the entities that possess the nonfungible token, an ability to access digital content via a network, a discount for a product or service, participation by a respective entity in an associated event, and so forth.

Consequently, the metadata is configurable to expand beyond what is described internally by the nonfungible token on the blockchain to also describe characteristics associated with the minting of the nonfungible token, recipients of the nonfungible token, and so forth. The metadata, for instance, is usable to define characteristics of a population of entities that have received the nonfungible tokens.

The metadata registry is also configurable to incorporate search functionality to leverage use of the metadata and associated nonfungible tokens. The search functionality, for instance, is usable to search metadata to locate corresponding nonfungible tokens. As a result, the metadata is usable to describe “what” is represented by corresponding tokens, and thus is searchable to locate corresponding entities having the nonfungible tokens via a blockchain network. The search functionality, for example, is usable to locate a population of entities having nonfungible tokens based on characteristics defined by metadata associated with the nonfungible tokens in the metadata registry. As a result, the metadata registry provides a mechanism to share data that describes entity populations between service provider systems or other entities without encountering delays through use of a decentralized system as implemented using nonfungible tokens and a blockchain network. Further discussion of these and other examples is included in the following sections and shown in corresponding figures.

In the following discussion, an example blockchain environment is described as part of a digital environment that employs the metadata registry techniques described herein. Example procedures are also described that are performable in the example environment as well as other environments. Consequently, performance of the example procedures is not limited to the example environment and the example environment is not limited to performance of the example procedures.

Decentralized Metadata Registry Environment

FIG.1is an illustration of a decentralized metadata registry environment100in an example implementation that is operable to employ techniques described herein. The decentralized metadata registry environment100includes a service provider system102, a blockchain network104, a plurality of client devices (an example of which is illustrated as client device106), and a metadata registry system108that are communicatively coupled, one to another, via a network110such as the Internet.

Computing devices that implement the decentralized metadata registry environment100are configurable in a variety of ways. A computing device, for instance, is configurable as a desktop computer, a laptop computer, a mobile device (e.g., assuming a handheld configuration such as a tablet or mobile phone), IoT device, a wearable device, AR/VR device, a server, and so forth. Thus, a computing device ranges from full resource devices with substantial memory and processor resources to low-resource devices with limited memory and/or processing resources. Additionally, although in instances in the following discussion reference is made to a computing device in the singular, a computing device is also representative of a plurality of different devices, such as multiple servers of a server farm utilized to perform operations “over the cloud” as further described in relation toFIG.10.

The service provider system102includes a digital service manager module112that is configured to implement at least one digital service114. The digital service114is executable by the service provider system102(e.g., using a processing device and computer-readable storage medium) to implement functionality that is deliverable via the network110, e.g., to the client device106. Examples of a digital service114include control of access to digital content (e.g., via a streaming digital service), a social media service, software as a service, digital content creation and editing services, digital content sharing service (e.g., a stock digital content service), a generative artificial intelligence (AI) content creation service, and so forth.

The client device106, for instance, executes an application116(e.g., a browser or network enabled application) having network functionality to access the digital service114via the network110. The digital service114is executable by the service provider system102(e.g., via one or more servers) and/or locally through download and execution locally at the client device106.

The blockchain network104is implemented by a plurality of nodes, an example of which is illustrated as node118. Nodes are a runtime implemented using processing, memory, and network resources of respective computing devices that operate as the infrastructure of the blockchain. As part of this, the nodes118store, communicate, process, and manage data that makes up the blockchain. Nodes118are interconnected as illustrated inFIG.1to exchange data via the network110, e.g., as a peer-to-peer network in a distributed and decentralized manner.

The client device106is illustrated as including a digital wallet120, which is maintained in a storage device122at the client device106. The digital wallet120is configured to store private keys associated with a user's digital address and are used to prove ownership of the assets, sign transactions, and so forth. The digital wallet120is associated with a blockchain address as a decentralized identifier to identify the digital wallet120as part of the blockchain.

The digital wallet120is configured to maintain a nonfungible token, an example of which is illustrated as NFT124. As previously described, the NFT124is a type of digital asset, ownership of which is maintained using the blockchain network104. The NFT124is usable to include a variety of data in support of a variety of functionality. As previously described, however, an amount of data that is stored as part of the NFT124may be limited due to a variety of factors. Further, in some instances data may involve sensitive information that is not to be shared publicly.

Accordingly, the metadata registry system108includes a metadata management module126that is configured to implement a metadata registry128, which is illustrated as stored in a storage device130. The metadata registry128is configurable to implement a shared system-of-record (i.e., a primary source of truth) for metadata that expands on functionality made available via the NFT124. To do so, the metadata registry system108is configured to leverage blockchain ledgers, smart contracts, and nonfungible tokens of the blockchain network104, operation of which is further described in the following example and shown in a corresponding figure.

FIG.2is an illustration of a system200in an example implementation showing operation of a blockchain network104and a service provider system102ofFIG.1in greater detail as minting a nonfungible token. The node118is illustrated as implementing a blockchain202, which is maintained in a storage device204. The blockchain202is formed using a plurality of blocks206. The plurality of blocks206include respective block identifiers (IDs)208and transaction data210. Transaction data210of the blocks206includes batches of validated transactions that are hashed and encoded. Each block206includes a cryptographic hash of a prior block206in the blockchain202, thereby linking the blocks206to each other to form the blockchain202. As a result, the blocks206cannot be altered retroactively without altering each subsequent block206in the blockchain202and in this way protects against attacks by malicious parties.

In order to generate the blocks206for addition to the blockchain202, a node118is implemented as a “miner” to add a block of transactions to the blockchain202. The other nodes of the blockchain network104then check if the block of transactions is valid, and based on this, determine whether to accept or reject this data. If valid, the block of transactions is stored as transaction data210along with a block ID208for a respective block206, e.g., is stored “at the end” or “at the top” of the blockchain202along with a hash of a previous block in the chain. The nodes118then broadcast this transaction history via the network110for sharing with other nodes118. This broadcast acts to synchronize the blocks206of the blockchain202across the distributed architecture of the blockchain network104. Other types of nodes118are also included as part of the blockchain network104. In one such example, full nodes are nodes that store an entirety of the blockchain202, e.g., locally in computer-readable storage media of a respective storage device204. Other types of nodes are also employed to implement additional functionality to govern voting events, execution of protocol operations, rules enforcement, and so forth.

The blockchain network104implements a virtual machine212that is representative of a diverse range of functionality made possible by leveraging the blockchain202. In a first such example, the virtual machine212implements a distributed ledger214of blockchain accounts216and associated balances218of those blockchain accounts216. Distributed ledgers214support secure transfer of digital assets (e.g., tokens or coins of cryptocurrencies) between blockchain accounts216without management by a central authority through storage as part of the transaction data210of the blockchain202. Through synchronized and distributed access supported by the blockchain202, changes to balances218(e.g., a number of tokens) are visible to entities having access to the blockchain202. Techniques are also implemented to support management of the balances218across the blockchain accounts216, e.g., to enforce rules that a respective blockchain account216does not transfer more cryptographic tokens than are available based on a balance218specified for that account.

In another example, the virtual machine212implements a distributed state machine220that supports application222execution. The distributed state machine220is implemented along with the transaction data210within the blocks206of the blockchain202. By doing so, the blocks206describe block accounts216and balances218as described above for the distributed ledger214.

The transaction data210also supports a machine state, which can change from block to block of the blockchain202. In one example, the application222is executable as part of a “Turing-complete” decentralized virtual machine212that is distributed across the nodes118of the blockchain network104. As Turing-complete, the application222is computationally universal to perform computing device operations, e.g., logic or computing functions. Thus, the application222is executable by a processing system of a computing device as software that is storable in a computer-readable storage media of the nodes118to perform a variety of operations.

An example of an application222that is executable as part of the distributed state machine220is a smart contract224. A smart contract224is executable automatically and without user intervention (or with partial human interaction as inputs when desired) by the nodes118of the distributed state machine220. Execution of the smart contract224includes obtaining data from a specified data source (e.g., devices, APIs, and so forth that are accessible via the network110), and based on this data, initiating one or more operations based on conditions described in the smart contract224. In one example, the smart contract224is a type of blockchain account216that includes a balance218and initiates transactions based on conditions specified by the smart contract224, e.g., to support automated escrow and other functionalities. A variety of other examples are also contemplated that support implementation of any executable operation by a computing device using software.

Cryptocurrencies (e.g., coins of the cryptocurrency) are the native asset of the blockchain202, and tokens are further creatable “on top” of these blockchains. In an example of a token, the smart contract224implements a nonfungible token, e.g., NFT124. The NFT124is a digital asset that is provably unique and as such cannot be duplicated or divided. As such, the NFT124is not exchanged as having a same value as coins in cryptocurrency, but rather are digital assets having identifying information recorded as part of the smart contract224. This identifying information is immutably recorded on that token's blockchain202and thus ownership of the token is also recorded and tracked. A variety of information is storable as part of the digital content represented by the NFT124as previously described.

The service provider system102in the illustrated example includes a digital service manager module112implementing a digital service114as previously described. The service provider system102also includes a digital wallet226having an NFT initiation module228. The digital wallet226stores public and private cryptographic keys that are used to support interaction with the blockchain network104, and more particularly respective blockchain accounts216.

The public key supports transactions to an address of the blockchain account216derived from the public key, which are stored as part of the blockchain202to memorialize the transaction as part of transaction data210. In one example, an address of a blockchain account216is generated by first generating a private key, e.g., using a randomization technique. The corresponding public key is derived from the private key and the address of the blockchain account216is then derived from the public key, e.g., as an entirety of the public key or as a shortened version of the public key. The private key is used to “unlock” transactions that are “locked” by the public key and gain access to the blockchain account216, e.g., access to coins, tokens or other information maintained as part of the transaction.

In one example, a transaction is initiated between entities, e.g., client devices. Data of the transaction is encrypted using a public key. The transaction is then signed by a first client device using the private key which indicates that the transaction has not been modified, e.g., by encrypting the data being sent in the transaction using the private key. The transaction is then verifiable as authentic by using the public key included with the data. The nodes118use the accompanying public key to automatically verify authenticity that the transaction is signed using the private key. Transactions that fail authentication are rejected by the nodes118. Authentic transactions are used as part of transaction data210in minting blocks206by the nodes118that are added to the blockchain202, e.g., as part of the distributed ledger214. In this way, the virtual machine212of the blockchain network104supports a variety of functionality through use of the distributed ledger214, distributed state machine220, and/or other blockchain and cryptographic functionality.

The system200also includes a service provider system102implementing a digital service manager module112and digital service114. Digital services114involve electronic delivery of data and implementation of data functionality by computing devices to support a range of computing device operations. Digital services114, for instance, include creation, management, and dissemination of digital content via the network110, e.g., webpages, applications, digital images, digital audio, digital video, and so forth.

The service provider system102also includes an NFT initiation module228. Minting of an NFT124is initiated by the service provider system102by generating minting data230having a blockchain account ID232and NFT data234to be included as part of the NFT124. The NFT initiation module228, for instance, generates the NFT data234that describes one or more entitlements, user characteristics, and so forth and provides this data to the blockchain network104for minting as an NFT124as part of the blockchain202, ownership of which is associated with a blockchain account216. The NFT124, once minted, is configurable to support a variety of functionality, examples of which that include use in conjunction with a decentralized metadata registry are described in the following sections and shown in corresponding figures.

In general, functionality, features, and concepts described in relation to the examples above and below are employed in the context of the example procedures described in this section. Further, functionality, features, and concepts described in relation to different figures and examples in this document are interchangeable among one another and are not limited to implementation in the context of a particular figure or procedure. Moreover, blocks associated with different representative procedures and corresponding figures herein are applicable together and/or combinable in different ways. Thus, individual functionality, features, and concepts described in relation to different example environments, devices, components, figures, and procedures herein are usable in any suitable combinations and are not limited to the particular combinations represented by the enumerated examples in this description.

NFT Metadata Registration

The following discussion describes decentralized metadata registry techniques that are implementable utilizing the described systems and devices. Aspects of each of the procedures are implemented in hardware, firmware, software, or a combination thereof. The procedures are shown as a set of blocks that specify operations performable by hardware and are not necessarily limited to the orders shown for performing the operations by the respective blocks. Blocks of the procedures, for instance, specify operations programmable by hardware (e.g., processor, microprocessor, controller, firmware) as instructions thereby creating a special purpose machine for carrying out an algorithm as illustrated by the flow diagram. As a result, the instructions are storable on a computer-readable storage medium that causes the hardware to perform algorithm. In portions of the following discussion, reference will be made in parallel withFIG.5that depicts a flow diagram of a procedure500in an example implementation of registration of a nonfungible token and metadata as part of a metadata registry and access control to the metadata based on an access rule.

FIG.3depicts a system300in an example implementation of dissemination of a nonfungible token to a client device and registration of the nonfungible token as part of a metadata registry. The service provider system102(1) is an example of a service provider system102that minted and received the NFT124as described in relation toFIG.2. Accordingly, the service provider system102(1) includes a digital service manager module112(1) that implements a digital service114(1). The service provider system102(1) also includes a digital wallet226(1) that is configured to maintain the NFT124received from and minted by the blockchain network104as previously described in relation toFIG.2.

The NFT124is configurable to impart a variety of functionality in a variety of usage scenarios. The NFT124, for instance, is configurable to describe one or more characteristics associated with entities that receive the NFT124(e.g., participation in an associated event), entitlements granted to the entities that possess the NFT124(e.g., an ability to access digital content via a network, a discount for a product or service that is verifiable via a blockchain network), and so forth.

A service provider system120(1) initiates generation of the NFT124as described in relation toFIG.2, which is then stored in a digital wallet226(1) of the service provider system102(1). The service provider system then transacts with a client device106using a smart contract224, which results in depositing the NFT124in a digital wallet120of the client device106, e.g., which is located using a decentralized identifier302associated with the digital wallet120. The decentralized identifier302supports self-sovereign identity in which individuals have control the identity and corresponding personal data. The decentralized identifier302, for instance, is configurable as a uniform resource identifier (URI) that employ a distributed ledger214as part of the blockchain202as a globally unique identifier.

The NFT124is configurable to represent benefits and entitlements acquired under the smart contract224, e.g., product rights obtained in a retail transaction, loyalty member benefits, access to services and subscriptions, and so forth. Accordingly, in this example the NFT124is passed from the digital wallet226(1) of the service provider system102(1) to a digital wallet120of the client device106to provide these rights and entitlements.

The service provider system102(1) also includes a metadata generation module304that is configurable to generate registration data306for communication to the metadata registry system108. The registration data306includes an identifier of the NFT124(which is illustrated as NFT ID308), metadata310, and an access rule312to control access to the metadata310.

The registration data306, for instance, is configurable to include a smart contract ID, smart contract description, smart contract details, transaction prerequisites, consumer entitlements, and so forth. The transaction prerequisites define criteria used as a basis for acquiring the NFT124under the smart contract224, e.g., fee amount, linked or related tokens, contract terms, terms summary, and so forth. The consumer entitlements describe rights and benefits granted under the smart contract224using the NFT124.

The metadata310is configured to supplement an explanation of the NFT124as a way to “unlock” an underlying meaning of transactions and entitlements recorded by the NFT124on the blockchain202. The metadata310, for instance, is configurable to indicate an active membership in a loyalty program, grant access to an event (e.g., sporting event or concert), confirm presence at an event, and so forth. The metadata310may also include potentially sensitive information that is not desired to be shared publicly as part of the NFT124.

Accordingly, the metadata registry system108receives the registration data306from the service provider system102(1) (block502). The NFT124and the metadata310are then registered as part of the metadata registry128(block504). The metadata management module126, for instance, forms an entry in the metadata registry128that associates an NFT ID308corresponding to the NFT124with the metadata310. The metadata310as described above provides a description (e.g., via text, digital images, or other techniques) as a supplement to the NFT124.

The access rule312is set by the service provider system102(1) to control access provided by the metadata registry system108to the metadata310. In this way, the service provider system102(1) is given a degree of control as to “how” and “when” the metadata310is accessed as well as “who” is to be given that access as part of sharing the metadata310. Consequently, the service provider system102(1) is given control of a specific set of audience data that may be shared with third parties, which can include blockchain transactions as well as other sources of audience data.

FIG.4depicts a system400in an example implementation of access to metadata associated with a nonfungible token as part of a metadata registry. Continuing with the previous example, another service provider system102(N) is illustrated having a digital wallet226(N) and a digital service manager module112(N) implementing a digital service114(N). The service provider system102(N), for instance, wishes to identify a particular population of entities based on nonfungible tokens received by those entities.

Accordingly, an access request402is received at a metadata access interface404of the metadata management module126. The access request402includes an identifier of an NFT124(block506), e.g., includes the NFT ID308. A determination is then made by the metadata access interface404that access to the metadata is permitted based on an access rule312(block508). The access rule312, for instance, is configurable to identify a particular entity that is permitted access (e.g., using a decentralized identifier), characteristics of entities that are permitted access (e.g., group membership, demographics), and so forth. Accordingly, an access response406is generated that is communicated back to the service provider system102(N) via the network110indicating that access to the metadata is permitted (block510), e.g., to an originating device of the access request402. Access to the metadata310is usable to support a variety of functionality, further discussion of which is included with respect toFIGS.6-9in the following description.

The metadata management module126also includes a reporting module408that is configured to generate a report410describing access and access attempts made to the metadata310. The report410in the illustrated example is transmitted to a source of the metadata, e.g., the service provider system102(1) ofFIG.1.

The reporting module408, for instance, monitors access to the metadata310and identification of nonfungible tokens of the metadata registry128(block512). The report410is then generated based on the monitored access (block514), e.g., to describe which entities have requested access, have been permitted or denied access, which items of metadata310have been accessed, and so on. In this way, the service provider system102(1) that originated the metadata310is provided insight into how the metadata310is accessed via the metadata registry system108. The metadata310and corresponding metadata registry128are usable to support a variety of functionalities, examples of which are described in the following section and shown using corresponding figures.

NFT Metadata Search and Output

The following discussion describes decentralized metadata registry techniques that are implementable utilizing the described systems and devices. Aspects of each of the procedures are implemented in hardware, firmware, software, or a combination thereof. The procedures are shown as a set of blocks that specify operations performable by hardware and are not necessarily limited to the orders shown for performing the operations by the respective blocks. Blocks of the procedures, for instance, specify operations programmable by hardware (e.g., processor, microprocessor, controller, firmware) as instructions thereby creating a special purpose machine for carrying out an algorithm as illustrated by the flow diagram. As a result, the instructions are storable on a computer-readable storage medium that causes the hardware to perform algorithm. In portions of the following discussion, reference will be made in parallel withFIG.9that depicts a flow diagram of a procedure900in an example implementation of a search performed using metadata in a metadata registry to locate a nonfungible token and event data corresponding to the nonfungible token.

FIG.6depicts a system600in an example implementation in which an access request to a metadata registry is configured as a search query to search metadata to locate a corresponding nonfungible token. The service provider system102(N), for instance, generates a search query602to search metadata maintained in the metadata registry128by the metadata registry system108. The search query602, for instance, is configurable as a text search604to perform a keyword search to locate corresponding metadata included in the metadata registry. As previously described, a wide range of data may be stored as part of the metadata310in the metadata registry128. Accordingly, the text search604may also be configured in a variety of ways to locate this data, e.g., describing characteristics of entitlements, of recipients of the NFT124, demographics, and so forth.

Accordingly, the metadata registry system108receives the search query602from an originating device (block902), e.g., the service provider system102(N). A search module606is then employed by the metadata management module126to search metadata310maintained in the metadata registry128based on the search query602(block904), e.g., as a keyword search, image search, use of natural language processing as part of machine learning implemented by a machine-learning model, and so forth. The search module606then generates a search result608that identifies an NFT corresponding to metadata found during the search (block906), e.g., the NFT ID308.

The search query602, for instance, may include text specifying “loyalty program members for Brand X.” The search result608may therefore include NFT IDs of NFTs that are provided by Brand X to the loyalty program members. In this way, the search module606supports techniques to engineer user populations, e.g., in support of digital marketing and other techniques. The NFT ID308is then usable to obtain event data associated with use of the at least one nonfungible token (block908) and output the event data and an identification of the at least one nonfungible token (block910), examples of which are described in further detail in the following discussion.

FIG.7depicts a system700in an example implementation in which event data is located based on a nonfungible token identifier received as part of a search result ofFIG.6. In this example, the NFT ID308is included as part of a blockchain query702, e.g., generated as part of a blockchain explorer.

A blockchain response704is therefore generated directly by the blockchain network104based on a search of the distributed ledger214using the blockchain query702. The blockchain response704includes event data706describing use of the NFT124for receipt by the service provider system102(N), i.e., the originating device of the blockchain query702. The blockchain response704is configurable to include transaction data708describing blockchain transactions performed and memorialized by the distributed ledger214. In this way, the service provider system102(N) may obtain event data706directly, thereby improving efficiency in data sharing implementation. The metadata registry system108may also support functionality to output event data as described in the following example.

FIG.8depicts a system800in an example implementation in which event data is located by a metadata registry system based on a nonfungible token identifier received as part of a search result ofFIG.6. Continuing with the example ofFIG.6, the service provider system102(N) generated a search query602which is usable to locate an NFT ID308based on a search of NFT ID308. The NFT ID308in this example is then usable by a data compiler module802to generate an event data stream804based on event data806collected by the metadata registry system108itself.

The data compiler module802, for instance, may interact with the client device106, blockchain network104(e.g., to receive transaction data808), service provider system102(1), and/or other entities to obtain event data806corresponding to the NFT ID308. The event data806is then used to generate an event data stream804in this example, e.g., which may be performed in real time as the event data is generated. The service provider system102(N), for instance, may “subscribe” to the event data stream804via the metadata registry system108as a digital service. A variety of other examples are also contemplated.

In this way, a variety of data sharing protocols are supported as described in the examples ofFIGS.7and8. The data sharing protocols, for instance, support on demand push/pull of metadata, solely (e.g., entities perform their own blockchain queries as shown inFIG.7), on demand push/pull of historical events combining transaction and metadata, on demand push/pull of designated entity groupings, real-time stream of blockchain transactions and metadata as shown inFIG.8, and so forth. In this way, the metadata registry system108as described above supports control over which metadata is shared by the metadata registry system108, which entities are permitted to access the metadata310via the metadata registry system108, and may also control how the data is transferred, e.g., from a selection of one or a plurality of transmission protocols.

Example System and Device

FIG.10illustrates an example system generally at1000that includes an example computing device1002that is representative of one or more computing systems and/or devices that implement the various techniques described herein. This is illustrated through inclusion of a metadata management module126. The computing device1002is configurable, for example, as a server of a service provider, a device associated with a client (e.g., a client device), an on-chip system, and/or any other suitable computing device or computing system.

The processing system1004is representative of functionality to perform one or more operations using hardware. Accordingly, the processing system1004is illustrated as including hardware element1010that is configurable as processors, functional blocks, and so forth. This includes implementation in hardware as an application specific integrated circuit or other logic device formed using one or more semiconductors. The hardware elements1010are not limited by the materials from which they are formed or the processing mechanisms employed therein. For example, processors are configurable as semiconductor(s) and/or transistors (e.g., electronic integrated circuits (ICs)). In such a context, processor-executable instructions are electronically-executable instructions.

An implementation of the described modules and techniques is stored on or transmitted across some form of computer-readable media. The computer-readable media includes a variety of media that is accessed by the computing device1002. By way of example, and not limitation, computer-readable media includes “computer-readable storage media” and “computer-readable signal media.”

Combinations of the foregoing are also be employed to implement various techniques described herein. Accordingly, software, hardware, or executable modules are implemented as one or more instructions and/or logic embodied on some form of computer-readable storage media and/or by one or more hardware elements1010. The computing device1002is configured to implement particular instructions and/or functions corresponding to the software and/or hardware modules. Accordingly, implementation of a module that is executable by the computing device1002as software is achieved at least partially in hardware, e.g., through use of computer-readable storage media and/or hardware elements1010of the processing system1004. The instructions and/or functions are executable/operable by one or more articles of manufacture (for example, one or more computing devices1002and/or processing systems1004) to implement techniques, modules, and examples described herein.

The techniques described herein are supported by various configurations of the computing device1002and are not limited to the specific examples of the techniques described herein. This functionality is also implementable all or in part through use of a distributed system, such as over a “cloud”1014via a platform1016as described below.

The cloud1014includes and/or is representative of a platform1016for resources1018. The platform1016abstracts underlying functionality of hardware (e.g., servers) and software resources of the cloud1014. The resources1018include applications and/or data that can be utilized while computer processing is executed on servers that are remote from the computing device1002. Resources1018can also include services provided over the Internet and/or through a subscriber network, such as a cellular or Wi-Fi network.

The platform1016abstracts resources and functions to connect the computing device1002with other computing devices. The platform1016also serves to abstract scaling of resources to provide a corresponding level of scale to encountered demand for the resources1018that are implemented via the platform1016. Accordingly, in an interconnected device embodiment, implementation of functionality described herein is distributable throughout the system1000. For example, the functionality is implementable in part on the computing device1002as well as via the platform1016that abstracts the functionality of the cloud1014.

Conclusion